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.