Jak rozpuścić zachodzące na siebie wielokąty?


10

Mam pytanie dotyczące rozpuszczania cech wielokąta w ArcGIS 9.3. Mam tylko licencję na gołe kości i bardzo podstawową wiedzę na temat VB.

Mam duży plik kształtu z około 4500 wielokątów i chcę wiedzieć, czy w ogóle można rozwiązać te nakładające się? Zasadniczo chcę przekształcić tę warstwę w plik kształtu, który zawiera oddzielne obszary, więc tam, gdzie jeden wielokąt jest sam, pozostanie, ale tam, gdzie wiele wielokątów zachodzi na siebie, rozpuszczają się w 1, a każdy oddzielny obszar ma swój własny zestaw atrybutów. Plik kształtu zmienia się dość często i do tej pory przeglądałem je wszystkie i ręcznie rozpuszczałem nakładające się obszary za pomocą narzędzia edytora, ale jestem pewien, że istnieje o wiele szybszy sposób!

Wgląd w to, jak można to osiągnąć?


Próbowałem użyć narzędzia rozpuszczania i dołączyłem do eksportowanej tabeli atrybutów, a to działa idealnie! Myślałem, że narzędzie rozpuszczania działa tylko na atrybuty, a nie na lokalizację przestrzenną, więc warto to wiedzieć. Również kod ModelBuilder to


Świetne odpowiedzi. Brad Nesom, jak uzyskać oryginalną wartość tabeli atrybutów do rozpuszczonego pliku kształtu?
Gunnar

Potrzebuję tego, co zrobiłeś, ale kiedy uruchamiam narzędzie rozpuszczania, po prostu łączę wszystkie funkcje, które ma w moim kształcie, więc nie działa. Jak sprawiłeś, żeby działało?
Federico Gómez

Odpowiedzi:


13

Być może czegoś mi brakuje, ale czy podstawowe narzędzie Dissolve (gdzieś w zestawie narzędzi do zarządzania danymi) nie zrobi tego za Ciebie? Nie trzeba mieszać się z żadnym kodem, jak w odpowiedzi grafiki21. Po prostu otwórz narzędzie rozpuszczania, wybierz klasę elementów, nie zaznaczaj żadnego pola do rozpuszczenia, a następnie odznacz „Utwórz wieloczęściowe trucizny”, w przeciwnym razie wszystkie twoje poli staną się jednym dużym wieloczęściowym poli.

Nie mam teraz Arc przede mną, ale jeśli poprawnie czytam twoje pytanie, zrobiłem to przed użyciem tej metody. Jedyny problem dotyczy tutaj atrybutów w tabeli. Znasz dane, więc musisz wybrać sposób połączenia każdego pola w części Pola statystyczne.

Jeśli ten proces jest wykonywany niezwykle często lub chcesz, aby był wykonywany automatycznie, zrób to za pomocą narzędzia do budowania modeli i wyeksportuj go do skryptu, ale wypełnienie tego narzędzia powinno zająć 10 sekund.


14

@Tom Parker - MWrenn jest poprawny.
Masz możliwość wyboru atrybutu do rozpuszczenia. (Spowoduje to rozpuszczenie atrybutu) lub brak atrybutu (spowoduje rozpuszczenie przestrzenne).

wybierz statystyki i wszelkie atrybuty, które chcesz przenieść. (to nie będzie działać tak, jak chcesz).

opcje

Przed wykonaniem rozpuszczenia. utwórz nowe pole i oblicz w nim FID.
Następnie wyeksportuj plik dbf swoich atrybutów i możesz (nieco później połączyć je ponownie z wielokątami).

Jeśli potrzebujesz pomocy, daj mi znać, a ja opublikuję więcej zrzutów ekranu lub znajdę pomoc w centrum zasobów arcgis.com.

Jeśli zauważysz na poniższym zrzucie ekranu, nazwa jest taka sama we wszystkich wielokątach (9.3.1 nie wydaje się prawidłowo rozpuszczać z arcmap). Wypróbuj z arccatalog.

po rozpuszczeniu

Może ktoś inny będzie miał lepszą metodę.

Jedynym innym sposobem, jaki mogę wymyślić, jest wybranie według lokalizacji (przecinające się wielokąty).
Wyeksportuj je do osobnego pliku, a następnie rozpuść.
Następnie po rozpuszczeniu każdego pliku możesz użyć darmowych warstw scalania (w et-geo-wizards)


4

Możesz utworzyć model w programie Model Builder i wyeksportować skrypt, a następnie skopiować i wkleić ten skrypt do UIButtonControl w ArcMap vba. Zobacz przykładowy skrypt poniżej.

Private Sub Dissolve_Click()

' Create the Geoprocessor object
set gp = CreateObject("esriGeoprocessing.GPDispatch.1")

' Load required toolboxes...
gp.AddToolbox "C:/Progra~1/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx"

' Local variables...

Dim test_shp as string

test_shp = "C:\Temp\test.shp"
Output_Feature_Class = "C:\Temp\test_Dissolve.shp"

' Process: Dissolve...
gp.Dissolve_management test_shp, Output_Feature_Class, "", "", 
  "MULTI_PART", "DISSOLVE_LINES"

End Sub
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.