如何使用pyproj定义地理数据转换

2024-10-01 15:46:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我最初写了一个脚本来投影x,y坐标。我和同事们共享了这段代码,我们似乎用相同的脚本和相同的文件得到了不同的结果。我们的机器上安装了不同版本的python和pyproj。从NAD27投影到WGS84时会出现问题。有几个基准计算可以用来做到这一点。你知道吗

如何指定要与pyproj一起使用的数据转换,以便可以显式地说明要与pyproj一起使用的数据转换?你知道吗

import pyproj

inProj =  pyproj.Proj(init='epsg:26714')
intermProj = pyproj.Proj(init='epsg:26914')
outProj = pyproj.Proj(init='epsg:32614')
y1,x1 = [6023700, 344288]
y2,x2 = pyproj.transform(inProj, intermProj, x1,y1)

print y2, x2

我希望不同版本的python和pyproj的x,y坐标是相同的,但事实并非如此。你知道吗


Tags: 数据版本脚本initepsg投影projx1
1条回答
网友
1楼 · 发布于 2024-10-01 15:46:39

您可能对TransformerGroup中介绍的pyproj 2.3.0感兴趣 https://pyproj4.github.io/pyproj/stable/advanced_examples.html#transformation-group

使用它,您可以从可用列表中选择感兴趣的特定转换:

>>> from pyproj.transformer import TransformerGroup
>>> tg = TransformerGroup(26714, 32614)
>>> for trans in tg.transformers:
...     print(repr(trans))
... 
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (79) + UTM zone 14N
Area of Use:
- name: USA - CONUS including EEZ
- bounds: (-129.17, 23.81, -65.69, 49.38)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (4) + UTM zone 14N
Area of Use:
- name: USA - CONUS - onshore
- bounds: (-124.79, 24.41, -66.91, 49.38)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (3) + UTM zone 14N
Area of Use:
- name: Canada - NAD27
- bounds: (-141.01, 40.04, -47.74, 83.17)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (6) + UTM zone 14N
Area of Use:
- name: USA - CONUS west of Mississippi River - onshore
- bounds: (-124.79, 25.83, -89.64, 49.05)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (18) + UTM zone 14N
Area of Use:
- name: Mexico - onshore
- bounds: (-118.47, 14.51, -86.68, 32.72)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (13) + UTM zone 14N
Area of Use:
- name: Canada - NWT; Nunavut; Saskatchewan
- bounds: (-136.46, 49.0, -60.72, 83.17)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (11) + UTM zone 14N
Area of Use:
- name: Canada - Manitoba and Ontario
- bounds: (-102.0, 41.67, -74.35, 60.01)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (5) + UTM zone 14N
Area of Use:
- name: USA - CONUS east of Mississippi River - onshore
- bounds: (-97.22, 24.41, -66.91, 49.38)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (84) + UTM zone 14N
Area of Use:
- name: USA - GoM OCS
- bounds: (-97.22, 23.82, -81.17, 30.25)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (82) + UTM zone 14N
Area of Use:
- name: USA - GoM - west of 95°W
- bounds: (-97.22, 25.97, -95.0, 28.97)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + NAD27 to WGS 84 (83) + UTM zone 14N
Area of Use:
- name: Mexico - offshore GoM - Tampico area
- bounds: (-98.1, 21.51, -96.89, 22.75)
<Concatenated Operation Transformer: pipeline>
Description: Inverse of UTM zone 14N + Ballpark geographic offset from NAD27 to WGS 84 + UTM zone 14N
Area of Use:
- name: World
- bounds: (-180.0, -90.0, 180.0, 90.0)

您还需要检查是否所有的基准网格都可用于最佳转换(https://pyproj4.github.io/pyproj/stable/installation.html#datum-grids)。你知道吗

另一个可能对您有所帮助的部分是指定AreaOfInterest中也引入了pyproj 2.3.0https://pyproj4.github.io/pyproj/v2.4.0rel/advanced_examples.html#area-of-interest

相关问题 更多 >

    热门问题