Czym różnią się projekcje WKT ESRI od projekcji WKT OGC?

9

Czy ktoś zna dokładną listę różnic między ciągami formatu projekcji ESRI WKT i OGC WKT?

Wiem, że istnieją różne narzędzia pomagające w konwersji z ESRI WKT na OGC WKT, w tym narzędzia GDAL i różne serwisy internetowe. Ale moje pytanie nie jest praktyczne, chcę po prostu zrozumieć różnice w formatowaniu / składni, z których korzystają te usługi. Poprzednie pytania Stackexchange dotyczyły tylko różnic w konkretnych przykładach lub dostępnych narzędzi i usług.

Nawet jeśli znasz tylko jedną różnicę, byłoby wspaniale, gdybyś mógł ją po prostu opublikować. Z własnego doświadczenia wynika, że ​​powinna istnieć tylko niewielka garść różnic. Różnice, które znam, to:

  • większość elementów tekstowych w definicji esri używa znaku podkreślenia, gdzie ogc używa spacji.
  • tekst definiujący układ odniesienia w esri wkt jest taki sam jak ogc wkt, ale zaczyna się od „D_”.
  • czasami identyfikatory tekstowe dla niektórych predefiniowanych PROJCS, PROJECTION, GEOGCS i DATUM są zapisywane inaczej (np. „NAD83” w jednym z nich to „North_American_1983”). Wydaje mi się, że jedynym sposobem, aby dowiedzieć się, które identyfikatory są napisane inaczej, byłoby utworzenie listy lub tabeli przeglądowej, więc proszę wymienić wszystkie, o których wiesz, że są różne.
  • różne wartości tekstowe PARAMETRU są takie same, z wyjątkiem tego, że ogc ma każde słowo górną część tytułu, natomiast esri ma wszystko małe litery. Jednak widziałem przypadki, w których ta reguła nie została zastosowana, czy ktoś wie, czy titlecase naprawdę ma znaczenie, jeśli chodzi o oprogramowanie próbujące je załadować?
  • typ JEDNOSTKI to pisownia górnej części tytułu w ogc i małych liter w esri, np. „Stopień” vs „stopień”. W niektórych przypadkach widziałem, że ogc jest pisane zarówno jako „metr”, jak i „m” dla „Metr”, a w innych przypadkach z francuskim „metr”. Czy ktoś wie, jaka jest prawidłowa konwencja dla tych lub innych typów jednostek dla obu formatów?
Karim Bahgat
źródło

Odpowiedzi:

6

Nie mam takiej listy, ale przejście przez kod GDAL poprowadzi cię:

https://svn.osgeo.org/gdal/trunk/autotest/osr/osr_esri.py

https://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogr_srs_esri.cpp

https://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogr_srs_esri_names.h

https://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogrspatialreference.cpp

AndreJ
źródło
2
Zasadniczo ESRI nadrabia to, co robią :-)
Ian Turton
1
@iant Będąc pierwszymi, którzy wdrożyli bibliotekę kodów zgodną ze specyfikacjami EPSG, prawie nie mieli wyboru.
Vince
2
Byliśmy prawdopodobnie na drugim miejscu - ponieważ specyfikacja GeoTIFF była wówczas dostępna. @iant Istnieje kilka rzeczy, które zrobiłbym inaczej, gdybyśmy zbudowali nowy silnik projekcyjny Esri!
mkennedy,
okej, więc wiele z nich wydaje się być bardzo ad hoc, specjalne załatwianie spraw. w rzeczywistości, sądząc z połączonych dokumentów, istnieją setki wierszy kodu specjalnych przypadków w różnicach nazw i tak dalej. wszystko z powodu różnych implementacji oprogramowania i prawdopodobnie braku uzgodnionych standardów w danym momencie: p
Karim Bahgat
Bardzo by to pomogło, gdyby ESRI i GoeoTiff zawsze dodawały kod EPSG do ciągu projekcji WKT. QGIS tworzy dodatkowy plik .qpj dla plików kształtów, aby zapisać to ustawienie.
AndreJ
9

Złapałeś wiele różnic. Esri nigdy nie przyjęła identyfikatorów WKID dla algorytmów odwzorowywania mapy ani nazw parametrów, więc są one różne. Nie zgadzaliśmy się z tym, jak dokładnie zdefiniowano definicje parametrów. Nasze są bardziej ogólne.

Nie obsługujemy TOWGS84 ani niektórych nowszych słów kluczowych.

Porównując ciągi (nazwy), ignorujemy podkreślenia, GCS_ i D_ oraz wielkość liter. Może to nie być prawdą w innych parserach. Nasz parser jest ściśle związany z nazwami, ale dodaliśmy niektóre synonimy i teraz przechowujemy listy nazw od różnych dostawców do porównań.

Oryginalna specyfikacja układu współrzędnych z OGC nie sprecyzowała, jeśli chodzi o nazwy obiektów. Wprowadzono nową specyfikację OGC / ISO, „Informacje geograficzne - tekst dobrze znany jako standard systemów odniesienia za pomocą współrzędnych”, która przechodzi przez proces w kierunku standaryzacji. Bardziej szczegółowo określa, jakie powinny być nazwy (dopasuj rejestr EPSG!). W przyszłości wdrożenie tego standardu będzie bardzo ekscytujące.

Ujawnienie: Pracuję w Esri, jestem członkiem podkomitetu, który prowadzi rejestr EPSG i był członkiem komitetu projektowego CRS WKT 2.0.

Mkennedy
źródło
Wow, to naprawdę interesujące, szczególnie gdy słyszę niektóre informacje wewnętrzne od kogoś, kto był częścią procesu decyzyjnego. Nowa specyfikacja OGC ISO brzmi bardzo obiecująco. Czy sądzisz, że prawdopodobne jest, że więcej głównych dostawców GIS i formatów danych zacznie się zbliżać do korzystania z niej? Niestety podejrzewam, że niektóre stare różnice będą się utrzymywać, dopóki starsze formaty danych będą popularne (np. Shapefile, geotiff).
Karim Bahgat
Mówisz, że nie wspierasz TOWGS84, ale jak w ogóle mogłoby to działać bez tego? Jeśli WKT używa nieznanych nazw (tj. Rzut / punkt odniesienia zdefiniowany przez użytkownika), układu współrzędnych nie można poprawnie ustawić, gdy przesunięcie punktu odniesienia jest ignorowane. A może coś mi brakuje?
PMF
Większość najlepszych transformacji używa plików siatki, a nie metody 3 lub 7-parametrowej. Wiele transformacji również nie używa WGS84. To bardzo ograniczone rozwiązanie. Później wiążemy zamiast tego ... wybieramy / ustawiamy transformację w momencie transformacji.
mkennedy,
Jeśli system nie jest znany, użyj narzędzia do tworzenia niestandardowych transformacji geograficznych. Nowy CRS wkt obejmuje również transformacje. Przybywając Arron do najbliższego oprogramowania!
mkennedy,
0

Jako potencjalny punkt wyjścia do listy różnic może pomóc mój nowy pakiet PyCRS , w którym próbowałem utworzyć klasę dla każdego elementu crs, parametru i nazwy datum / ellips / proj, wraz z ich pisownią esri_wkt vs ogc_wkt . Sprecyzowałem również, jak widzę różnice w analizie pod względem struktury wkt jako całości w _from_wkt()funkcji w parser.pypodmodule. Mam nadzieję, że dzięki wkładowi użytkowników różnice te mogą zostać dodane i / lub poprawione.

https://github.com/karimbahgat/PyCRS

Karim Bahgat
źródło