I codici di fabbrica degli oggetti ArcGIS SpatialReference corrispondono ai numeri EPSG?


22

Ho un progetto in cui sto leggendo oggetti geometrici da file di testo per inserirli in ArcSDE. Questi oggetti geometrici hanno un codice EPSG associato e sto cercando un modo per assicurarmi che siano nella giusta proiezione quando ho finito con loro.

Dopo aver dato un'occhiata ai codici di fabbrica che mi interessano (GCS GDA94; EPSG: 4283 e VicGrid 94; EPSG: 3111) per un progetto a cui sto lavorando, sembra che i codici EPSG corrispondano direttamente all'ESRI codici di fabbrica per il riferimento spaziale ( qui e qui ). Questo è fantastico, poiché significa che non devo preoccuparmi di passare ai file di proiezione per creare oggetti SpatialReference , ad esempio nel codice seguente:

import arcpy

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

Sfortunatamente non riesco a trovare alcun riferimento nella documentazione ESRI per dire se questo è vero in ogni momento o no - immagino che lo sia, ma preferirei sapere con certezza. Qualcuno sa dove sarei in grado di scoprire?

Risposte:


30

Se un ID noto Esri è inferiore a 32767, corrisponde all'ID EPSG. I WKID 32767 o superiori sono definiti da Esri. L'oggetto non è ancora nel set di dati dei parametri geodetici EPSG o probabilmente non verrà aggiunto. Se un oggetto viene successivamente aggiunto al set di dati EPSG, Esri aggiornerà il WKID in modo che corrisponda a quello dell'EPSG, ma il valore precedente continuerà a funzionare.

Ci sono alcune limitazioni. Esri non segue le direzioni degli assi che fa EPSG, almeno in ArcGIS Desktop, è sempre longitudine-latitudine o est-nord-est (xy), anche se ora stiamo rilevando l'ordine degli assi in Server.

Conosco profondamente questo dato che sono l'ingegnere di prodotto che gestisce questi per Esri.


9

Questo sembra essere documentato nella guida dell'SDK, ad esempio IGeometryServer.FindSRByWKID :

AuthorityName è in genere "EPSG" o "ESRI", ma può anche essere una stringa arbitraria. Può anche essere la stringa vuota se si desidera che il nome dell'autorità predefinito sia associato al nuovo riferimento spaziale. I clienti possono associare i propri nomi di autorità ai codici di fabbrica che sono attualmente associati ai nomi di autorità EPSG o ESRI, poiché solo il WKID viene utilizzato per creare il riferimento spaziale. Ecco le regole attuali per la mappatura degli intervalli WKID sui nomi di autorità predefiniti:

  • Un WKID nell'intervallo di codice EPSG (1000 - 32768) genererà un nome AUTHORITY di "EPSG" e la versione sarà l'attuale versione EPSG utilizzata (attualmente "6.12").
  • Un WKID nell'intervallo di codici ESRI (33000 - 199999) produrrà un nome AUTHORITY di "ESRI" e la versione sarà l'attuale versione della libreria PE (attualmente "9.3").
  • Un WKID nell'intervallo utente (objedit) (200000 - 209199) si tradurrà in un nome AUTHORITY di "CUSTOM", senza alcuna versione associata. Questo nome è specificato dall'OGC.

Se ho trovato un valore 0 nel codice di fabbrica del riferimento spaziale, posso dire che il riferimento spaziale non è autorizzato / valido?
Emi,

2
@Emi, A 0 per il codice di fabbrica / wkid di solito significa che ArcGIS non riconosce il riferimento spaziale (sistema di coordinate). Lo definirei comunque un riferimento spaziale valido perché può essere utilizzato, semplicemente non ha un ID.
mkennedy,

5

L'unico riferimento che ho potuto trovare in merito a EPSG era nella sezione Novità di ArcGIS 10 che diceva

Proiezioni cartografiche e sistemi di coordinate

Sono stati aggiunti nuovi sistemi di coordinate e trasformazioni, tra cui: • Definizioni dalle versioni del set di dati dei parametri geodetici EPSG da 6.15 a 7.1, tra cui 181 trasformazioni geografiche (di riferimento) e oltre 280 sistemi di coordinate ...

Non so se questa è la conferma di cui hai bisogno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.