r - 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 数据时,是否有人遇到过类似的范围和分辨率问题?
解决方案
推荐阅读
- python - 有选择地将数据从一个 Firestore 集合复制到另一个
- android - 特定片段内的 SearchView 实现
- excel - 使用 VBA 和 IE 从 Internet HTML 页面解析数据
- c++ - 在程序和基于文本的游戏和 C++ 中重新启动程序
- neo4j - Neo4j - 如何根据属性删除重复关系
- html - 如何在页眉和页脚中间放置内容?
- wildcard - Snakemae 中的 glob_wildcards 列表联合
- javascript - Datepicker 在创建时不起作用,它动态使用 javascript
- java - 我可以从 Eclipse 使用 Maven,但不能从命令行使用
- static - dagger 2 android(java.lang.ExceptionInInitializerError) 的问题