<div dir="ltr"><div><div><div>Olá Cesar,<br><br></div>Muito obrigada pela sua sugestão. Vamos ver como soluciono este problema.<br><br></div>Abraço,<br></div>Heloise.<br></div><div class="gmail_extra"><br><div class="gmail_quote">2017-09-10 10:05 GMT+12:00 Cesar Rabak <span dir="ltr"><<a href="mailto:cesar.rabak@gmail.com" target="_blank">cesar.rabak@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Heloíse,<div><br></div><div>Você se fez entender e de fato você tem duas particularidades: seu grid e coordenadas de vento além de terem granularidades diferentes têm um ligeiro <i>offset</i> que se mostra como você descreve.</div><div><br></div><div>Se as coordenadas do vento (que têm a maior granularidade) fossem arrendondadas para décimo de grau elas teriam o seguinte "passo":</div><div><br></div><div>Pegando o seu exemplo:</div><div><br></div><div><div>> round(vento[1:5,1],1)</div></div><div><div>[1] -23.9 -23.6 -23.4 -23.1 -22.9</div></div><div><br></div><div class="gmail_extra">Note que as frações seriam apenas quatro e com espaçamentos "não equidistantes", por consequência do arredondamento eles se alternam em 0,3 e 0,2 grau...</div><div class="gmail_extra"><br></div><div class="gmail_extra">Se com essas "coincidências" no grid você conseguir fazer sua análise, é o "automatismo" mais simples que se pode pensar...</div><div class="gmail_extra"><br></div><div class="gmail_extra">Caso contrário, você precisará escrever o script para o interpolador bivariado, levando em conta que mesmo o <i>thin plate splines</i> funcionará muito mais como uma régua flexível ("japonesa", ou como a antiga "curva francesa") que tentará heurística e localmente adaptar-se aos dados sem levar em conta a física do vento, por isso uma análise dos resultados seria necessária, especialmente por que, imagino, as informações de vento trazem também a direção de onde sopram. . .</div><div class="gmail_extra"><br></div><div class="gmail_extra">HTH</div><div class="gmail_extra">--</div><div class="gmail_extra">Cesar Rabak</div><div><div class="h5"><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">2017-09-06 19:19 GMT-03:00 Heloíse Pavanato <span dir="ltr"><<a href="mailto:helopavanato@gmail.com" target="_blank">helopavanato@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Olá Cesar e Elias,<br><br></div><div>Obrigada pela atenção. Vou dar uma olhada no pacote <span style="font-size:11pt;line-height:115%;font-family:Courier">spatstat.</span><br><br></div><div>Cesar, respondo em linha:<br></div><div><span class="m_-6440449779089963332gmail-"><br><div><span style="font-size:12pt;font-family:"Times New Roman",serif"></span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">As coordenadas do grid e vento múltiplas de 0,5 grau deveriam "se corresponder" ou não?<br><br></span></div></span><div><span style="color:rgb(0,0,255)"><span style="font-size:12pt;font-family:"Times New Roman",serif">Sim, mas não como os dados estão agora. Por exemplo, entre as latitudes de vento de -10.875 e -10.625 a correspondência no grid seria -10.8 e -10.7. Entre -10.625 e -10.375 as correspondências seriam -10.6, -10.5 e -10.4.<br>Não sei como automatizar estre processo, pois veja que para as latitudes de vento que terminam com "75" eu tenho duas correspondências e para as que terminam em "25" eu tenho três. Me fiz entender?<br><br></span></span></div><div><span style="color:rgb(0,0,255)"><span style="font-size:12pt;font-family:"Times New Roman",serif">Aqui vai um</span></span><span style="font-size:12pt;font-family:"Times New Roman",serif"><span style="color:rgb(0,0,255)"><span style="font-size:12pt;font-family:"Times New Roman",serif"></span><span style="font-size:12pt;font-family:Courier"> dput()</span> dos dados para você ter uma noção:<br></span><br></span><br>

<p class="MsoNormal"><span style="font-family:Courier">dput(vento[1:30, ])</span></p>

<p class="MsoNormal"><span style="font-family:Courier"><br></span></p><p class="MsoNormal"><span style="font-family:Courier">structure(list(lat =
c(-23.875, -23.625, -23.375, -23.125, -22.875, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-22.625, -22.375, -22.125,
-21.875, -21.625, -21.375, -21.125, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-20.875, -20.625, -20.375,
-20.125, -19.875, -19.625, -19.375, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-19.125, -18.875, -18.625,
-18.375, -18.125, -17.875, -17.625, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-17.375, -17.125, -16.875,
-16.625), lon = c(-42.875, -42.875, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-42.875, -42.875, -42.875,
-42.875, -42.875, -42.875, -42.875, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-42.875, -42.875, -42.875,
-42.875, -42.875, -42.875, -42.875, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-42.875, -42.875, -42.875,
-42.875, -42.875, -42.875, -42.875, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-42.875, -42.875, -42.875,
-42.875, -42.875, -42.875, -42.875</span></p>

<p class="MsoNormal"><span style="font-family:Courier">), media = c(6.16,
5.99714285714286, 5.91857142857143, 5.82, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA)), .Names = c("lat", "lon", </span></p>

<p class="MsoNormal"><span style="font-family:Courier">"media"),
row.names = c(NA, 30L), class = "data.frame")</span></p>

</div><div><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span><br>

<p class="MsoNormal"><span style="font-family:Courier">dput(grid[1:30, ])</span></p>

<p class="MsoNormal"><span style="font-family:Courier"><br></span></p><p class="MsoNormal"><span style="font-family:Courier">structure(list(lat =
c(-10.4, -10.4, -10.5, -10.5, -10.6, -10.6, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-10.6, -10.5, -10.5,
-10.6, -10.7, -10.7, -10.7, -10.7, -10.8, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-10.8, -10.8, -10.9,
-10.9, -10.9, -10.8, -10.8, -10.9, -11, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-11, -11, -10.8, -10.9,
-10.9, -11), lon = c(-36.4, -36.3, -36.5, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-36.3, -36.5, -36.4,
-36.3, -36.6, -36.4, -36.6, -36.6, -36.5, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-36.4, -36.3, -36.6,
-36.5, -36.4, -36.6, -36.5, -36.4, -37, </span></p>

<p class="MsoNormal"><span style="font-family:Courier">-36.9, -36.9, -37.1, -37,
-36.9, -36.8, -37, -36.8, -36.8)), .Names = c("lat", </span></p>

<p class="MsoNormal"><span style="font-family:Courier">"lon"),
row.names = c(NA, 30L), class = "data.frame")</span></p><span class="m_-6440449779089963332gmail-">

<br><span style="font-size:12pt;font-family:"Times New Roman",serif"><br>A
 questão de você interpolar os valores de vento tem menos a ver com o R 
em si e mais com o domínio do problema que você trabalha: qual é a forma
 de interpolar o valor do vento para uma coordenada intermediária entre 
pontos que você tenha as medidas?<br></span><br><span style="font-size:12pt;font-family:"Times New Roman",serif"><span style="font-size:12pt;font-family:"Times New Roman",serif">Talvez
 seja mais apropriado trabalhar com "a quase metade dos dados" do que 
utilizar o dobro de pontos sendo que a outra metade será resultado de um
 processo de cálculo e portanto não deveria modificar sua análise dos 
dados.<br><br></span></span></span></div><div><span style="color:rgb(0,0,255)"><span style="font-size:12pt;font-family:"Times New Roman",serif">Também acho que a interpolação é o menos importante para fins de análises, e posso manter NAs para isso. Porém, tenho que gerar um </span></span><span style="font-size:12pt;font-family:"Times New Roman",serif"><span style="color:rgb(0,0,255)"><span style="font-size:12pt;font-family:"Times New Roman",serif"></span><span style="font-size:12pt;font-family:Courier">levelplot()</span> desta e de outras variáveis, por isso gostaria de usar a interpolação para este fim. Pensei em usar thin plate splines ou qualquer outro interpolador bivariado em termos de latitude e longitude. <br></span><br></span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">Obrigada pela ajuda.<br><br></span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">Saudações,<br></span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">Heloise<br></span></div><div><div class="m_-6440449779089963332gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-09-07 0:08 GMT+12:00 Cesar Rabak <span dir="ltr"><<a href="mailto:cesar.rabak@gmail.com" target="_blank">cesar.rabak@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Heloise,<div><br></div><div>Esta observação me deixa confuso:<br><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12pt;font-family:"Times New Roman",serif">#Quando faço um </span><span style="font-size:12pt;font-family:Courier">merge()</span><span style="font-size:12pt;font-family:"Times New Roman",serif"> dos dois dataframes, obviamente meus valores de</span><span style="font-size:12pt;font-family:"Times New Roman",serif"><span style="font-size:12pt;line-height:18.4px;font-family:Courier">#vento$media</span><span style="font-size:12pt;line-height:18.4px"> </span>aparecem como NA pois não há nenhuma correspondência entre as #coordenadas do grid e de vento.</span></blockquote><div><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">As coordenadas do grid e vento múltiplas de 0,5 grau deveriam "se corresponder" ou não?</span></div></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">A questão de você interpolar os valores de vento tem menos a ver com o R em si e mais com o domínio do problema que você trabalha: qual é a forma de interpolar o valor do vento para uma coordenada intermediária entre pontos que você tenha as medidas?</span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">Talvez seja mais apropriado trabalhar com "a quase metade dos dados" do que utilizar o dobro de pontos sendo que a outra metade será resultado de um processo de cálculo e portanto não deveria modificar sua análise dos dados.</span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">HTH</span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">--</span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif">Cesar Rabak</span></div><div><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-6440449779089963332gmail-m_-1804141009813805128gmail-h5">2017-09-06 4:47 GMT-03:00 Heloíse Pavanato via R-br <span dir="ltr"><<a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a>></span>:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="m_-6440449779089963332gmail-m_-1804141009813805128gmail-h5"><div dir="ltr">

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Colegas do R-br,</span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"> </span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Tenho a
seguinte questão:</span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"> </span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Estou
trabalhando com um grid de 0.1 x 0.1 grau de latitude e longitude onde quero
inserir a variável </span><span style="font-size:12pt;font-family:Courier">vento</span><span style="font-size:12pt;font-family:"Times New Roman",serif">. No entanto a resolução do vento
é de 0.25 x 0.25 graus.</span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Os dados
estão armazenados aqui:</span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"><a href="http://www.datafilehost.com/d/693635d4" target="_blank">http://www.datafilehost.com/d/<wbr>693635d4</a><br>
<br>
<a href="http://www.datafilehost.com/d/ee24730c" target="_blank">http://www.datafilehost.com/d/<wbr>ee24730c</a></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier">vento
<- read.csv('ascat.data.csv', header = TRUE)</span><span style="font-size:12pt;font-family:"Times New Roman",serif"></span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier">str(vento)</span><span style="font-size:12pt;font-family:"Times New Roman",serif"></span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier">grid
<- read.csv('grid.data.csv', header = TRUE)</span><span style="font-size:12pt;font-family:"Times New Roman",serif"></span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier">str(grid)</span></p><p class="MsoNormal" style="line-height:normal"><br><span style="font-size:12pt;font-family:Courier"></span><span style="font-size:12pt;font-family:"Times New Roman",serif"></span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">#Quando
faço um </span><span style="font-size:12pt;font-family:Courier">merge()</span><span style="font-size:12pt;font-family:"Times New Roman",serif"> dos dois dataframes, obviamente
meus valores de </span><span style="font-size:12pt;font-family:"Times New Roman",serif"><span style="font-size:12pt;line-height:115%;font-family:Courier">#vento$media</span><span style="font-size:12pt;line-height:115%;font-family:"Times New Roman",serif"> </span> aparecem como NA pois não há nenhuma
correspondência entre as #coordenadas do grid e de vento.</span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier">dmerge
<- merge(grid, vento, by = c('lon', 'lat'), all.x = TRUE)</span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier"><br></span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Porém, eu
gostaria de obter valores de vento, por exemplo, entre latitudes</span><span style="font-size:12pt"> </span><span style="font-size:12pt;font-family:"Times New Roman",serif">de</span><span style="font-size:12pt"> </span><span style="font-size:12pt;font-family:Courier">-22.625</span><span style="font-size:12pt;font-family:"Times New Roman",serif"> e </span><span style="font-size:12pt;font-family:Courier">-22.375</span><span style="font-size:12pt;font-family:"Times New Roman",serif"> na mesma escala do grid: </span><span style="font-size:12pt;font-family:Courier">-22.6, -22.5, -22.4</span><span style="font-size:12pt;font-family:"Times New Roman",serif">, etc. E o mesmo para longitude.</span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Tentei utilizar a </span><span style="font-size:12pt;font-family:Courier">scales::rescale()</span><span style="font-size:12pt;font-family:"Times New Roman",serif">, mas consegui mudar apenas os mínimos e máximos das coordenadas:</span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">#</span><span style="font-size:12pt;font-family:Courier">install.packages('scales', dependencies = TRUE)</span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier">library(scales)</span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier"><br></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier">vento$lon.r <- rescale(vento$lon, to = range(grid$lon))<br>vento$lon.r</span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier"><br></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:Courier">vento$lat.r <- rescale(vento$lat, to = range(grid$lat))<br>vento$lat.r<br></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></p>

<p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Então,
creio que eu tenho dois problemas: o primeiro é obter as coordenadas de vento
na mesma escala que as do grid; segundo é interpolar </span><span style="font-size:12pt;font-family:Courier">vento$media</span><span style="font-size:12pt;font-family:"Times New Roman",serif"> para substituir os NAs, que correspondem a quase
metade do total de valores. <br></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Agradeço se algum colega tiver alguma dica.</span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif"><br></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Obrigada,<br></span></p><p class="MsoNormal" style="line-height:normal"><span style="font-size:12pt;font-family:"Times New Roman",serif">Heloise.<br></span></p>

</div>
<br></div></div>______________________________<wbr>_________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi<wbr>-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-g<wbr>uia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>
</blockquote></div><br></div></div></div></div></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>