Mam ArcGIS Desktop 10.2, a moim wyzwaniem jest wyodrębnienie liczby wierzchołków w każdym wielokącie dla wszystkich takich funkcji:
Mam wiele działek w mojej klasie obiektów i chcę osobno wyodrębnić liczbę wierzchołków dla wszystkich obiektów, a następnie chcę wyświetlić współrzędne XY dla wszystkich wierzchołków.
aby uzyskać więcej informacji, chcę tylko przekonwertować wierzchołki dla każdego wielokąta i wyświetlić liczbę każdego wierzchołka zaczynającego się od 1 liczby, więc jeśli mam wielokąt i ma on 4 wierzchołki, chcę przekonwertować wielokąt na wierzchołki i wyświetlić liczbę takich wierzchołków (1,2,3,4,5), a następnie wyświetlając xy dla każdego wierzchołka, myślę, że prawdziwym wyzwaniem jest id, jak przekonwertować cały wielokąt na wierzchołki i ustawić każdą liczbę wierzchołków zaczynając od 1 liczby.
Odpowiedzi:
Poniższy kod łączy inne odpowiedzi i dodaje trochę, aby numerować wierzchołki.
Punkty są oznaczone w kolejności rysowania. Ostatni punkt (pod pierwszym) nie będzie miał etykiety i można go usunąć, wybierając wszystkie punkty, które mają wartość Null lub unikalne wartości „DRAW_ORDER”, jeśli nie są potrzebne do rekonstrukcji. Zapytania dotyczącego definicji można użyć do usunięcia nakładających się punktów z ekranu.
Dane XY są obecne, ale pozostawię to twoim pragnieniom w zakresie etykietowania / wyświetlania. Zobacz odpowiedź Aarona na temat dodania pola XY do etykietowania.
Bawiłem się także FeatureClass na tablicę numpy, ale ukończyłem to jako pierwsze.
źródło
Najłatwiej to zrobić, dodając nowe pole liczb całkowitych do tabeli atrybutów warstwy działek. Następnie uruchom kalkulator pola z następującym wyrażeniem:
!Shape!.pointCount
Zwraca łączną liczbę wierzchołków w filmie. Jednak pierwszy wierzchołek każdej części jest powtarzany na końcu, aby zamknąć operację. Aby to obsłużyć, odejmij jeden wierzchołek dla każdej używanej części-!Shape!.partCount
.Zauważ, że będziesz musiał użyć parsera Python, aby to wyrażenie działało.
źródło
SearchCursor
metody z odpowiedzi Aarona lub narzędzia geoprzetwarzania, takiego jak Feature Vertices To Points (chociaż to narzędzie wymaga licencji ArcGIS na komputer Advanced).dmahr zapewnił dobre rozwiązanie do zliczania wierzchołków. Aby nieprogramowo oznaczyć każdy punkt współrzędnymi XY, wypróbuj następujący przepływ pracy:
Oblicz pole „XY” w kalkulatorze pola, gdzie XY =
str (! x!) + "," + str (! y!)
Funkcje etykiet. Kliknij warstwę prawym przyciskiem myszy> Etykiety> Pole etykiety: XY
Daje to następujące wyniki:
Można również wykonać te czynności programowo korzystając
explode_to_points
z kursora wyszukiwania (jako start).źródło
Jeśli nie chcemy obliczać nowego pola i chcemy bardzo szybko odzyskać liczbę wierzchołków na warstwę (do celów uogólnienia, takich jak ujawnianie zestawów danych w Internecie), możliwe jest utworzenie niestandardowego narzędzia skryptowego wewnątrz Przybornik lub ujawnij kod jako dodatek do Pythona.
Niestandardowy kod narzędzia skryptu:
Dodatkowy kod Python (wybierz warstwę w spisie treści, aby policzyć wierzchołki):
źródło