Dlaczego GRASS eliminuje wielokąty podczas używania v. Generalizacji?

9

Stoję przed dylematem, próbując użyć v.generalize w celu uproszczenia wielokątów, które pod względem wielkości i struktury są podobne do hrabstw i stanów USA. Często tracę wielokąty ze zbioru danych po uruchomieniu na nich metody uproszczenia lub wygładzenia. Martwi mnie to, że takie zachowanie nie wydaje się być spójne. W niektórych przypadkach ten sam zestaw poleceń zastosowanych do różnych zestawów danych powoduje zupełnie inne wyniki. W rezultacie nie jestem w stanie opracować powtarzalnego przepływu pracy i niechętnie zaczynam szukać innych narzędzi upraszczających, które chronią topololgy. Oto przykład:

# LOAD AND CLEAN
v.in.ogr dsn=counties.shp output=county
v.build.polylines input=county output=county_polylines
v.clean input=county_polylines output=county_clean tool=bpol,rmdupl type=boundary

# SMOOTH AND GENERALIZE
v.generalize input=county_clean output=county_smooth method=sliding_averaging look_ahead=7 slide=1
v.generalize input=county_smooth output=county_general method=douglas threshold=.005

Każdy krok v.generalizuj powoduje znikanie niektórych wielokątów. Chciałbym zrozumieć, dlaczego tak się dzieje. Czy to z powodu ładowania funkcji do niewystarczającej pamięci? Czy moje parametry są „wystarczająco ścisłe”, aby wykluczyć obiekty, ponieważ spełniają one kryteria geometryczne? (Zauważ, że tracę niektóre bardzo duże funkcje.) Czy istnieje problem z topologią upuszczonych funkcji, który powoduje ich usunięcie? W związku z tym ostatnim pytaniem zakładam, że build.polilines i czyste operacje, które robię na początku, powinny się tym zająć, ale nie jestem do końca pewien i nie mogę znaleźć dobrych instrukcji, które by to rozwiązały. Czy są jakieś?

Doceń wszelkie spostrzeżenia, jakie mogą dać ludzie, szczególnie te oparte na osobistym doświadczeniu z narzędziem v.generalize.

zrozumiałem

lagerratrobe
źródło
Wygląda na to, że twoje dane mogą być w całości. co wystarczyłoby do utraty danych z progiem 0,005. czy możesz sprawdzić, czy używasz płaskiego cs?
Brad Nesom 10.10.11
Zastanawiałem się nad tym i przed uruchomieniem powyższego rzuciłem rzut oka na projekcję równego obszaru Albersa. Oto parametry projekcji: USER: 100002 (+ proj = aea + lat_1 = 20 + lat_2 = -23 + lat_0 = 0 + lon_0 = 25 + x_0 = 0 + y_0 = 0 + ellps = WGS84 + jednostki = m + no_defs) . Nadal mam ten sam problem.
lagerratrobe
Zastanawiam się, dlaczego zamieniasz wielokąty na polilinie. Czy istnieje konkretny powód, dla którego nie upraszczasz bezpośrednio wielokątów?
podmroku
Ok, wyciągnąłem część v.build.polilines, więc „county_clean” jest teraz warstwą wielokątów. Wciąż tracę wiele obszarów. Początkowo myślałem, że może to ułatwić uproszczenie, ale ponieważ „bpol” w v.clean również łamie wielokąty, może to nie ma znaczenia.
lagerratrobe
1
tylko głupie pytanie. Czy na pewno tracisz dane przy użyciu v. Generalizacji, a nie v. Czyszczenia ?
simo

Odpowiedzi:

4

Odpowiedź od zespołu programistów GRASS.

„Zniknięcie wielokątów [w wer. 6.4.1] nastąpiło, ponieważ wygładzone granice naruszające topologię wektorową zostały usunięte, a następnie wszystkie granice, które były topologicznie niepoprawne. Granice są teraz [w 6.4.2] tylko wygładzone / uproszczone, jeśli modyfikacja nie naruszać topologię wektorów. ”

lagerratrobe
źródło