如何在R中选择和打印光栅特定的行?
如何随时间绘制特定行?例如,我想绘制第10行(第1层到第5层实际上是第1年到第5年)如何在R中选择和打印光栅特定的行?,r,plot,raster,R,Plot,Raster,如何随时间绘制特定行?例如,我想绘制第10行(第1层到第5层实际上是第1年到第5年) library(raster) r <- raster(nrow=5, ncol=5) s <- stack( sapply(1:5, function(i) setValues(r, rnorm(ncell(r), i, 3) )) ) s[] layer.1 layer.2 layer.3 layer.4 layer.5 [1,]
library(raster)
r <- raster(nrow=5, ncol=5)
s <- stack( sapply(1:5, function(i) setValues(r, rnorm(ncell(r), i, 3) )) )
s[]
layer.1 layer.2 layer.3 layer.4 layer.5
[1,] 6.7134890 6.9141251 4.38213123 4.8995302 2.3105321
[2,] 3.4323121 6.1074031 10.12872426 3.6728949 3.2252562
[3,] 4.4370107 3.1397068 5.47572912 1.9692684 4.0064603
[4,] -1.5588723 0.4075960 -0.73333754 6.3589944 5.0355051
[5,] 2.8095750 5.4264553 1.17820009 2.0665198 8.0491221
[6,] 4.3422219 2.1106691 1.08638206 5.0640175 6.8057674
[7,] -3.1072366 -1.1174633 6.28901706 5.0713964 1.8651354
[8,] -0.5628539 2.1868130 1.21288191 0.3114011 3.0452161
[9,] 0.1725606 3.4535112 -1.38043518 3.6439042 5.4005650
[10,] -2.3376856 4.8803363 -0.05927408 7.9275016 4.7013126
[11,] 2.3032655 2.4974161 4.63961513 1.4021305 10.2302589
[12,] 0.4470648 1.1660421 -0.70127807 6.3293479 6.6178080
[13,] 2.5835127 -0.8768809 2.87405383 6.1361518 3.4851934
[14,] -3.2769134 2.1721391 2.17317611 1.4170633 0.6446692
[15,] 1.0771079 -2.5369687 4.89710339 1.8667695 4.4847933
[16,] 7.2532218 3.0210221 0.56993065 2.4564492 6.9473683
[17,] 4.0682441 -0.8198112 4.85259334 7.3296033 8.9541915
[18,] 5.3991328 -0.9818425 1.73782230 2.9220433 4.9865858
[19,] 2.0556183 -0.7470914 5.44869675 1.6452235 4.5236089
[20,] -0.6277883 6.7255821 5.12606765 5.5721351 4.7081256
[21,] 9.0139352 3.1350767 6.59366754 2.0351358 5.1865195
[22,] 7.0598020 0.2869291 7.14368927 9.7213576 0.4251934
[23,] 1.6430309 6.3806803 5.95776881 7.5234383 4.8860264
[24,] 1.9473764 1.5386180 3.89690297 2.5333431 7.7217174
[25,] 0.7960661 -1.5137800 2.84861591 -5.9986647 2.9309536
库(光栅)
rrequire(光栅)
r如果您的光栅堆栈
包含时空数据,您可以尝试
setZ
和getZ
与
zoo
package
library(raster)
library(zoo)
r <- raster(nrow=5, ncol=5)
## another way to create the RasterStack using init
s <- stack(lapply(1:5, function(i)init(r, fun=rnorm, mean=i, sd=3)))
## Set the time indez of the RasterStack
s <- setZ(s, 2001:2005)
s
> s
class : RasterStack
dimensions : 5, 5, 25, 5 (nrow, ncol, ncell, nlayers)
resolution : 72, 36 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84
names : layer.1, layer.2, layer.3, layer.4, layer.5
min values : -2.0324027, -2.7135752, -2.0341025, -0.8495401, -1.6712431
max values : 1.3919942, 1.9809912, 2.8753805, 1.3746949, 0.6760691
time : 2001, 2002, 2003, 2004, 2005
有一种方法可以绘制zoo
对象:
plot(z)
如果您有NA
值,则zoo
中有多个函数用于管理这些值(NA.approx
,NA.fill
等):
z[4]Opss….NA值现在是个问题…有人吗?看看?NA.omit
No luck@eddi.>plot(NA.omit(c(s[125]))plot.window中的错误(…):需要有限的“xlim”值另外:警告消息:1:in min(x):min没有不丢失的参数;返回Inf 2:in max(x):max没有未丢失的参数;returning-Inf 3:In min(x):min没有未丢失的参数;returning-Inf 4:In max(x):max没有未丢失的参数;returning-Infwell,它告诉了您问题所在-您需要去掉无穷大的值
z <- zoo(c(s[10]), getZ(s))
> z
2001 2002 2003 2004 2005
0.07586314 0.10235694 -1.28134027 -0.84954013 -1.11903690
plot(z)
z[4] <- NA
plot(na.approx(z))