Knihovny fiona, rasterio, shapely
Programování v GIS 2
2024-03-18
Typy knihoven pro Python
- nativní knihovny - pouze Python kód
- kompilované knihovny - C, C++, Rust nebo i jiné jazyky
- nativní knihovny fungují automaticky všude, kompilované je nutné sestavit pro danou platformu a verzi Pythonu
fiona, rasterio, shapely
- kompilované knihovny
- postavené nad GDAL/OGR (ne nad balíkem
osgeo
)
- snaha aby pracovaly více jako Python knihovny a méně jako C++ kód
- o něco měně komplikované než přímé použití GDAL/OGR skrze
osgeo
, o něco horší spolupráce knihoven (zejména fiona a shapely)
fiona
- knihovna pro práci s vektorovými daty
- odstraňuje mnoho dílčích kroků, které jsou v
osgeo
- souřadnicové systémy a transformace s knihovnou
pyproj
- api není bohaté na práci s geometrií
- přístup např. ke struktuře vrstvy je velice jednoduchý
- nepodporuje vše co
osgeo
- dokumentace
shapely
- knihovna založená na GEOS
- zpracování geometrií
- při využití s fiona nutné konverze mezi jejich typy
- dokumentace
Konverze geometrií
- modul
shapely.geometry
- z fiona do shapely funkce
shape(feature.geometry)
- z shapely do fiona funkce
mapping()
rasterio
- knihovna pro práci s rastrovými daty
- platí pro ni v podstatě to samé co pro fiona
- výrazné propojení s
numpy
(knihovna pro dvou a vícerozměrné matic)
- oproti
osgeo
jednodušší přístupy
- dokumentace
- problém s typováním - nutné hodně se opírat o dokumentaci
GDAL/OGR fiona, rasterio, shapely
- GDAL/OGR má širší možnosti, ale práce je komplikovanější
- knihovny jsou zjednodušené a přístupnější
- nástroje
gdal.VectorTranslate()
, gdal.Warp()
, gdal.Translate()
atd. určitě využívat z osgeo
- základní modifikace či zpracování dat je v 90% případů snadnější z knihoven
- komplexní situace lze řešit přímo použítím
osgeo
- používat princip KISS (Keep it simple, stupid!) – začít s jednoduchou verzí, dokud funguje a upgradovat pouze pokud je to nutné