Eu tenho o ArcGIS Desktop 10.2 e meu desafio é como extrair os vértices numéricos em cada polígono para todos os recursos como este:
Eu tenho muitos pacotes na minha classe de recurso e quero extrair o número de vértices para todos os recursos separadamente. Quero exibir as coordenadas XY para todos os vértices.
Para obter mais informações, eu só quero converter vértices para cada polígono e exibir o número de cada vértices com um número, então se eu tiver um polígono e ele tiver 4 vértices, um desejo de converter polígono em vértices, exibirei o número de vértices como este (1,2,3,4,5), exibindo xy para cada vértice, acho que o verdadeiro desafio é: como converter todo polígono em vértices e fazer cada número de vértices a partir de 1 número.
Respostas:
O código abaixo combina as outras respostas e adiciona um pouco ao número dos vértices.
Os pontos são rotulados em ordem de desenho. O último ponto (abaixo do primeiro) não terá rótulo e poderá ser excluído selecionando todos os pontos com valores "DRAW_ORDER" nulos ou únicos, se não forem necessários para a reconstrução. Uma consulta de definição pode ser usada para remover os pontos sobrepostos da exibição.
Dados XY estão presentes, mas deixarei isso para seus desejos de rotulagem / exibição. Consulte a resposta de Aaron sobre como adicionar um campo XY para rotular.
Eu também estava brincando com o FeatureClass em um array numpy, mas terminei isso primeiro.
fonte
A maneira mais fácil de fazer isso é adicionar um novo campo inteiro à tabela de atributos da camada de parcelas. Em seguida, execute a calculadora de campo com a seguinte expressão:
O
!Shape!.pointCount
retorna o número total de vértices no recurso. No entanto, o primeiro vértice de cada parte é repetido no final, para fechar o recurso. Para lidar com isso, subtraia um vértice para cada parte usando-!Shape!.partCount
.Observe que você precisará usar o analisador Python para que essa expressão funcione.
fonte
SearchCursor
método na resposta de Aaron ou uma ferramenta de geoprocessamento como Feature Vertices To Points (embora essa ferramenta exija uma licença do ArcGIS for Desktop Advanced).O dmahr forneceu uma boa solução para contar vértices. Para uma maneira não programática de rotular cada ponto com as cordas XY, tente o seguinte fluxo de trabalho:
Calcular o campo "XY" na calculadora de campos, onde XY =
str (! x!) + "," + str (! y!)
Recursos de etiqueta. Clique com o botão direito do mouse na camada> Rótulos> Campo do rótulo: XY
Isso produz os seguintes resultados:
Você também pode executar essas ações programaticamente usando
explode_to_points
com um cursor de pesquisa (como início).fonte
Se alguém não deseja calcular um novo campo e apenas deseja recuperar vários vértices por camada rapidamente (para propósitos de generalização, ao expor os conjuntos de dados na Web), é possível criar uma ferramenta de script personalizada dentro de um caixa de ferramentas ou exponha o código como um suplemento Python.
Código da ferramenta de script personalizado:
Código de suplemento Python (selecione uma camada no sumário para contar vértices):
fonte