我正在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 数据时,是否有人遇到过类似的范围和分辨率问题?