Rastrová data v QGIS Python API

Programování v GIS 4

Jan Caha

2024-10-21

Rastrová data

  • QgsRasterLayer - rastrová vrstva
  • QgsRasterDataProvider - interface pro poskytovatele rastrových dat
  • QgsRasterBlock - blok rastrových dat
  • QgsRasterIterator - iterátor přes rastrová data
  • QgsRasterFileWriter - zápis nových dat

QgsRasterLayer

  • třída pro rastrové vrstvy
  • přes něj se k datům nepřistupuje
  • funkce dataProvider() pro přistup k data provideru
  • na rozdíl od vektorovách dat nemáme provider pro uložení dat v paměti, dočasné rastry se ukládají do dočasného adresáře (temp)

QgsRasterDataProvider

  • hlavní interface pro rastrová data
  • skrze něj se přistupuje k datům
  • funkce block() pro získání bloku dat
  • funkce writeBlock() pro zápis bloku dat (funkce setEditable())

QgsRasterBlock

  • blok rastrových dat
  • v podstatě 2D pole hodnot + dopňkové informace z data provideru
  • funkce value() pro získání hodnoty buď pomocí indexu, nebo dvojici souřadnic řádek, sloupec
  • funkce isNoData() pro zjištění zda hodnota odpovídá NoData hodnotě

QgsRasterIterator

  • iterátor přes rastrová data
  • na rozdíl od QgsRasterBlock není nutné provádět kontroly
  • startRasterRead() pro zahájení čtení (stopRasterRead() pro ukončení iterace)
  • funkce next() pro získání dalšího bloku dat
  • funkce setMaximumTileWidth() a setMaximumTileHeight() pro nastavení maximální velikosti čtecího bloku

QgsRasterFileWriter

  • inicializace názvem souboru
  • funkce setOutputProviderKey() a setOutputFormat()
  • funkce QgsRasterFileWriter::driverForExtension()
  • funkce createOneBandRaster()
  • funkce createMultiBandRaster()

Dotazy?