Przejdź do treści
Wróć do bloga
AI Segmentation
QGIS
Poradnik

Mapowanie koron drzew w QGIS: 6 metod

Trzy panele tego samego parku: zwykłe zdjęcie lotnicze, raster NDVI z roślinnością zaznaczoną na czerwono oraz każda korona drzewa jako osobny kolorowy poligon.

Aby zmapować korony drzew w na podstawie zobrazowań wielospektralnych, oblicz NDVI w Raster > Raster Calculator…, ustaw próg za pomocą Reclassify by table, a następnie uruchom Raster > Conversion > Polygonize (raster to vector). Otrzymasz pokrycie, a nie pojedyncze drzewa. Pięć pozostałych metod obejmuje LiDAR, otwarte dane oraz przypadki, w których potrzebujesz jednego poligonu na każdą koronę.

Gdzie internet się myli

W tutorialach i wątkach na forach powtarzają się trzy odpowiedzi, a każda z nich zabiera całe popołudnie.

„Ustaw próg NDVI i masz drzewa.” NDVI oddziela zieleń od braku zieleni. Trawnik, pole pszenicy i dąb są zielone, więc wszystkie trzy trafiają do tej samej klasy. NDVI daje pokrycie roślinnością, a nazywanie go pokryciem koron to decyzja, której trzeba bronić.

„Uruchom model wysokości koron bezpośrednio z pliku LAS.” Powierzchnia gruntu pochodzi z punktów sklasyfikowanych jako Ground, a QGIS 3.44 nie ma algorytmu, który je klasyfikuje. W niesklasyfikowanej chmurze filtr nie zwróci niczego, a teren wyjdzie płaski.

„Zainstaluj Semi-Automatic Classification Plugin, najnowszą wersję.” Wydanie 9.0.4 wymaga QGIS 3.99, czyli linii QGIS 4. W QGIS 3.44 manager udostępnia wersję 8.5.0 z listopada 2024 roku, więc zanim obwinisz swoje próbki, sprawdź, którą wersję rzeczywiście otrzymałeś.

Krótka odpowiedź

Co maszMetodaKoszt
Zobrazowania wielospektralne z pasmem bliskiej podczerwieniMetoda 1, NDVI, a następnie poligonizacjaBezpłatnie, podstawowy QGIS
LiDAR albo DSM i DTMMetoda 2, model wysokości koronBezpłatnie, podstawowy QGIS
Zobrazowania i kilka klas do rozdzieleniaMetoda 3, klasyfikacja nadzorowanaBezpłatnie, jeden plugin
Duży obszar, dla którego wystarczy data z zeszłego rokuMetoda 4, otwarty zbiór danych o koronachBezpłatne pobranie
Zobrazowania RGB i karta NVIDIAMetoda 5, lokalny model segmentacjiBezpłatnie, trzeba znaleźć model
Zobrazowania RGB, brak karty i potrzeba wyznaczenia koronMetoda 6, chmurowy model segmentacjiDarmowy pakiet, potem subskrypcja

Zanim zaczniesz

Pracuj w projekcyjnym CRS. Każda metoda kończy się obliczeniem powierzchni, a powierzchnia w stopniach jest bezwartościowa.

Zdecyduj, czy potrzebujesz pokrycia, czy koron. Pokrycie to jedna powierzchnia, z której otrzymasz procent. Korony są policzalnymi obiektami, czyli tym, czego potrzebuje inwentaryzacja uliczna lub parkowa.

Metoda 1: próg NDVI

NDVI oddziela zieloną roślinność od dachów, dróg i wody. Otwórz Raster > Raster Calculator… i wpisz ("nir@1" - "red@1") / ("nir@1" + "red@1").

An NDVI raster over a French village in QGIS, vegetation bright and roofs dark, with the layer histogram beside it showing two peaks.
NDVI from a Sentinel-2 scene. The histogram has two peaks and the valley between them is your threshold. There is no universal number, so read your own scene.

Następnie uruchom Reclassify by table (native:reclassifybytable, Processing Toolbox, Raster analysis), z jednym wierszem powyżej progu i jednym poniżej, ustawiając typ danych wyjściowych na Byte. Spoligonizuj wynik.

Użyj, gdy: zobrazowanie ma pasmo bliskiej podczerwieni i chcesz uzyskać pokrycie.

Pomiń, gdy: drzewa trzeba odróżnić od trawnika lub upraw. NDVI tego nie potrafi, ponieważ wszystkie trzy są zielone.

Metoda 2: model wysokości koron z LiDAR

Wysokość to jedyny sygnał, który rzeczywiście oddziela drzewo od trawnika, a QGIS buduje obie powierzchnie bezpośrednio z pliku LAS lub LAZ za pomocą Export to raster (pdal:exportraster, Point Cloud Conversion). Ustaw Attribute na Z. Dla terenu dodaj wyrażenie filtra Classification == 2, czyli Ground w klasach ASPRS używanych przez QGIS. Dla powierzchni filtruj po ReturnNumber == 1.

A canopy height model in QGIS coloured from green at ground level to dark red at 25 metres, tree crowns standing out over flat grey ground.
DSM minus DTM over a park. Crowns stand out because they are tall, not because they are green, so lawns and gardens drop out on their own.

Odejmij jedną powierzchnię od drugiej w Raster > Raster Calculator… za pomocą "dsm@1" - "dtm@1" albo użyj grass:r.mapcalc.simple dla większych kafli. Przeklasyfikuj wynik na wysokości, którą specyfikacja uznaje za pokrycie koron, a następnie spoligonizuj. Wynik zawiera wysokość dla każdego piksela, czego nie daje żadna inna metoda na tej stronie.

Użyj, gdy: masz LiDAR albo krajową parę DSM i DTM.

Pomiń, gdy: punkty nie są sklasyfikowane. QGIS 3.44 nie ma algorytmu klasyfikacji gruntu, więc niesklasyfikowane punkty trzeba najpierw przetworzyć przez PDAL poza QGIS.

Metoda 3: klasyfikacja nadzorowana

Narysuj poligony treningowe dla drzewa, trawy, dachu i drogi, a następnie pozwól klasyfikatorowi oznaczyć każdy piksel i spoligonizuj klasę drzew. dzetsaka to plugin, który zainstalowałbym dzisiaj. Jest dostępny na licencji GPL, w wersji 5.0.11, działa z QGIS od 3.0 do 4.99 i oferuje jedenaście klasyfikatorów, w tym Random Forest i SVM.

Semi-Automatic Classification Plugin jest lepiej znany i obsługuje także zestawy pasm oraz preprocessing, ale najpierw sprawdź wersję. Wydanie 9.0.4 wymaga QGIS 3.99, czyli linii QGIS 4. W QGIS 3.44 otrzymasz wersję 8.5.0 z listopada 2024 roku.

Użyj, gdy: korony są jedną z kilku klas, które chcesz uzyskać z tej samej sceny.

Pomiń, gdy: interesują cię wyłącznie drzewa. Przygotowanie próbek treningowych zajmuje więcej czasu niż Metoda 1.

Metoda 4: otwarty zbiór danych o koronach

Ktoś mógł już zmapować twój obszar.

Copernicus Tree Cover Density loaded in QGIS over a European city, shaded from pale to dark green by percentage of tree cover.
Copernicus Tree Cover Density streamed into QGIS as a WMTS layer. Free, finished, and the wrong tool the moment you need this year's imagery.

Warto znać cztery. Mapa wysokości koron Meta i WRI jest globalna, od marca 2026 roku dostępna w wersji 2, z pikselami 1,2 m i średnim błędem bezwzględnym 3,0 m względem lotniczego LiDAR. Mapa ETH Zurich ma rozdzielczość 10 m dla roku 2020, powstała na podstawie Sentinel-2 i GEDI, na licencji CC BY 4.0.

Dwa pozostałe zbiory są regionalne lub historyczne. Layer Copernicus Tree Cover Density obejmuje Europę w rozdzielczości 10 m, co roku od 2018 do 2024, a jego pobranie wymaga EU Login. Hansen Global Forest Change ma rozdzielczość 30 m i zaczyna się w 2000 roku, więc nadaje się do analizy zmian w czasie.

Miasta publikują własne dane. Paryż udostępnia 219 432 drzewa jako punkty, a Melbourne 57 980 poligonów koron z 2021 roku, w obu przypadkach jako adres GeoJSON, który wklejasz do QGIS.

Wszystkie cztery globalne rastry obsługują żądania zakresu, więc zamiast pobierać cały plik, strumieniuj kafel za pomocą /vsicurl/. Copernicus udostępnia WMTS pod adresem https://land.copernicus.eu/cdse/tcd_europe_10m_yearly, gdzie rok ustawiasz ręcznie. Serwis reklamuje wszystkie daty sięgające 1984 roku, ale dla prawie żadnej nie ma danych.

Użyj, gdy: obszar jest duży, a data pozyskania nie musi być twoja.

Pomiń, gdy: sfotografowałeś teren w zeszłym miesiącu albo potrzebujesz koron. Większość tych zbiorów to rastry procentowego pokrycia, a nie policzalne obiekty.

Metoda 5: lokalny model segmentacji

Deepness, Geo-SAM i samgeo uruchamiają modele segmentacji na twoim komputerze. Nic go nie opuszcza i nic nie jest naliczane.

Użyj, gdy: zobrazowania nie mogą opuścić twojego komputera.

Pomiń, gdy: nie masz karty NVIDIA albo nie chcesz szukać modelu, pobierać wag i budować środowiska Python.

Metoda 6: chmurowy model segmentacji

Model segmentacji nauczył się, jak wygląda korona, więc dzieli drzewostan na policzalne obiekty tam, gdzie próg zwróciłby jedną zwartą powierzchnię. Budujemy jedno z takich narzędzi, AI Segmentation. Ta sekcja dotyczy naszego rozwiązania.

Narysuj strefę na zobrazowaniu już otwartym w QGIS i wpisz jedno słowo. Poligony trafią do CRS projektu, a każdy otrzyma powierzchnię i wynik pewności. Wpisz tree, aby uzyskać jeden poligon na koronę, albo tree canopy, aby otrzymać pokrycie jako powierzchnię.

A Dutch village from the air where every tree crown, in gardens and along the streets, is filled with its own colour as a separate polygon.
893 crowns from one run over a Dutch village, each its own polygon. Counted off the layer, not estimated.

Najlepsza do: jednego poligonu na koronę w zobrazowaniach RGB, na komputerze bez GPU.

Cena: bezpłatnie dla 3 km² gruntu miesięcznie oraz 50 obiektów cloud Semi-Auto, bez karty. Pro kosztuje 39 euro miesięcznie bez VAT i obejmuje 200 km² oraz 500 obiektów.

Działa na: QGIS 3.22 i nowszym, Windows, macOS lub Linux. Model działa na naszych serwerach w Unii Europejskiej.

Instalacja: manager pluginów, a następnie email do logowania. Bez pakietów i bez wag.

Gdzie wygrywa: proste słowo daje dobre wyniki. W ciągu 90 dni rzeczywistych uruchomień tree zwróciło pusty wynik dla 10,5 procent kafli, a orchard dla 47,3 procent z 716 kafli, więc plugin podmienia drugie słowo na pierwsze, zanim cokolwiek wydasz.

Gdzie nie wystarcza: zwarty drzewostan nie ma krawędzi koron, które można wykryć, więc uruchomienie tree zwraca jedną zwartą powierzchnię zamiast poligonu na każdy pień. Użyj tam tree canopy i zaakceptuj pokrycie. Oba tryby cloud wysyłają zobrazowania na nasze serwery, a tylko Semi-Auto uruchomione na twoim komputerze tego nie robi.

Sześć metod obok siebie

Czego potrzebujeszMetoda
Pokrycie z własnych zobrazowań wielospektralnychMetoda 1
Wysokość koron albo oddzielenie drzew od trawyMetoda 2
Korony jako jedna z kilku klasMetoda 3
Duży obszar, szybko i bez kosztówMetoda 4
Korony, bez opuszczania komputera przez daneMetoda 5
Korony w zobrazowaniach RGB, bez GPUMetoda 6

Co zapamiętać

Zanim wybierzesz metodę, zdecyduj między pokryciem a koronami, ponieważ chodzi o rezultat, którego potrzebujesz, a nie o rodzaj zobrazowania.

Wysokość wygrywa z kolorem zawsze, gdy możesz ją uzyskać, więc model wysokości koron z LiDAR jest najlepszym wyborem wszędzie tam, gdzie dostępny jest LiDAR.

NDVI odczytuje trawnik, uprawę i dąb jako to samo, więc sam próg nigdy nie da ci drzew.

Zwarty drzewostan nie ma krawędzi koron, które można wykryć, więc każda metoda na tej stronie zwróci tam pokrycie, a żadna nie zwróci liczby pni.

Dla procentowego pokrycia koron w całej Europie layer Copernicus jest bezpłatny i już gotowy, więc uruchamianie modelu na tym obszarze oznacza podwójną opłatę za tę samą odpowiedź.

Try it free in QGIS, no card needed

Pytania, które zadają użytkownicy

Czy QGIS może zmapować korony drzew bez pluginu?

Tak, dzięki Metodom 1, 2 i 4, które korzystają z podstawowego QGIS oraz pobranego zbioru danych. Otrzymasz pokrycie jako poligony, nigdy pojedyncze korony.

Jeden poligon na drzewo czy jeden na całe pokrycie koron?

Progowanie NDVI lub modelu wysokości daje pokrycie. Tylko model segmentacji dzieli zwarty drzewostan na policzalne korony, a w Metodzie 6 wpisywane słowo decyduje, który z tych dwóch wyników otrzymasz.

Jak obliczyć procent pokrycia koron?

Każdy poligon ma własną powierzchnię, więc zsumuj kolumnę powierzchni i podziel ją przez zmierzoną powierzchnię. To jedno obliczenie w polu, na geometrii, którą możesz otworzyć i sprawdzić.

Co jest dokładniejsze: NDVI czy model wysokości z LiDAR?

Model wysokości i różnica nie jest mała. NDVI odczytuje trawnik i dąb jako to samo, podczas gdy model wysokości koron rozdziela je różnicą kilku metrów.

Czy coś z tego jest bezpłatne?

Metody od 1 do 5 nic nie kosztują poza własnymi danymi i kartą graficzną w przypadku Metody 5. Metoda 6 daje 3 km² miesięcznie bezpłatnie, a następnie kosztuje 39 euro miesięcznie bez VAT.

Przewodnik raster to vector pokazuje krok po kroku poligonizację i czyszczenie, którymi kończy się każda metoda opisana tutaj, a wpis o SAM w QGIS porównuje pluginy uruchamiające modele segmentacji. Centrum QGIS AI łączy oba tematy.