Czy kody fabryczne obiektów ArcGIS SpatialReference odpowiadają numerom EPSG?

22

Mam projekt, w którym czytam obiekty geometryczne z plików tekstowych, aby umieścić je w ArcSDE. Te obiekty geometrii mają powiązany kod EPSG i szukam sposobu, aby upewnić się, że są w prawidłowej projekcji, kiedy skończę z nimi.

Po obejrzeniu interesujących mnie kodów fabrycznych (GCS GDA94; EPSG: 4283 i VicGrid 94; EPSG: 3111) w projekcie, nad którym pracuję, okazuje się, że kody EPSG odpowiadają bezpośrednio ESRI kody fabryczne dla odniesienia przestrzennego ( tu i tutaj ). Jest to świetne, ponieważ oznacza, że ​​nie muszę się martwić nawigacją do plików projekcji w celu utworzenia obiektów SpatialReference , na przykład w poniższym kodzie:

import arcpy

# Create a spatial reference object using a factory code
#
sr = arcpy.SpatialReference()
sr.factoryCode = int(epsg_code.lstrip("EPSG:"))
sr.create()

Niestety nie mogę znaleźć w dokumentacji ESRI żadnej wzmianki o tym, czy jest to prawdą przez cały czas, czy nie - chyba tak, ale wolę wiedzieć na pewno. Czy ktoś wie, gdzie mógłbym się dowiedzieć?

om_henners
źródło

Odpowiedzi:

30

Jeśli dobrze znany identyfikator Esri jest mniejszy niż 32767, odpowiada on identyfikatorowi EPSG. WKID, które są 32767 lub wyższe, są zdefiniowane przez Esri. Albo obiekt nie znajduje się jeszcze w zestawie danych parametrów geodezyjnych EPSG , albo prawdopodobnie nie zostanie dodany. Jeśli obiekt zostanie później dodany do zbioru danych EPSG, Esri zaktualizuje WKID, aby pasował do zbioru EPSG, ale poprzednia wartość nadal będzie działać.

Istnieją pewne ograniczenia. Esri nie postępuje zgodnie z kierunkami osi, co EPSG, przynajmniej w ArcGIS Desktop, zawsze jest to długość i szerokość geograficzna lub wschód-północ (xy), chociaż teraz przyjmujemy kolejność osi na serwerze.

Znam to dokładnie, ponieważ jestem inżynierem produktu, który zajmuje się tym dla Esri.

Mkennedy
źródło
9

Wydaje się to udokumentowane w pomocy SDK, np. IGeometryServer.FindSRByWKID :

Nazwa Autorytetu to zazwyczaj „EPSG” lub „ESRI”, ale może być również dowolnym ciągiem. Może to być również pusty ciąg, jeśli chcesz, aby domyślna nazwa urzędu była powiązana z nowym odwołaniem przestrzennym. Klienci mogą powiązać swoje własne nazwy uprawnień z kodami fabrycznymi, które są obecnie powiązane z nazwami uprawnień EPSG lub ESRI, ponieważ tylko WKID jest używany do tworzenia odniesienia przestrzennego. Oto obecne zasady mapowania zakresów WKID na domyślne nazwy urzędów:

  • WKID w zakresie kodu EPSG (1000 - 32768) spowoduje nazwy organ „EPSG”, a wersja będzie obecna wersja EPSG używany (obecnie „6,12”).
  • WKID w zakresie kodu ESRI (33000 - 199999) spowoduje nazwy organ „ESRI”, a wersja będzie aktualną wersję biblioteki PE (obecnie „9.3”).
  • WKID w użytkownika (objedit) zakresu (200000 - 209199) spowoduje nazwy organ „custom”, ze związanym z nim bez wersji. Nazwę tę określa OGC.
blah238
źródło
Jeśli znalazłem wartość 0 w kodzie fabrycznym odniesienia przestrzennego, czy mogę stwierdzić, że odniesienie przestrzenne nie jest autoryzowane / ważne?
Emi
2
@Emi, 0 dla kodu fabrycznego / wkid zwykle oznacza, że ​​ArcGIS nie rozpoznaje odniesienia przestrzennego (układu współrzędnych). Nadal nazwałbym to prawidłowym odniesieniem przestrzennym, ponieważ można go użyć, po prostu nie ma identyfikatora.
mkennedy
5

Jedyne odniesienie, które mogłem znaleźć na temat EPSG, było w Co nowego w ArcGIS 10, który powiedział

Mapuj rzuty i układy współrzędnych

Dodano nowe układy współrzędnych i transformacje, w tym: • Definicje z zestawu danych geodezyjnych EPSG w wersjach 6.15 do 7.1, w tym 181 przekształceń geograficznych (bazowych) i ponad 280 układów współrzędnych ...

Nie wiem, czy jest to potwierdzenie, którego potrzebujesz.


źródło