4

我正在与美国国家土地覆盖数据集 (NLCD) 合作,对美国东北部 150 多个地点的栖息地类型进行分类。数据集非常大 (15GB),因此我无法在此处上传,但它采用 .img 格式,分辨率为 30m。我有所有站点中心点的 GPS 坐标。我希望能够在该点周围 1 平方公里内提取土地覆盖类别的比例。我的问题是:

1) 如何将 .img 文件上传到 r?2) 如何从 GPS 坐标周围提取信息作为不同栖息地类别的比例?

以前有人在 r 中使用过这个数据集吗?如果是这样,我真的可以使用帮助。干杯,以色列

4

2 回答 2

5

使用raster可以处理磁盘文件的包,一次只能读取块。

raster包有一个extract带参数的buffer函数。将缓冲区设置为适当的值(1000如果您的地图单位是米并且您想要一个km半径)

于 2013-04-05T03:08:08.340 回答
3

感谢 mnel。我已经有了工作的基本想法(下面的代码)。现在,如果有人能给我一个关于如何计算每个坐标的每个类别的比例的指针。该extract函数为我提供了每组坐标的值矩阵。有没有办法总结这些数据?

#load in map and locality data
NLCD<-raster ('NLCD2006/NLCD2006.img')
sites<-read.csv('sites.csv', header=T)
#crop site data to just latitude and longitude
sites<-sites[,4:5]
#convert lat/lon to appropirate projection
str (sites)
coordinates(sites)  <-  c("Longitude",  "Latitude")
proj4string(sites)  <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84")
sites_transformed<-spTransform(sites, CRS("+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"))

#plot the map
plot (NLCD)
#add the converted x y points
points (sites_transformed, pch=16, col="red", cex=.75)
#extract values to poionts
Landcover<-extract (NLCD, sites_transformed, buffer=1000)
于 2013-04-09T03:00:48.153 回答