[R-br] Obtenção de Valores em Pontos de Arquivo Raster

ASANTOS alexandresantosbr em yahoo.com.br
Terça Fevereiro 16 11:24:50 BRST 2016


Ótima Rotina Éder!!!!!

    Acho que tem que trocar download.file(url1, fn, mode="wb") por 
download.file(url0, fn, mode="wb")

    Mais uma outra coisa, se eu trocar o formato nc e no meu caso, que 
são geoTiff por *asc não tornaria essa operação mais rápida e menos 
sujeita a restrições de limite de memória?


Obrigado,

-- 
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
e-mails:alexandresantosbr em yahoo.com.br
         alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
OrcID: orcid.org/0000-0001-8232-6722
Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10
LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
======================================================================

Em 16/02/2016 08:24, Éder Comunello escreveu:
> ### <code r>
> setwd("D:/Temp")
> sapply(c("raster", "sp", "ncdf4"), require, char=T)
> url0  <- 
> "https://drive.google.com/file/d/0B6tnaf2fmoCcOXhnRDIxWnM5UDA/view"
> browseURL(url0) ### 266 Mb
>
> dir(patt="\\.nc")
> fn <- "Rs_daily_UT_Brazil_v2_20070101_20131231.nc"
> download.file(url1, fn, mode="wb")
>
> # nc <- nc_open(fn); names(nc[['var']])    ### inspeção de conteúdo
> # r  <- raster(fn); dim(r); object.size(r) ### importará somente 
> primeiro layer
>
> s <- stack(fn, varname="Rs")
> dim(s); print(object.size(s), units="Mb") ### 2557 layers (datas), 30.4 Mb
>
> POI <- SpatialPoints(cbind(lon=c(-47.5,-47.5,-44.5,-40), 
> lat=c(-18.5,-19.5,-20.5,-22)))
> proj4string(POI) <- proj4string(s)
>
> e <- extract(s, POI, method= "bilinear", df=T) #ou method="simple"
>
> dim(e); head(e[,1:5])
>
> e2 <- t(e[-1]) ### inverte, retirando a primeira coluna (ID)
> dim(e2) ### [1] 2557    4
>
> head(e2, 3)
> #               [,1]     [,2]      [,3] [,4]
> # X2007.01.01 11.67222 12.36980  8.660182   NA
> # X2007.01.02 17.28591 14.08362  9.963414   NA
> # X2007.01.03 15.78652 12.72562 10.278209   NA
>
> tail(e2, 3)
> #               [,1]     [,2]     [,3] [,4]
> # X2013.12.29 23.22835 23.38377 19.95641   NA
> # X2013.12.30 18.80989 21.45013 16.14789   NA
> # X2013.12.31 19.01340 17.74833 20.40014   NA
>
> ### Comparação de métodos de extração (utilizando primeiro layer)
> sp1 <- as(s[[1]], "SpatialPixelsDataFrame")
> over(POI, sp1)[,1]
>
> data.frame(POI em coords,
>        over = over(POI, sp1)[,1],
>        bil  = extract(s[[1]], POI, method= "bilinear", df=T)[,2],
>        simp = extract(s[[1]], POI, method= "simple", df=T)[,2])
> #   lon   lat      over       bil      simp
> # 1 -47.5 -18.5 11.586952 11.672215 11.639958
> # 2 -47.5 -19.5 12.564141 12.369798 11.964512
> # 3 -44.5 -20.5  8.624653  8.660182  7.975467
> # 4 -40.0 -22.0        NA        NA       NaN
>
> ### Visualizando os dois primeiros pontos
> crop <- crop(s[[1]], extent(-48, -47, -20, -18))
> image(crop, asp=T)
> text(crop, lab=round(getValues(crop), 6), cex=.5); points(POI, pch=20, 
> cex=2)
>
> ### over pega à esquerda, simple à direita e bilinear interpola.
> ### </code>
>

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


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