首页 > 解决方案 > R、栅格和纬度数据的舍入问题

问题描述

我正在R使用该raster包导入和导出 ASTER 数字高程模型。这些数据具有地理坐标系,因此栅格的范围及其像元大小以度为单位。

我发现在导入和导出同一个数据集时一定存在某种算术下溢。例如,我将一个玩具 ASTER 场景ASTGTMV003_N48W122_dem.tif导入(我在这里R上传了数据集)并想找出它的分辨率:

# example scene downloaded from EarthExplorer (https://earthexplorer.usgs.gov/)
r <- raster("ASTGTMV003_N48W122_dem.tif") 
res(r)

R 告诉我分辨率 (x, y) 是:0.0002777778 0.0002777778 但是,QGIS 表明同一个数据集有更多的数字:0.0002777777777777779944,-0.0002777777777777779944.

所以出现了转折:我现在将此数据集导出为 GeoTIFF 并再次导入并保持所有参数不变。R会告诉我没有任何改变:

writeRaster(r, "test.tif") # export GTiff
r2 <- raster("test.tif")   # import again
res(r) == res(r2)          # which returns TRUE TRUE

然而在 GIS 中,我发现我的新test.tif的分辨率为0.0002777777778394882884,-0.0002777777778394882884,与原来的 ASTER 场景不同。虽然R在这方面似乎很宽容,但 GIS 告诉我范围和单元大小不一样。我用其他 ASTER 和 SRTM 场景重现了这个示例,但问题仍然存在。然而,从第 13 位开始,这些数字总是不同的。

我推测问题与奇数行和列(3601、3601)有关。至少,使用 3600 行和列的 ALOS3D 30m 数据,我无法重现此问题。

在导出和导入 SRTM 或 ASTER 数据时,是否有人遇到过类似的范围和分辨率问题?

标签: rgisrasterastersrtm

解决方案


推荐阅读