Poszukujesz strategii uogólnienia do tworzenia konturów w PostGIS?

22

Mam zestaw danych o budowaniu śladów wektorowych z zestawu danych rastrowych. Zestaw danych jest obecnie tylko wektorową reprezentacją danych rastrowych. Chciałbym, aby zbiór danych wielokątów zawierał tylko wierzchołki w rogach budynku. Próbowałem użyć polecenia Uprość w PostGIS z ograniczonym powodzeniem.

Czy jest lepszy sposób?

Matthew Snape
źródło

Odpowiedzi:

17

Istnieje wiele algorytmów poświęconych uproszczeniom budynków. Możesz zajrzeć na tę stronę w celu zapoznania się z nią. Zobacz także to pytanie . Możesz użyć:

  • Uproszczenie konturu budynku: polega na rekurencyjnym usuwaniu zbyt krótkich krawędzi konturu i wydłużaniu sąsiednich krawędzi. Przykład:

alternatywny tekst

  • Algorytm najmniejszego otaczającego prostokąta: polega on na zastąpieniu geometrii budynku najmniejszym otaczającym prostokątem. Ten prostokąt można również przeskalować do początkowego obszaru budynku. Przykład:

alternatywny tekst

  • Algorytm kwadratu: polega na zastosowaniu lekkiego obrotu krawędzi, aby rogi były idealnie wyrównane. Przykład:

alternatywny tekst

Te transformacje mogą wystarczyć dla Twoich potrzeb. Ich połączenie może być interesujące.

Jestem prawie w 100% pewien, że żaden z tych algorytmów nie jest zaimplementowany w PostGIS. Niektóre są implementowane w rozwijanej przeze mnie bibliotece Java Opencarto . Daj mi znać, jeśli chcesz to przetestować!

Julien
źródło
1
Czy możesz krótko wyjaśnić, do jakich algorytmów się odwołujesz w Opencarto dla wspomnianego „Uproszczenia obrysu budynku”. Nie mogłem znaleźć bezpośrednich informacji na wiki lub w kodzie w Opencarto.
benjist
Jest to „ShortEdgesDeletion”. Można go znaleźć na stronie github: github.com/jgaffuri/OpenCarto/blob/master/src/main/java/org/…
julien
3

Coś takiego może załatwić sprawę:

„Jeśli zbuforujemy dużą ilość, a następnie odwrócimy bufor o tę samą ilość, otrzymamy coś, co ma podobny kształt do oryginału, ale bez marszczących się kawałków”.

http://blog.opengeo.org/2010/11/22/removing-complexities/

LR1234567
źródło
to ciekawe podejście i wydaje się stosunkowo skuteczne. Dzięki za wskaźnik, będę mógł go użyć. Twoja odpowiedź byłaby lepsza, gdyby zawierała proste zdanie zawierające odniesienie do podstawowej idei i nie było tylko linkiem.
matt wilkie