setwd("D:/Temp")
sapply(c("raster",
"sp", "ncdf4"), require, char=T)
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@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>