Czy można jednoznacznie zidentyfikować każdą geometrię w warstwie obiektów?
Zasadniczo mam warstwę cech wielokąta z wieloma wierszami danych reprezentowanymi przez tę samą geometrię. Chciałbym 1 wiersz dla każdej unikalnej geometrii. Szukam więc gotowej metodologii łączenia atrybutów w oparciu o kształt geometrii.
Pochodzę ze świata Postgres i mogę tam rozwiązać ten problem, ale nie wiem, jak to zrobić (lub jeśli to możliwe), aby zrobić to nieprogramowo za pomocą narzędzi ESRI.
arcgis-desktop
arcmap
arcgis-10.0
geometry
Dylan Hettinger
źródło
źródło
Odpowiedzi:
Jeśli masz licencję zaawansowaną, możesz użyć funkcji Znajdź identyczną lub Usuń identyczną .
Oba mogą być używane do wyszukiwania / usuwania obiektów, które mają identyczne atrybuty lub, jeśli określono pole Kształt, identyczne geometrie.
Jeśli nie masz zaawansowanej licencji, ten post będzie przydatny.
Krótko mówiąc, dodajesz dwa pola dla X, Y w tabeli atrybutów i uruchamiasz Rozpuszczanie na wspomnianych polach.
Jeśli masz wielokąty, które mają ten sam środek ciężkości, ale nie są geometrycznie identyczne, możesz dodać dwa inne pola (obwód i obszar). To powinno wystarczyć do zidentyfikowania identycznych geometrii dla prawie wszystkich normalnych przypadków. Zobacz komentarze @ whuber poniżej.
źródło
Mam zestaw danych oparty na danych ankietowych. Mój problem polega na tym, że stare funkcje nie zawsze są usuwane przed zaimportowaniem nowych zdjęć ankiet. Dlatego mamy „duplikaty” o innej geometrii: IE strzały pomiarowe mogą być od siebie oddalone o 1/4 stopy. W zestawie danych funkcji 12000 trudno jest powiększyć każdy z nich i zidentyfikować je. Korzystanie z ArcMap Basic 10.2: oto hacky model, który wymyśliłem.
Wynalazłem koło na nowo. Sfrustrowałem się też konstruktorem modeli i po prostu zepsułem całą sprawę. Musi być bardziej eleganckie rozwiązanie. Chętnie przyjmę krytykę i sugestie.
Ponadto wydaje się, że działa to poprawnie tylko z poziomu Konstruktora modeli, uruchamiam z przybornika i nie zapisuje warstwy buforowej.
źródło
Od jakiegoś czasu szukałem odpowiedzi na to samo pytanie, aby przezwyciężyć spłaszczanie problemu nakładających się wielokątów buforowych i pomyślałem, że znalazłem solidne rozwiązanie tego problemu. W rzeczywistości komentarz Whubera,
Odpowiedź @ Paul była dla mnie głównym motorem do dalszych prób. Używa operatora ARE_IDENTICAL_TO narzędzia Spatial , ponieważ jest to najbardziej wydajny spośród innych identycznych detektorów. Oto kroki:
Poniższe kroki można wykonać na dwa sposoby, Z Pythonem lub BEZ:
Z PYTHONEM
print tuple(set([row.getValue("EX_OID_1") for row in arcpy.SearchCursor("Output_of_the_Spatial_Join_Operation")]))
.Pamiętaj, że korzystam z drugiej kopii fikcyjnego pola OID, którym w moim przypadku jest EX_OID_1;
OBJECTID IN (<PASTE_COPIED_VALUES_HERE>)
. Rezultat pokaże ci ujednolicone cechy nakładających się części. Jest tu jednak ograniczenie wielkości, 30 000 znaków. Aby rozwiązać ten problem, musisz wykonać kroki „bez Pythona”.BEZ PYTHONU
Użyj narzędzia Częstotliwość, aby wyświetlić unikalne wartości w drugiej kopii fikcyjnego pola OID, które w moim przypadku to EX_OID_1;
Na koniec dołącz pole OBJECTID oryginalnej klasy obiektów z danymi wyjściowymi narzędzia EX_OID_1 narzędzia Częstotliwość, wybierając opcję „Zachowaj tylko pasujące rekordy”.
źródło