Dzielenie nieregularnego wielokąta na równe obszary za pomocą QGIS?

10

Jestem geodetą i używam QGIS do prowadzenia rejestrów badań gruntów w projektach cywilnych i stale otrzymuję wymaganą powierzchnię lub liczbę partii testowych. Zastanawiam się, czy mają one często nieregularny kształt.

Czy istnieje wtyczka / rozwiązanie do wycinania warstwy zawierającej nieregularne wielokąty na równe obszary lub liczbę partii o określonym obszarze, przy czym wynikiem jest jak najwięcej partii na podstawie podanego obszaru?

Stephen Donaldson
źródło
Niektóre z opublikowanych wcześniej rozwiązań ArcGIS mogą być tutaj pomocne. W szczególności opublikowałem algorytm niezależny od oprogramowania .
whuber

Odpowiedzi:

5

Najprostszy sposób:

  • Otwórz QGIS i pobierz rozszerzenie mmqgis poprzez downloader wtyczek
  • Załaduj kształty i ustaw ich projekcję jako projekt CRS (prawy przycisk myszy)
  • Idź do mmqgis - utwórz - utwórz warstwę siatki
  • Zdefiniuj siatkę z wystarczającymi odstępami dla swoich wielokątów. Oprócz prostokątów można również definiować sześciokąty i takie tam
  • Teraz wykonaj prosty klip z funkcją w menu wektorowym, aby uzyskać równomiernie rozmieszczone części wielokątów. (przytnij wygenerowaną siatkę wielokątami). Rozwiązuje to coś takiegowprowadź opis zdjęcia tutaj
  • Teraz możesz dołączyć atrybuty starego kształtu i nowego, aby zachować tabelę atrybutów. Można również przeprowadzić połączenie zamiast klipu, aby zachować atrybuty, ale może to wymagać dodatkowej obróbki kształtu w zależności od struktury powierzchni.
Kulik
źródło
1
Ach, właśnie zauważyłem, że to rozwiązanie nie rozwiązuje problemu w równo rozmieszczonych obszarach z powodu obcinania. Sry Być może może to być podstawa nowego skryptu, jeśli weźmiesz pełny prostokąt w jądrze wielokątów.
Curlew,
2

istnieje kilka sposobów podziału plików kształtów za pomocą narzędzi typu open source. ale nigdy nie próbowałem podzielić ich równych części, gdy pliki wejściowe są nieregularnym wielokątem. nadal chcesz spróbować, możesz wypróbować następujące sposoby.

  1. shp2tile - może dzielić równe części.

  2. możesz przeczytać to pytanie Jak podzielić wektor na równe mniejsze części w QGIS lub podobnym?

  3. możesz to osiągnąć używając ogr2ogr z jakimś zapytaniem sql i dla pętli.

     ogr2ogr newshape_1.shp input.shp -sql "SELECT * FROM MyShape WHERE size = 100"
    
Aragonia
źródło