Esta é outra maneira de fazer isso usando um da.SearchCursor :
import arcpy
fc=r'C:\TEST.gdb\polygons123'
with arcpy.da.SearchCursor(fc,['OID@','SHAPE@']) as cursor:
for row in cursor:
array1=row[1].getPart()
for vertice in range(row[1].pointCount):
pnt=array1.getObject(0).getObject(vertice)
print row[0],pnt.X,pnt.Y
Resultando em ObjectID, X e Y, que podem ser copiados para o Excel:
...
1 537505.894287 6731069.60889
1 537533.516296 6731078.20947
1 537555.316528 6731082.53589
1 537562.501892 6731085.47913
1 537589.395081 6731070.52991
1 537617.062683 6731058.29651
2 537379.569519 6729746.16272
2 537384.81311 6729746.06012
2 537396.085327 6729748.62311
2 537404.065674 6729752.75311
2 537425.145325 6729773.72931
2 537429.842102 6729777.07129
2 537442.971313 6729780.10651
2 537450.27533 6729780.51611
...
Experimente as ferramentas de geo-assistente das tecnologias espaciais. Possui várias ferramentas gratuitas que podem fazer o que você deseja. Experimente as coordenadas do polígono get. Ou polígono para pontos
e assistentes geográficos
fonte
O script python a seguir (que requer o ArcGIS 10.1 ou posterior) utiliza
arcpy.da
para pegar um shapefile como entrada e criar uma planilha com uma entrada para cada vértice em cada polígono presente no .shp (e acredito que funcione com licenças de arcgis de nível inferior) . Os IDs de objetos e sequências vinculam os pontos a uma posição específica em um polígono específico.H / t para @PaulSmith nesta postagem: obtenha todos os pontos de uma polilinha para destacar a
explode_to_points
opção naarcpy.da.FeatureClassToNumPyArray
ferramentaTambém escrevi um script que aborda especificamente os requisitos de: Inserir coordenadas de vértices no polígono, que é marcado como duplicado para esta pergunta, esse código está abaixo:
fonte
Ainda não concluí a solução, mas parece que você pode usar esta ferramenta:
Conversão> JSON> Recursos para JSON.
Isso converterá seu shapefile (no meu caso, 81 polígonos) em um arquivo JSON. Você pode abrir isso com um editor de texto para ver se todos os vértices estão listados para cada polígono.
Além disso, a biblioteca padrão do python (import json) trata os objetos json como dicionários. Você pode simplesmente percorrer seus dicionários para gravar os valores dos vértices (e quaisquer outros atributos desejados) em um arquivo csv. Se eu conseguir funcionar, voltarei e publicarei o soln.
fonte
Eu só precisava das coordenadas xey para a polilinha e o polígono. Eu usei o ToolBox -> Ferramentas de Gerenciamento de Dados -> Recursos -> Recurso a Ponto. Isso criou um arquivo de forma de ponto e, em seguida, usei as coordenadas XY adicionadas no mesmo menu Recursos para gerar coordenadas XY. Então eu extraí as informações da tabela de atributos shapes em uma planilha do excel. Isso resolveu o meu problema, não tenho certeza se você está procurando o mesmo.
fonte
Aqui está uma solução alternativa em tempos desesperados:
Esse método é adequado para conjuntos de dados pequenos, mas a dependência / limitações dos conversores de OCR são a principal preocupação. Use com cuidado.
fonte