lat/lon 和 laea 之间的投影栅格
Projecting raster between lat/lon and laea
我无法将北美 DEM 从 laea 投影到 lat/lon 格式。我知道 lat/lon 并不总是最适合光栅工作,但我正在使用 dismo
包,而 worldclim 的所有内容都采用 lat/lon 格式,而且数据太多了在我的机器上处理 spTransform
和 projectRaster
- 所以我坚持走另一条路。
Here's the DEM I'm using. 我已将栅格对象命名为 mydem
。
它的投影信息是:
+proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
worldclim数据(光栅对象biocl.complete
)投影信息为:
+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
当我尝试使用...
mydem.lonlat <- projectRaster(mydem,
crs = proj4string(biocl.complete))
...我的计算机将 100% CPU 的电源专用于 RSession,内存分配迅速飙升,需要压缩内存,然后我必须终止进程。我很困惑,因为实际的 DEM 层只有 43 MB,但我不明白后台发生了什么。
有谁知道处理这个问题的好方法吗?
我已经探索了以下参考资料,但我没有收到错误,我的电脑似乎只是在这里拉屎。
Projection Question
对齐问题(跟进 Hijmans 的解决方案):
最终编辑:
R 没有正确读取上述 DEM 的投影信息,因此重新投影自然会导致重大问题。有关投影问题的详细解决方案,请参阅 this discussion。
您想做的是:
mydem.lonlat <- projectRaster(mydem, biocl.complete, filename='mydemlonlat.tif')
即提供一个'example'栅格对象作为模板,这样您不仅可以获得所需的CRS,还可以获得范围和分辨率。另请注意,我添加了一个文件名参数,以便保存结果,您不必重复执行此操作。
以上可能会也可能不会解决内存问题。要解决这个问题,请尝试设置 rasterOptions
使用的最大内存。
rasterOptions(chunksize=1e+06, maxmemory=1e+07)
和或与:
rasterOptions(todisk=TRUE)
检查
rasterOptions()
我无法将北美 DEM 从 laea 投影到 lat/lon 格式。我知道 lat/lon 并不总是最适合光栅工作,但我正在使用 dismo
包,而 worldclim 的所有内容都采用 lat/lon 格式,而且数据太多了在我的机器上处理 spTransform
和 projectRaster
- 所以我坚持走另一条路。
Here's the DEM I'm using. 我已将栅格对象命名为 mydem
。
它的投影信息是:
+proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
worldclim数据(光栅对象biocl.complete
)投影信息为:
+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
当我尝试使用...
mydem.lonlat <- projectRaster(mydem,
crs = proj4string(biocl.complete))
...我的计算机将 100% CPU 的电源专用于 RSession,内存分配迅速飙升,需要压缩内存,然后我必须终止进程。我很困惑,因为实际的 DEM 层只有 43 MB,但我不明白后台发生了什么。
有谁知道处理这个问题的好方法吗?
我已经探索了以下参考资料,但我没有收到错误,我的电脑似乎只是在这里拉屎。 Projection Question
对齐问题(跟进 Hijmans 的解决方案):
最终编辑: R 没有正确读取上述 DEM 的投影信息,因此重新投影自然会导致重大问题。有关投影问题的详细解决方案,请参阅 this discussion。
您想做的是:
mydem.lonlat <- projectRaster(mydem, biocl.complete, filename='mydemlonlat.tif')
即提供一个'example'栅格对象作为模板,这样您不仅可以获得所需的CRS,还可以获得范围和分辨率。另请注意,我添加了一个文件名参数,以便保存结果,您不必重复执行此操作。
以上可能会也可能不会解决内存问题。要解决这个问题,请尝试设置 rasterOptions
使用的最大内存。
rasterOptions(chunksize=1e+06, maxmemory=1e+07)
和或与:
rasterOptions(todisk=TRUE)
检查
rasterOptions()