Obtenha a menor distância entre duas geometrias no ArcPy

8

Estou usando o ArcPy e usando um cursor para percorrer uma classe de recurso de polígono. Para cada um desses polígonos 'de origem', estou criando um SearchCursor para encontrar todos os polígonos em uma segunda classe de recurso que compartilham um atributo comum. Para cada um desses polígonos correspondentes, desejo medir a distância entre ele e o polígono de pesquisa. Também planejo medir outras diferenças de geometria (para determinar se ela acabou de ser deslocada, girada, dimensionada etc.).

O objetivo deste trabalho é criar um histórico de alterações entre conjuntos de dados de polígonos que representam recursos em momentos diferentes.

Eu vi o método ReturnDistance mencionado no ArcObjects, mas não consigo descobrir como executar isso usando o ArcPy. É possível, e se sim, alguém pode ajudar com algum código de amostra aproximado? Caso contrário, provavelmente vou recorrer à medição da mudança na posição do centróide entre os polígonos.

Obrigado Steve

Steve
fonte

Respostas:

1

Esta resposta pode não ser considerada correta, pois exclui o uso do ArcPy. Não tenho certeza, se você pode acessar ReturnDistance no ArcPy. No entanto, você pode acessar o ArcObjects diretamente do Python. Este guia de Mark Cederholm ajudará você a iniciar http://www.pierssen.com/arcgis/upload/misc/python_arcobjects.pdf . Isso exigirá de você algumas habilidades de programação orientada a objetos, se você conhece o básico, deve ser suficiente. Caso contrário, leia o guia. Nas referências, você encontrará alguns links para trechos de código, se for paciente o suficiente, descobrirá.

Aqui você terá algumas abordagens diferentes do ArcObjects no Python: Acessando o ArcObjects a partir do Python?

E aqui está um exemplo de ArcObjects em Python (minha luta com este problema): Arcobjects em Python: atribua interface a objetos com geometria de recurso (forma)

Demorei aproximadamente 3 dias para escrever meu próprio programa e eu não tinha nenhuma pista sobre programação orientada a objetos, boa sorte.

Tomek
fonte
Eu suspeitava que isso pudesse ser o que eu precisava fazer. Obrigado por todos os links e informações sobre sua experiência com isso. Vou tentar.
Steve
11

Como a resposta está 3 anos atrasada, você provavelmente já deve ter uma solução alternativa. Mas, para completar, aqui está um método arcpy para medir a distância entre dois objetos.

A geometria possui um método distanceToque:

Retorna a distância mínima entre duas geometrias. Se as geometrias se cruzarem, a distância mínima será 0.

Ambas as geometrias devem ter a mesma projeção.

Stephen Lead
fonte