🧙🏼♂️ AFWizard
Úvod
AFWizard je nástroj určený na tvorbu, ladenie a aplikáciu filtrovacích pipeline pre LiDARové mračná bodov. Umožňuje kombinovať existujúce filtrovacie backendy, interaktívne nastavovať ich parametre a následne aplikovať rôzne filtre na rozdielne časti jedného datasetu.
V tejto kapitole je ukázaný pracovný postup, pri ktorom sa jedno mračno bodov rozdelí pomocou pripravenej priestorovej segmentácie na oblasti s rozdielnym charakterom terénu. Pre jednotlivé typy oblastí sa vytvoria samostatné filtrovacie pipeline a tie sa následne priradia príslušným segmentom.
Použitý pracovný postup:
- načítanie mračna bodov,
- odstránenie existujúcej klasifikácie,
- načítanie priestorovej segmentácie,
- vytvorenie vzorových subsetov pre jednotlivé typy povrchu,
- interaktívne ladenie filtrovacích pipeline,
- uloženie filtrov do knižnice,
- priradenie filtrov jednotlivým segmentom,
- spustenie výsledného spracovania pomocou AFWizard CLI.
Poznámka: Notebook pracuje s lokálnymi LAS/GeoJSON súbormi a s interaktívnymi prvkami AFWizard. Bunky preto spúšťaj postupne až po nastavení správnych ciest.
🗃️ Inštalácia AFWizard
Odporúčaným spôsobom inštalácie je samostatné prostredie conda.
Nasledujúce príkazy spusti v Anaconda Prompt:
Pre prácu v JupyterLab:
V tomto príklade sa používa lokálna inštalácia LAStools v adresári:
☁️ Vstupné dáta
Workflow používa:
- mračno bodov vo formáte LAS,
- priestorovú segmentáciu vo formáte GeoJSON.
Použité súbory:
Oba vstupy sú interpretované v CRS EPSG:8353.
Odporúčaná štruktúra:
projekt/
├── ntb_AFWizard.ipynb
├── segmentation.geojson
├── data/
│ ├── jtsk03_fixed_merged_lom_raztoka.las
│ ├── low_vegetation.las
│ ├── high_vegetation.las
│ └── quarry.las
└── filters/
├── low_vegetation.json
├── high_vegetation.json
└── quarry.jsonDôležité: Mračno bodov a segmentácia musia používať správny priestorový referenčný systém.
⚙️ Príprava pracovného prostredia
Import knižníc
Nastavenie cesty k LAStools
Nastavenie pracovných priečinkov
Priečinok filters použijeme pre JSON definície filtrov. Adresár data nastavíme ako dátový adresár AFWizard.
Predspracovanie mračna bodov
Načítanie datasetu
Odstránenie existujúcej klasifikácie
Priestorová segmentácia
Načítanie segmentácie
Vytvorenie vzorového subsetu
Dataset obmedzíme podľa pripravenej segmentácie. Tento krok sa podľa potreby opakuje pre jednotlivé typy povrchu.
Príklad uloženia subsetu pre vysokú vegetáciu:
V pôvodnom experimente boli pripravené tri vzorové datasety:
low_vegetation.las– nízka vegetácia,high_vegetation.las– vysoká vegetácia,quarry.las– lom.
Tip: Ladenie filtrov na menšom reprezentatívnom výreze je praktickejšie ako opakované testovanie na celom mračne bodov.
🧪 Tvorba filtrovacích pipeline
AFWizard poskytuje interaktívne rozhranie pipeline_tuning(). Výslednú pipeline následne uložíme do JSON súboru.
Nízka vegetácia
Vysoká vegetácia
Lom
Po dokončení tejto fázy obsahuje priečinok filters samostatné JSON definície filtrov pre jednotlivé typy oblastí.
🧩 Prepojenie filtrov a segmentov
Pridanie vlastnej knižnice filtrov
Výber pipeline z knižnice
Priradenie filtrov segmentom
Uloženie segmentácie s priradenými pipeline:
Poznámka: Uložený GeoJSON predstavuje prepojenie medzi priestorovou časťou datasetu a zvolenou filtrovacou pipeline.
🚀 Spustenie výsledného spracovania
Po pripravení datasetu, filtrov a segmentácie možno finálne spracovanie spustiť cez AFWizard CLI.
V Jupyter Notebooku použijeme ! pred shell príkazom.
Použité argumenty:
| Parameter | Význam |
|---|---|
--dataset |
vstupné mračno bodov |
--dataset-crs |
CRS vstupného datasetu |
--segmentation |
GeoJSON s priestorovou segmentáciou a priradenými filtrami |
--segmentation-crs |
CRS segmentácie |
--output-dir |
adresár pre výsledky spracovania |
--library |
lokálna knižnica filtrov |
--lastools-dir |
cesta k inštalácii LAStools |
📤 Výstupy a záver
Výsledkom workflow sú:
- vzorové LAS datasety použité pri ladení filtrov,
- JSON definície filtrovacích pipeline uložené v adresári
filters, - GeoJSON segmentácia s priradenými pipeline.
Samotné filtrovanie sa následne vykonáva nad kompletným datasetom pomocou AFWizard CLI.
Hlavnou výhodou postupu je možnosť priestorovo heterogénneho filtrovania – pre oblasti s rozdielnym charakterom možno vytvoriť samostatné pipeline a použiť ich iba tam, kde sú vhodné.