使用terra::spatRaster读取NetCDF时的CRS差异原因咨询
问题解答
这个差异确实和PROJ库的版本更新直接相关,具体原因如下:
PROJ 9.x的单位格式化逻辑优化:PROJ 9.x系列对投影坐标系的单位展示做了改进,当检测到单位为米且数值较大时(比如3000米),会自动转换为更直观的千米单位进行输出;而PROJ 8.2及更早版本只会严格返回NetCDF文件中原始定义的单位(米),不会做这种友好的单位转换展示。
terra对PROJ的依赖传递:
terra::rast读取NetCDF文件的CRS和分辨率信息时,直接调用底层PROJ库的解析结果。你Windows机器用的PROJ 9.3.1会输出格式化后的千米单位,Linux机器的PROJ 8.2.0则输出原始米单位,这就导致了显示上的差异。实际数据无精度差异:需要注意的是,两种显示方式本质是等价的(3km = 3000m),spatRaster的空间精度、计算逻辑完全不受影响,只是PROJ版本带来的展示格式区别。
内容的提问来源于stack exchange,提问作者user8330904
相关产品推荐
相关产品推荐

