Cálculo de coordenadas XY em graus decimais a partir do conjunto de dados projetado no modelo ou script?

8

É possível calcular os pontos das coordenadas XY em graus decimais no modelo ou script quando uma classe de feição está no sistema de coordenadas projetado?

É fácil quando um FC está no sistema de coordenadas geográficas:

  • usando a ferramenta Adicionar coordenadas XY ou
  • usando a expressão Python, por exemplo. !shape.extent.XMax!

Descobri que as propriedades de área e comprimento do campo geometria podem ser modificadas com a palavra-chave de conversão de unidade geométrica. Para unidades lineares de medida, pode-se usar @DECIMALDEGREES.
Infelizmente, !shape.extent.XMax@decimaldegrees!não funciona, pois o XMax não é um comprimento.

Na função Calcular Geometria (acessada a partir do botão direito), existe a possibilidade de escolher o tipo de saída Graus Decimais, mesmo para a classe de recurso projetada.
Posso fazer isso usando o ArcPy?


Aqui está um trecho de código baseado na solução da iRfAn:

import arcpy, os
projectedFC = r"C:\tmp\test.gdb\points01_Projected"
prjFile = os.path.join(arcpy.GetInstallInfo()["InstallDir"],
            r"Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj")
spatialRef = arcpy.SpatialReference(prjFile)

updCursor = arcpy.UpdateCursor(projectedFC,"", spatialRef)
for row in updCursor:
    pnt = row.Shape.getPart(0)
    row.X = pnt.X
    row.Y = pnt.Y
    updCursor.updateRow(row)

del updCursor, row
Marcin
fonte
É necessário manter os pontos XY em um CS projetado?
Roy
@ Roy: sim, quero preservar uma classe de recurso no CS projetado, mas calculamos graus decimais.
1313 Marcin

Respostas:

4

Eu acho que você pode.

Apenas defina a Referência espacial no WGS-84 e use o cursor usando esta Referência espacial.

As coordenadas são especificadas na referência_espacial fornecida e convertidas dinamicamente no sistema de coordenadas do conjunto de dados.

Para mais detalhes, veja isso .

iRfAn
fonte
Você pode fazer assim. No SHAPEcampo, você obterá um objeto de geometria de pontos, do qual poderá obter as cordas X e Y.
Om_henners
2

Não tenho certeza sobre um script, mas consegui isso de uma maneira um pouco automatizada usando o construtor de modelos: importe suas coordenadas xy e projete-as no WGS 1984. Em seguida, adicione campos e calcule a geometria dos pontos em graus decimais. Em seguida, traga seus pontos XY de volta ao sistema de coordenadas original.

mburkenysdot
fonte
é um longo caminho, prefiro usar o cursor e usar o WGS-84 como referência espacial e calcular. Não há necessidade de re-projetar e depois ingressar.
IRfAn 16/07
@mburkenysdot: Esta é uma boa solução alternativa quando alguém não deseja usar nenhum script.
Marcin