Grupuj funkcje wielokątów, aby pasowały do ​​zestawu specyfikacji

13

Mam dwa różne zestawy elementów wielokąta (398 spisów ludności i 80 kodów pocztowych), z których każdy łączy się w większą funkcję (hrabstwo USA). Chociaż obszary spisu są mniejsze niż kody pocztowe, nie zwijają się (tj. Zagnieżdżają się w sobie) kody pocztowe.

Moje pytanie - czy istnieje metoda / narzędzie wykorzystujące ArcGIS lub QGIS (lub dowolne oprogramowanie) do osobnego grupowania 398 traktów spisowych i 80 kodów pocztowych w celu utworzenia 10 elementów wielokąta, przy jednoczesnym zminimalizowaniu różnicy między dwoma wynikowymi zestawami 10 elementów wielokąta?

Aby to wyjaśnić, chcę pogrupować 398 traktatów -> 10 funkcji, a następnie osobno pogrupować 80 kodów pocztowych -> 10 funkcji, dzięki czemu mam dwa różne zestawy po 10 funkcji. Chcę zoptymalizować to grupowanie, aby nakładka między tymi dwoma zestawami była zmaksymalizowana (tj. Zminimalizować niedopasowanie).

Oto obraz pokazujący, co mam nadzieję osiągnąć:

Eli Kern
źródło
Czy w każdym razie możesz podać przykład (obraz, rysunek itp.) Tego, jak chciałbyś, aby wyglądał efekt końcowy. Mam problem z wizualizacją.
landocalrissian
Czy chcesz też mieć jakieś kryteria, takie jak „wielokąty powinny być mniej więcej tego samego rozmiaru”? Mogę sobie wyobrazić tani sposób, aby to zrobić, aby znaleźć 9 najmniejszych kodów pocztowych, które z grubsza pasują do obszarów spisu, i nazwać dużą resztę dziesiątym wielokątem.
łyko
Dziękuję łyko za komentarz. Rzeczywiście chciałbym ustalić różne kryteria, ale nie chciałem komplikować pytań. Na przykład byłoby miło ustalić kryteria dla minimalnej populacji w każdym z 10 wielokątów. Chciałbym stworzyć narzędzie / metodę, która mogłaby wygenerować listę możliwych rozwiązań dla grupowania CT i ZIP w te 10 grup, przy jednoczesnym spełnieniu pewnych parametrów. Następnie mógłbym ręcznie przejrzeć rozwiązania pod kątem cech, które mogą nie być w stanie zautomatyzować (np. Nie przekraczać granic miasta).
Eli Kern,
Zrozumiałem, że potrzebujesz dwóch identycznych warstw (ZIP i Tract). Powiedz, że chcesz, aby kształt Tractów był podobny do ZIP, a następnie pozbądź się geometrii Tractów i utwórz warstwę identyczną z ZIP i przenieś atrybut Tractów do tej nowo utworzonej warstwy Tractów - wtedy warstwa ZIP i Tractów będzie wyglądać tak samo. Aby to zrobić Przekształć warstwę Traktatów w warstwę Punktową i uruchom aktualizację lub analizę tożsamości (sugeruję, ponieważ nie jest to destrukcyjne). Teraz mamy warstwę ZIP i traktatów o tej samej geometrii .. ale innym atrybucie (tj.
Traktach
Nie znam żadnego łatwego sposobu (np. Istniejące narzędzie) do tego zadania. I wątpię, aby utworzenie takiego było szybsze niż ręczne wprowadzenie danych o tym rozmiarze.
Jan Šimbera

Odpowiedzi:

1

Ponieważ nie ma jasnego ani jednolitego sposobu definiowania powstałych wielokątów, myślę, że musisz je najpierw utworzyć, jak tylko uznasz to za stosowne - używając rozpuszczania na dowolnym atrybucie (istniejącym lub pochodnym) na warstwie spisu lub kodów pocztowych.

Po uzyskaniu powstałych wielokątów, nałóż na nie (przecinaj) każdą z warstw, wykonaj kolejne rozpuszczenie i oblicz swoje statystyki na innych atrybutach.

Matej
źródło
0

Jeśli posiadasz informacje o kodach pocztowych i wyższej hierarchii w bazie danych, możesz to zrobić, łącząc wartości kolumn razem i otrzymując nowy plik kształtów.

Ashish Kumar
źródło
0

Wydaje mi się, że chcesz zgrupować obszary spisu ludności w 10 klastrów, z tym, że trakty w każdym klastrze sąsiadują ze sobą. W takim przypadku można użyć biblioteki Python klastraPy, która implementuje kilka różnych algorytmów dla klastrowania przestrzennie ograniczonego.

Behrouz Babaki
źródło