Grupowanie przylegających do siebie narożników przylegających do siebie za pomocą ArcGIS Desktop?


12

Korzystając z ArcGIS 10, mam klasę elementów, którą przekonwertowałem z rastra (GRID) (narzędzie raster do wielokąta).

  • Jest ok. 180 000 wielokątów.
  • Tabela atrybutów zawiera pole [grid_code], które muszę zachować.
  • Jeśli jeden lub więcej wielokątów sąsiaduje z narożnikami dotykającymi ORAZ mają one tę samą wartość [kod_katku], to chciałbym je zgrupować (zasadniczo rozpuścić) w jeden wielokąt (rekord).
  • Następnie muszę obliczyć pole zgrupowanego wielokąta.

Korzystając z narzędzia Wybierz według lokalizacji, jestem w stanie z powodzeniem wybrać wielokąty, które muszę zgrupować, ale w jaki sposób mogę je przekonwertować na JEDEN wielokąt, zachowując jednocześnie [grid_code]?


3
Czy zastanawiałeś się nad uruchomieniem polecenia Region Group przed przekształceniem rastrów w wielokąty?
Kirk Kuykendall

1
Kirk ma absolutną rację: chcesz wykonać te obliczenia z oryginalną siatką, gdzie będzie ona szybka i wydajna, a nie w formacie wektora wyjściowego, gdzie będzie powolna i bolesna.
whuber

2
Dziękuję Kirk i Billowi. Tak, Region Group to właściwe narzędzie. Niestety użycie Region Group w moim dużym zestawie danych powoduje poziome paski, znany błąd analizatora przestrzennego. Te paski zostały udokumentowane już w grudniu 2009 r., Ale teraz, przy użyciu ArcGIS 10, problemy te nadal występują. Możesz przeczytać o tym wszystko tutaj: [link] ( forums.arcgis.com/threads/… ) Moje zadanie polega na zapisaniu danych wyjściowych z narzędzia Region Group w starym, dobrym stylu ArcInfo Workspace jako GRID. To wydaje się naprawiać!
mjn

Bez tego obejścia i biorąc pod uwagę błąd RegionGroup, musiałbyś wykonać obliczenie odmiany ogniskowej 2x2, aby zidentyfikować potencjalne narożniki (odmiana musi wynosić 3 lub 4), a następnie użyć ich do utworzenia tabeli potencjalnych narożników do narożników relacje narożników między wielokątami, które mogłyby (znacznie) usprawnić wyszukiwanie wielokątów dotykających narożników. Co za ból ...
kurwa

Pamiętaj, że jeśli wielokąty dzielą tylko jeden wierzchołek, wprowadzisz samo-przecięcie, a tym samym unieważnisz geometrię.
Jim B

Odpowiedzi:


2

Za pomocą narzędzia Dissolve można rozpuszczać ciągłe wielokąty o wspólnych wartościach id .

  1. Wybierz pole Grid code jako „Dissolve_Field (opcjonalnie)”
  2. W dolnej części formularza narzędzia zaznacz pole wyboru „Unsplit lines (opcjonalne)”.
  3. Utwórz pole obszaru
  4. Kliknij pole obszaru prawym przyciskiem myszy i wybierz Oblicz geometrię

2

To dużo wielokątów. Najpierw znajdę rozwiązanie w formacie rastrowym, gdy topologia jest łatwiejsza w obsłudze. Ale jeśli nie chcesz pisać kodu, możesz:

  1. Wybierz dany kod siatki.
  2. buforuj ten kod siatki bardzo małą ilością (opcja scalonych buforów)
  3. buforuj wynik negatywnie przez to samo bardzo małe.

Nastąpi niewielkie zaokrąglenie w geometrii.

Aby utworzyć pojedynczą warstwę, należy przeciąć powstałe warstwy kodu siatki i wyczyścić, aby usunąć wielokąty taśmy.


-1

Osobiście pisałbym kod, który przechodził przez wielokąty, i sprawdzałem na 4 rogach wielokąta, który jest taki sam jak każdy inny narożnik wielokąta, i rekurencyjnie go nazywam - wypełnienie powodzi jako takie.

Robię to z siatkami netCDF, aby stworzyć odpowiednio podobne wielokąty.

Inną opcją byłoby progamatyczne zrobienie tego przy rootowaniu z siatką.


Komentarze zostały usunięte, gdy stały się bezcelowe sprzeczki i / lub hałas, a cały zestaw jest nie do ocalenia.
Mapperz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.