我有一个数据集,
dat<-matrix(seq(1:5290),c(115,46))
dat
转换为包含GIS相关元数据(如地图投影)的栅格文件? 然后如何使用
将数据映射到美国地图lon <- seq(-124.25,length=115,by=0.5)
lat <- seq(26.25,length=46,by=0.5)
如果我想计算每个州的平均值,我该怎么办?或特定地区?
非常感谢您的反馈。
d
答案 0 :(得分:1)
您可以尝试以下方法:
library(raster)
library(maps)
dat<-matrix(seq(1:5290),c(115,46))
创建具有所需范围的栅格
r <- raster(dat)
e <- extent(c(-124.5, -67.25, 26.25, 48.75))
extent(r) <- e
并绘制
plot(r)
map("usa", add=T)
取整个栅格的平均值
mean(getValues(r))
意味着某个地区
r.sub <- crop(r, c(-100, -54, 40, 45))
mean(getValues(r.sub))
您需要SpatialPolygonsDataFrame。在这里,我使用readWKT()
创建一个虚拟的,但您也可以从readShapePoly()
包中读取带有maptools
的shapefile。
library(rgeos)
poly <- readWKT("POLYGON((-100 30, -100 31, -70 30, -88 29, -100 30))")
plot(r)
plot(poly, add=T)
并提取均值:
dat <- extract(r, poly)
sapply(dat, mean)