Как определить географическое преобразование датума с помощью pyproj - PullRequest
0 голосов
/ 23 сентября 2019

Первоначально я написал скрипт для проецирования координат 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

Я ожидаю, что координаты x, y будут одинаковыми в разных версиях python и pyproj, но это не так.

1 Ответ

0 голосов
/ 25 сентября 2019

Вас может заинтересовать 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.0 https://pyproj4.github.io/pyproj/v2.4.0rel/advanced_examples.html#area-of-interest

...