R Terra 包,项目:更改指定变换类型的坐标参考系

问题描述 投票:0回答:1

我想更改一些来自不同类型和来源的栅格和矢量图层的坐标参考系统,以便它们都在同一个 CRS 中。在 QGIS 中,当我想更改项目的 CRS 时,每个 CRS 都有几个转换选项。这是 QGIS 提示的文本:

在这两个坐标参考系之间转换坐标可以进行多种操作。请选择适当的转换操作,考虑到所需的使用区域、数据来源以及任何其他可能改变特定转换操作的“适合目的”的限制条件。

QGIS 显示了一张小地图,其中包含这些转换被调整到的特定区域以及每个转换将提供的以米为单位的精度(通常范围从 1 到 10 米,具体取决于转换)。

这是我的数据子集的示例,在这种情况下,矢量图层包含我想从 WGS84 (EPSG 4326) 投影到 ED50 UTM30 (EPSG 23030) 的点,以便稍后从这些地理位置的栅格层中提取信息:

姓名 lat
1 38.190694 -5.993028
2 38.419139 -6.100139
3 38.289917 -5.984778
4 37.974500 -6.168806
5 38.745500 -5.767806
6 36.976222 -5.657944
7 37.317750 -6.866444
8 40.772194 -3.779278
9 40.069639 -5.438222
10 40.955000 -5.668944

当我尝试将这些点导入 QGIS(版本 3.28.5“Fierze”)时,我可以在 13 个转换选项中进行选择。在感兴趣的区域(西班牙)提供最佳结果的是这个:

ED50 到 WGS 84 (28) + UTM 区域 30N 的倒数。

Scope:近似假设板固定静态和地球固定动态 CRS 之间相等。 备注:参数值从 ED50 到 ETRS89 (7)(代码 1632)。假设 ETRS89 和 WGS 84 在转换精度内可以被认为是相同的。

范围:工程测量,地形测绘。

使用区域:西班牙 - 陆上大陆,西北除外(41°30'N 以北和 4°30'W 以西),6°W 和 0°W 之间,赤道和 84°N 之间的北半球,陆上和海上。

标识符:逆(EPSG):1633,EPSG:16030 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=push +v_3 +step +proj=cart +ellps=WGS84 +step +inv +proj=helmert +x=-131 + y=-100.3 +z=-163.4 +rx=-1.244 +ry=-0.02 +rz=-1.144 +s=9.39 +convention=position_vector +step +inv +proj=cart +ellps=intl +step +proj=pop +v_3 +step +proj=utm +zone=30 +ellps=intl*

但另一个可能的选择是:

ED50 逆向 WGS 84 (13) + UTM 带 30N 范围:军事测量.

备注:18个站派生。 X、Y 和 Z 轴精度分别为 5m、6m 和 3m。适用范围:工程测量、地形测绘。使用范围:

葡萄牙;西班牙 - 大陆。,在 6°W 和 0°W 之间,北半球在赤道和 84°N 之间,陆上和海上。标识符:

反转(EPSG):1145,EPSG:16030

+proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=push +v_3 +step +proj=cart +ellps=WGS84 +step +proj=helmert +x=84 +y= 107 +z=120 +step +inv +proj=cart +ellps=intl +step +proj=pop +v_3 +step +proj=utm +zone=30 +ellps=intl

但是,当我使用 R 中的 terra 包更改投影时,它非常简单,我不必指定任何转换类型。但是,我应该为此担心吗?

感谢您对这些方面的任何见解。

r raster qgis coordinate-transformation terra
1个回答
1
投票

我从 ArcGIS 了解您所说的内容。我不确定这是不同的原因,但我从未在 R 中看到过这个我认为你不需要担心它。

我一直这样做。这是我使用的工作流程。

首先,我定义了我计划在工作流程的早期用于许多不同栅格的 CRS。

LCC <- "+init=EPSG:3347"

WGS84 <- "+init=EPSG:4326"

NAD83 <- "+init=EPSG:4269"

WClim_CRS <- "GEOGCRS[\"WGS 84\",\n    DATUM[\"World Geodetic System 1984\",\n        ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n            LENGTHUNIT[\"metre\",1]]],\n    PRIMEM[\"Greenwich\",0,\n        ANGLEUNIT[\"degree\",0.0174532925199433]],\n    CS[ellipsoidal,2],\n        AXIS[\"geodetic latitude (Lat)\",north,\n            ORDER[1],\n            ANGLEUNIT[\"degree\",0.0174532925199433]],\n        AXIS[\"geodetic longitude (Lon)\",east,\n            ORDER[2],\n            ANGLEUNIT[\"degree\",0.0174532925199433]],\n    ID[\"EPSG\",4326]]"

然后在我的工作流程中,每当我想将栅格转换为与其他栅格具有相同的 CRS 时,我都会使用这些预定义的 CRS 对象

remove_area <- terra::project(remove_area, LCC)

nfld <- terra::project(nfld, LCC)

bioclim_ssp245_can  <- terra::project(bioclim_ssp245_can, LCC)
bioclim_ssp585_can  <- terra::project(bioclim_ssp585_can , LCC)

© www.soinside.com 2019 - 2024. All rights reserved.