Knihovna Rasterio¶
Knihovna Rasterio je opět dílo zejména Seana Gilliese (podobně jako Fiona či Shapely), tentokrát v rámci jeho působení ve firmě MapBox. Rasterio je knihovna pro práci s rastrovými geografickými datovými sadami. Na pozadí Rasterio používá spolehlivou knihovnu GDAL.
Rasterio pracuje s objekty knihovny NumPy (podobně jako dříve zmíněná Fiona pracuje s objekty JSON). Autor tvrdí, že Rasterio se vyslovuje [raw-STEER-ee-oh] a měla by práci s rastrovými daty udělat více zábavnou a produktivnější.
Vstupní data¶
Pro vstupní data použijeme dataset stažený ze stránky Earth Explorer, která zpřístupňuje data ze satelitů programu Sentinel.
data/B01-2018-05-06.tiff
data/B02-2018-05-06.tiff
data/B03-2018-05-06.tiff
data/B04-2018-05-06.tiff
data/B05-2018-05-06.tiff
data/B06-2018-05-06.tiff
data/B07-2018-05-06.tiff
data/B08-2018-05-06.tiff
data/B09-2018-05-06.tiff
data/B10-2018-05-06.tiff
data/B11-2018-05-06.tiff
data/B12-2018-05-06.tiff
data/B8A-2018-05-06.tiff
Otevření datasetu¶
Rastrový soubor (skupina souborů) - dataset - se otevírá pomocí funce
open()
z modulu rasterio obdobně jako v případě knihovny Fiona
vektorové soubory.
1import rasterio
2
3green = rasterio.open('data/B03-2018-05-06.tiff')
4
5# print metadata
6print("Bounds:", green.bounds)
Úkol
Zjistěte následující atributy rastrového datasetu:
počet kanálů
definici souřadnicového systému
velikost rastrového souboru (počet pixelů)
prostorové rozlišení
Můžeme si ihned nechat vypsat metadata o otevřeném datasetu.
Kanály družice Sentinel 2¶
Data z družice Sentinel 2 obsahují světelné spektrum v různých pásmech (B01-B8A), jak ale zjistit, která pásma jsou která? To je popsáno v dokumentaci na stránce projektu: https://earth.esa.int/web/sentinel/user-guides/sentinel-2-msi/resolutions/spatial
Zobrazení dat¶
Nejsnadnější cesta, jak zobrazit data, vede přes desktopovou prohlížečku QGIS. Viz školení pro QGIS začátečníky.
Úkol
Dokážete najít rozdíl mezi Českou republikou a Rakouskem?
Podívejte se na satelitní snímek a zjistěte, zda jste schopni pouhým okem rozlišit Českou republiku a Rakousko.
Poznámka
Zobrazení rastrových dat v okně Jupyter notebooku
import PIL.Image
# we have to convert the data from 16bit to 8bit, so that PIL can work with it
bit8_green = (green.read()[0]/256).astype('uint8')
PIL.Image.fromarray(bit8_green, "L")