Os códigos de fábrica de objetos do ArcGIS SpatialReference correspondem aos números EPSG?

22

Eu tenho um projeto em que estou lendo objetos de geometria de arquivos de texto para colocá-los no ArcSDE. Esses objetos de geometria têm um código EPSG associado, e estou procurando uma maneira de garantir que eles estejam na projeção correta quando terminar com eles.

Tendo examinado os códigos de fábrica nos quais estou interessado (GCS GDA94; EPSG: 4283 e VicGrid 94; EPSG: 3111) para um projeto em que estou trabalhando, parece que os códigos EPSG correspondem diretamente à ESRI códigos de fábrica para a referência espacial ( aqui e aqui ). Isso é ótimo, pois significa que não preciso me preocupar em navegar para arquivos de projeção para criar objetos SpatialReference , por exemplo, no código abaixo:

import arcpy

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

Infelizmente, não consigo encontrar nenhuma referência na documentação da ESRI para dizer se isso é verdade o tempo todo ou não - acho que sim, mas prefiro ter certeza. Alguém sabe onde eu poderia descobrir?

om_henners
fonte

Respostas:

30

Se um ID conhecido da Esri estiver abaixo de 32767, ele corresponderá ao ID EPSG. WKIDs 32767 ou superior são definidos pela Esri. O objeto ainda não está no conjunto de dados do parâmetro geodésico do EPSG ou provavelmente não será adicionado. Se um objeto for adicionado posteriormente ao EPSG Dataset, a Esri atualizará o WKID para corresponder ao EPSG, mas o valor anterior ainda funcionará.

Existem algumas limitações. A Esri não segue as instruções dos eixos que o EPSG faz, pelo menos no ArcGIS Desktop, é sempre latitude longitudinal ou leste-norte (xy), embora agora estamos pegando a ordem dos eixos no Server.

Estou intimamente familiarizado com isso, pois sou o engenheiro de produto que lida com eles para a Esri.

mkennedy
fonte
9

Isso parece estar documentado na ajuda do SDK, por exemplo, IGeometryServer.FindSRByWKID :

AuthorityName é geralmente "EPSG" ou "ESRI", mas também pode ser uma sequência arbitrária. Também pode ser a cadeia vazia se você desejar o nome da autoridade padrão associado à nova referência espacial. Os clientes podem associar seus próprios nomes de autoridade aos códigos de fábrica atualmente associados aos nomes de autoridade EPSG ou ESRI, porque apenas o WKID é usado para criar a referência espacial. Aqui estão as regras atuais para o mapeamento de intervalos WKID para nomes de autoridade padrão:

  • Um WKID no intervalo de códigos EPSG (1000 - 32768) resultará em um nome de AUTORIDADE "EPSG" e a versão será a versão EPSG atual usada (atualmente "6.12").
  • Um WKID no intervalo de código ESRI (33000 - 199999) resultará em um nome de AUTORIDADE de "ESRI" e a versão será a versão atual da biblioteca do PE (atualmente "9.3").
  • Um WKID no intervalo do usuário (objedit) (200000 - 209199) resultará em um nome de AUTORIDADE de “PERSONALIZADO”, sem nenhuma versão associada a ele. Este nome é especificado pelo OGC.
blah238
fonte
Se eu encontrei um valor 0 no código de fábrica de referência espacial, posso dizer que a referência espacial não é autorizada / válida?
Emi
2
@Emi, A 0 para o código de fábrica / wkid geralmente significa que o ArcGIS não reconhece a referência espacial (sistema de coordenadas). Eu ainda chamaria isso de uma referência espacial válida porque pode ser usada, simplesmente não possui um ID.
mkennedy
5

A única referência que pude encontrar sobre o EPSG foi no What's New in ArcGIS 10, que dizia

Mapear projeções e sistemas de coordenadas

Novos sistemas e transformações de coordenadas foram adicionados, incluindo o seguinte: • Definições do conjunto de dados de parâmetros geodésicos EPSG versões 6.15 a 7.1, incluindo 181 transformações geográficas (dados) e mais de 280 sistemas de coordenadas ...

Não sei se essa é a confirmação que você precisa.


fonte