【问题标题】:Large .img file processing in R (GIS)R(GIS)中的大型.img文件处理
【发布时间】:2013-04-05 02:21:06
【问题描述】:

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

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

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

【问题讨论】:

  • 光栅包有一些磁盘功能
  • @mnel 这是否意味着文件不会存储在内存中?但是栅格包是否能够处理和提取我的点周围的数据?
  • 是的——它会在需要时分块读取数据。
  • @mnel 谢谢!我将从那里开始。知道如何从栅格包中某个点周围的区域中提取数据吗?

标签: r gis


【解决方案1】:

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

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

【讨论】:

  • 感谢您对上一条评论的意见。我无法在 .img 地图上绘制我的网站。我认为这是因为它们必须处于不同的预测中。我的坐标是十进制度数(WGS 1984),img 文件是 GCS North American 1983。关于如何在同一个坐标系上获取所有内容的任何建议,以便我可以开始使用 exrtact 函数和 buffer 参数。跨度>
  • @IDelToro rgdal::spTransform(关于点,而不是光栅)
【解决方案2】:

感谢 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)

【讨论】:

  • lapply(Landcover, function(x) prop.table(table(x)))
  • @mnel 谢谢!我欠你一杯啤酒!
猜你喜欢
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
相关资源
最近更新 更多