Jest to inny sposób, aby to zrobić za pomocą 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
Wynikające z ObjectID, X i Y, które można skopiować do Excela:
...
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
...
Wypróbuj narzędzia geo-kreatora z technologii przestrzennych. Ma kilka bezpłatnych narzędzi, które mogą robić, co chcesz. Spróbuj uzyskać współrzędne wielokąta. Lub wielokąt do punktów
i geo-czarodzieje
źródło
Poniższy skrypt Pythona (który wymaga ArcGIS 10.1 lub nowszego) wykorzystuje
arcpy.da
plik shapefile jako dane wejściowe i tworzy arkusz kalkulacyjny z wpisem dla każdego wierzchołka w każdym wielokącie obecnym w .shp (i wierzę, że działa z licencjami Arcgis niższego poziomu) . Identyfikator obiektu i sekwencji wiąże punkty z powrotem do określonej pozycji w określonym wielokącie.H / t do @PaulSmith w tym poście: Zbierz wszystkie punkty polilinii, aby podświetlić
explode_to_points
opcję warcpy.da.FeatureClassToNumPyArray
narzędziuNapisałem również skrypt, który dokładnie spełnia wymagania: Wstaw współrzędne wierzchołków w wielokącie, który jest oznaczony jako duplikat tego pytania, kod jest poniżej:
źródło
Nie ukończyłem jeszcze rozwiązania, ale wygląda na to, że możesz użyć tego narzędzia:
Konwersja> JSON> Funkcje do JSON.
Spowoduje to konwersję pliku shapefile (w moim przypadku 81 wielokątów) do pliku JSON. Możesz to otworzyć za pomocą edytora tekstu, aby zobaczyć, że rzeczywiście wszystkie wierzchołki są wymienione dla każdego wielokąta.
Ponadto standardowa biblioteka Pythona (import json) traktuje obiekty json jak słowniki. Następnie możesz po prostu przeglądać słowniki, aby zapisać wartości wierzchołków (i wszelkie inne atrybuty, które chcesz) do pliku csv. Jeśli sprawię, że zadziała, wrócę i wyślę soln.
źródło
Potrzebowałem tylko współrzędnych xiy dla polilinii i wielokąta. Użyłem ToolBox -> Narzędzia do zarządzania danymi -> Funkcje -> Funkcja do punktu. Utworzyło to plik kształtu punktu, a następnie użyłem dodania współrzędnych XY z tego samego menu Funkcje, aby wygenerować współrzędne XY. Następnie wyodrębniłem informacje z tabeli atrybutów kształtów do arkusza programu Excel. To rozwiązało mój problem, nie jestem pewien, czy szukasz tego samego.
źródło
Oto obejście w desperackich czasach:
Ta metoda jest odpowiednia dla małych zestawów danych, ale zależność / ograniczenia konwerterów OCR są głównym problemem. Używaj ostrożnie.
źródło