Wygładzanie elementów rastrowych w wielokąt

10

Mam dane rastrowe reprezentujące obszary zurbanizowane, które chciałbym prześledzić i przekształcić w wielokąt.

Raster

Korzystając z narzędzia ArcMap Raster to Polygon, jestem w stanie uzyskać coś podobnego.

Bez uproszczenia:

Bez uproszczenia

Uproszczony:

Uproszczony

Można jednak zauważyć, że istnieje wiele ukośnych linii (dróg), które tworzą łańcuchy wielokątów, które mają wspólny narożnik.

Zwiększa to znacznie moją liczbę wielokątów - te zestawy danych rastrowych są przetwarzane na poziomie stanu. Czy istnieje narzędzie Łuk lub GeoTools do wygładzania tych linii i tworzenia mniejszej liczby wielokątów? Jest w porządku, jeśli wynik traci pewną precyzję. W końcu szukam czegoś podobnego do tego, co otrzymuję z uproszczonym wielokątem, tylko z połączonymi sąsiednimi wielokątami.

Eric W.
źródło
1
Jeśli możesz całkowicie stracić drogi - lub połączyć je z sąsiednimi funkcjami - możesz być zainteresowany czyszczeniem rastra przed konwersją: patrz gis.stackexchange.com/questions/41064 . Ale to nasuwa ważniejsze pytanie: po co w ogóle konwertować z rastra na wektor? Czy to naprawdę konieczne?
whuber
Czy próbowałeś uruchomić Simplify Polygon lub Generalizuj po konwersji na wielokąty? Wprawdzie rysowanie linii wygląda już dość prosto, ale nigdy nie wiadomo, co mogą zrobić te narzędzia.
Baltok
Nie mogę całkowicie stracić dróg, chociaż ich dokładny kształt nie jest ważny. Używam tych wielokątów w połączeniu z danymi spisu powszechnego do umieszczania struktur, dzięki czemu struktury będą umieszczane w obszarach zurbanizowanych lub w pobliżu dróg zamiast na środku lasu. Zobacz inne moje pytanie ( gis.stackexchange.com/questions/38999/... ), aby uzyskać szczegółowe informacje.
Eric W.,
Niestety nie mam licencji na Upraszczanie wielokąta ani Generalizowanie.
Eric W.
Umieszczanie struktur - w zależności od zastosowanych kryteriów - może być łatwiejsze w przypadku danych rastrowych niż danych wektorowych. Może mógłbyś powiedzieć coś więcej o procesie umieszczania struktury?
whuber

Odpowiedzi:

4

Twoje pytanie jest częste (np. To pytanie ), a odpowiedź zależy w dużej mierze od dostępnych narzędzi i stopnia, w jakim możesz zaakceptować utratę precyzji i uogólnienia.

Jednym prostym podejściem jest buforowanie wielokątów, a następnie buforowanie wyniku o tę samą lub podobną ilość. Musisz ocenić, ile chcesz buforować, aby uniknąć łączenia wielokątów, które powinny pozostać osobne. Zmniejszysz liczbę wielokątów i „wygląd” rastrowy swoich danych, ale kosztem zwiększonej liczby wierzchołków.

Alternatywnie możesz spojrzeć na wstępne przetwarzanie rastra. Należy zachować ostrożność, ponieważ nie robisz czegoś, co unieważnia jakiekolwiek statystyki, ale wygląda na to, że chcesz po prostu wyodrębnić funkcje. Znowu zależy to od twojej licencji, ale możesz zmienić rozdzielczość rastra, a następnie użyć skubania lub czyszczenia zgodnie z moimi sugestiami w poprzednim wątku cytowanym powyżej. Brzmi to uzasadnione dla twojego przypadku użycia.

Jeśli nie masz dostępu do Spatial Analyst i nie możesz zainstalować QGIS, GDAL lub podobnego FOSS GIS, wówczas sztuczka buforowania bufora działa całkiem dobrze.

MappaGnosis
źródło
Wczoraj odkryłem sztuczkę polegającą na buforowaniu i konwersji. Mogę rozszerzyć raster o 1, a następnie uruchomić raster-to-poly z uproszczeniem i uzyskać całkiem przyzwoite przybliżenie funkcji. Jeszcze lepiej jest, jeśli najpierw przeskaluję raster do wyższej rozdzielczości, ale zwiększy to kwadratowo moją pamięć dla już dużego zbioru danych, nie wspominając o tym, że zajmuje to trochę czasu. Myślę, że rozwiń-1-i-uprość powinny wystarczyć do moich celów.
Eric W.,
Jeśli chcesz skorzystać z metody resample, pamiętaj, że tymczasowo potrzebujesz tylko ponownie próbkowanego rastra. Jeśli ustawisz proces w narzędziu ModelBuilder i oznaczysz rastrowany próbkowany jako „pośredni”, Arc powinien później wyczyścić i usunąć go automatycznie (oszczędza to konieczności ręcznego wykonywania tego zadania i możesz ponownie użyć swojego narzędzia).
MappaGnosis