使用R中的地理参考信息创建栅格


9

关于我的上一个问题,如何使用R将生成的栅格图像“地理编码” /转换为生成的栅格图像,使其可以显示为地图上的图层?简而言之,我的目标是重新创建商业SpatialKey屏幕截图)软件的结果。

我正在使用GeoServer实例来托管地图数据,但是如何将所需的投影和坐标信息合并到图像中,以使其正确地与真实地理位置对齐。密度热图是使用空间数据生成的。


由于这仅是一个编程问题,因此并不是真正的话题。您是否查看过spatstat软件包信息和pdf短期课程,以了解其中是否涵盖了该内容?我确定这已经出现过了,而Google进行了快速搜索,提出了这个相关的R-help答案。如果存在更多直接搜索的解决方案,我也不会感到惊讶。
Andy W

您如何制作生成的栅格图像?它是来自另一个应用程序还是在R中创建?
Simbamangu '04年

它是在R中使用image()函数生成的。
Mimo 2012年

x具有不相等的水平和垂直分辨率。此类数据无法以arc-ascii格式存储。My x具有4684、1950尺寸,它抱怨分辨率。我也一样。越野车

Answers:


15

栅格数据包使您可以创建任意栅格(大小,投影)或使用现有对象(例如矩阵);然后,您可以分配投影和范围。您的image()函数采用一个可直接使用的矩阵参数:

library(raster)    
## Create a matrix with random data & use image()
xy <- matrix(rnorm(400),20,20)
image(xy)

# Turn the matrix into a raster
rast <- raster(xy)
# Give it lat/lon coords for 36-37°E, 3-2°S
extent(rast) <- c(36,37,-3,-2)
# ... and assign a projection
projection(rast) <- CRS("+proj=longlat +datum=WGS84")
plot(rast)

然后writeRaster(),您可以使用多种格式,例如

writeRaster(rast, "~/myraster.asc", format = "ascii")

2

有很多不同的方法,但是如果您想在Windows上使用开放源代码工具,我可以建议3种选择:

  1. 使用GDAL(开源地理栅格操作库)中的gdal_translate工具。您可能需要在-gcp pixel line easting northing elevation栅格(http://www.gdal.org/gdal_datamodel.html)上像素和线为x / y 并使地理坐标东/北的参数。您还必须指定一个投影-a_srs srs_def
  2. 使用r绑定到GDAL并执行相同的操作
  3. 一种更简单的“ GUI”方式可能是遵循本教程并将QGIS与GDAL一起使用。这样做的缺点是,如果尚未设置QGIS和GDAL,则必须同时设置。

我会仔细研究您需要的每一个软件的依赖性,然后再决定选择哪种方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.