[R-br] RES: extracao da Longitude correta para dados de SST

Thiago V. dos Santos thi_veloso em yahoo.com.br
Sábado Dezembro 6 23:08:48 BRST 2014


Alternativamente, direto do site do desenvolvedor (para acompanhar atualizações): http://cirrus.ucsd.edu/~pierce/ncdf/   Saudações,
--
Thiago V. dos Santos
PhD student
Land and Atmospheric Science
University of Minnesota
http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm
Phone: (612) 323 9898 

     On Saturday, December 6, 2014 6:58 PM, Humberto <hhazin em gmail.com> wrote:
   

 Olá Mauro, Tente baixar por este link
https://www.dropbox.com/s/o8v4m4b4uce4djj/ncdf4_1.12.zip?dl=0


Enviado do meu iPhone
Em 06/12/2014, às 21:50, Mauro Sznelwar <sznelwar em uol.com.br> escreveu:



#yiv1109500113 #yiv1109500113 -- _filtered #yiv1109500113 {font-family:Helvetica;panose-1:2 11 6 4 2 2 2 2 2 4;} _filtered #yiv1109500113 {font-family:Helvetica;panose-1:2 11 6 4 2 2 2 2 2 4;} _filtered #yiv1109500113 {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}#yiv1109500113 #yiv1109500113 p.yiv1109500113MsoNormal, #yiv1109500113 li.yiv1109500113MsoNormal, #yiv1109500113 div.yiv1109500113MsoNormal {margin:0cm;margin-bottom:.0001pt;font-size:12.0pt;}#yiv1109500113 a:link, #yiv1109500113 span.yiv1109500113MsoHyperlink {color:blue;text-decoration:underline;}#yiv1109500113 a:visited, #yiv1109500113 span.yiv1109500113MsoHyperlinkFollowed {color:purple;text-decoration:underline;}#yiv1109500113 p.yiv1109500113msonormal, #yiv1109500113 li.yiv1109500113msonormal, #yiv1109500113 div.yiv1109500113msonormal {margin-right:0cm;margin-left:0cm;font-size:12.0pt;}#yiv1109500113 p.yiv1109500113msochpdefault, #yiv1109500113 li.yiv1109500113msochpdefault, #yiv1109500113 div.yiv1109500113msochpdefault {margin-right:0cm;margin-left:0cm;font-size:12.0pt;}#yiv1109500113 span.yiv1109500113msohyperlink {}#yiv1109500113 span.yiv1109500113msohyperlinkfollowed {}#yiv1109500113 span.yiv1109500113estilodeemail17 {}#yiv1109500113 p.yiv1109500113msonormal1, #yiv1109500113 li.yiv1109500113msonormal1, #yiv1109500113 div.yiv1109500113msonormal1 {margin:0cm;margin-bottom:.0001pt;font-size:11.0pt;}#yiv1109500113 span.yiv1109500113msohyperlink1 {color:#0563C1;text-decoration:underline;}#yiv1109500113 span.yiv1109500113msohyperlinkfollowed1 {color:#954F72;text-decoration:underline;}#yiv1109500113 span.yiv1109500113estilodeemail171 {color:windowtext;}#yiv1109500113 p.yiv1109500113msochpdefault1, #yiv1109500113 li.yiv1109500113msochpdefault1, #yiv1109500113 div.yiv1109500113msochpdefault1 {margin-right:0cm;margin-left:0cm;font-size:12.0pt;}#yiv1109500113 span.yiv1109500113EstiloDeEmail27 {color:#1F497D;}#yiv1109500113 .yiv1109500113MsoChpDefault {font-size:10.0pt;} _filtered #yiv1109500113 {margin:70.85pt 3.0cm 70.85pt 3.0cm;}#yiv1109500113 div.yiv1109500113Section1 {}#yiv1109500113 Comoeu baixo este pacote ncdf4, quando eu tento baixá-lo diz que não está disponível naversão R 3.1          Humberto,    Obrigado pelo exemplocompletamente reprodutível.    O pacote ncdf não é maisatualizado pelo David Pierce e muito em breve o seu codigo pode nao maisfuncionar. Use o ncdf4, que é mantido e regularmente atualizado. Ao fazer issovocê terá de reformular o código, por exemplo 'open.ncdf' vira 'nc_open', masdessa forma você garante que o seu codigo continue funcionando pelos próximosanos.    A solucao ideal para o seuproblema seria usar a funcao 'rotate' do pacote raster mas isso não é possívelporque a grade do seu arquivo não é regular. Dessa forma a minha sugestão parareprojetar a longitude 'na marra' é:    new_lon = ((lon + 180) %%360) - 180    A diferença de 0.5 grau entreo que eu recomendo e o que você espera se deve à implementação de cadasoftware: em alguns a coordenada é do canto da grade, enquanto em outros acoordenada é do centro da grade. Ajuste o resultado conforme a sua necessidade(i.e. new_lon <- new_lon + 0.5).    Por último, note também que oseu vetor de datas está incorreto porque está sendo criado de uma origemdiferente da origem embebida no netcdf (ano 1900 ao invés de 1800). Uma solucaoque resgata os valores de data diretamente do arquivo é a seguinte (note que asfunções já são do ncdf4):    # get time dimension t <-ncvar_get(nc,"time") tunits <-ncatt_get(nc,"time","units")    # show "real" times tustr <-strsplit(tunits$value, " ")  tdstr <-strsplit(unlist(tustr)[3], "-") tmonth <-as.integer(unlist(tdstr)[2]) tday <- as.integer(unlist(tdstr)[3]) tyear <-as.integer(unlist(tdstr)[1]) ndate <- as.Date(chron(t,out.format='year-month-day', origin=c(tmonth, tday, tyear)))    O vetor ndate serve paravisualização das datas em um formato "humano", mas se você vairecriar o arquivo, provavelmente você montará a dimensao de tempo usando ovetor "t".   Saudações,
--
Thiago V. dos Santos
PhD student
Land and Atmospheric Science
University of Minnesota
http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm
Phone: (612) 323 9898    On Thursday, December 4, 20148:56 PM, Humberto <hghazin em hotmail.com> wrote:    Boa noite pessoal,   Estou extraindo de um arquivo ncdf os valores de latitude (lat)longitude( lon)  e temperatura da superfície da agua do mar( SST),entretanto a longitude (lon) ela está na projeção 0 a 360 graus. Minha perguntaé como faço para converter ela para -180 a 180 graus? Segue o script que estouutilizando juntamente com o link dos dados. Desde já agradeço a ajuda  Humberto    
|             lon   |                lat   |        data   |             sst   |  |                  Lon como deveria ser   |
|  299.5  |  10.5  |  11/30/1981  |  27.85  |     |  -60.000  |
|  300.5  |  10.5  |  11/30/1981  |  27.96  |     |  -59.500  |
|  301.5  |  10.5  |  11/30/1981  |  28.02  |     |  -58.500  |
|  302.5  |  10.5  |  11/30/1981  |  28.02  |     |  -57.500  |
|  303.5  |  10.5  |  11/30/1981  |  27.97  |     |  -56.500  |
|  304.5  |  10.5  |  11/30/1981  |  27.84  |     |  -55.500  |
|  305.5  |  10.5  |  11/30/1981  |  27.81  |     |  -54.500  |
|  306.5  |  10.5  |  11/30/1981  |  27.78  |     |  -53.500  |
|  307.5  |  10.5  |  11/30/1981  |  27.75  |     |  -52.500  |

    Link para acesso dos dados https://www.dropbox.com/s/xnab2g365mduykx/SST_81_14.nc?dl=0   Script: require(ncdf) #'ncdf' versao 1.6.6 require(reshape) require(chron)   ###sst nc <- open.ncdf("SST_81_14.nc") nc   lat <- get.var.ncdf(nc,"lat") lon <- get.var.ncdf(nc,"lon") tunits <-att.get.ncdf(nc,"time","units")   # print tunits tunits$value   # criar tempo "real" Times time<-get.var.ncdf(nc,"time") Time<-chron(time,origin=c(month=1,day=1, year=1900))   ## array da variavel sst wm <- get.var.ncdf(nc, "sst") str(wm)   ## atribuindo dimnames conforme lon, lat e tempo dimnames(wm)[[1]] <- as.character(lon) dimnames(wm)[[2]] <- as.character(lat) dimnames(wm)[[3]] <-as.character(Time) str(wm)   ## melt para reestruturação dos dados mwm <- melt(wm) head(mwm) 

 


|      |   Este email foi escaneado pelo Avast antivírus. 
www.avast.com   |



_______________________________________________
R-br mailing list
R-br em listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.


   
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20141207/bf9f6551/attachment-0001.html>


Mais detalhes sobre a lista de discussão R-br