02. Přehled Python knihoven pro práci s geoprostorovými daty

Geospatial data science

Motivace:

  • Desktop GIS
    • často velmi silný nástroj pro kartografické úlohy
    • výhodný pokud preferujete GUI
    • ne vždy efektivní při práci s velkými objemy dat
    • ne vždy ideální pro stastickou analýzu dat
  • Mimo svět desktopového GIS
    • výkoné databázové systémy umožňující uložení velkého objemu dat
    • programovací jazyky pro efektivní analýzu dat
      • R (určen pro analýzu dat)
      • Python (nejen analýza dat, obecnější)
    • reprodukovatelnost
    • nejsou příliš silné v kartografických úlohách
    • rychlá křivka učení

Výhody:

  • open-source (náklady, dokumentace algoritmů, rozšířitelné)
  • flexibilita (uložení dat v databázi, paralelizace výpočtů, cloudová řešení, inovace)
  • dokumentace, spolupráce (Jypyter notebooks, věda, opakovatelnost)
  • ...

Nevýhody:

  • vyžaduje znalost programování
  • ne vždy kompletní dokumentace
  • může být náročnější pro uživatele desktop GIS (databáze a SQL, programování, statistika, IT)
  • více cest k dosažení výsledku

Python ekosystém pro práci s geoprostorovými daty

Základní nástoje:

  • NumPy - práce s velkými vícerozměrnými poli
    • jádro napsáno v C
    • rastrová data jako matice hodnot
  • Pandas - práce s tabulkovými daty
  • Matplotlib - vizualizace dat (histogram, kolerační diagram a řada dalších)
  • Scikit-learn - strojové učení (155YUSU)
  • SciPy - vědecké výpočty
    • postaveno na NumPy
    • lineární algebra, optimalizace, integrace, interpolace, ...

Základní knihovny (Python API):

  • GDAL - knihovna pro práci s nejrůznějšími GIS datovými formáty
  • GEOS - prostorové operace pro vektrorová data
  • PROJ - převod mezi různými souřadnicovými systémy
  • ...

Přehled Python balíčků pro práci s geoprostorovými daty:

  • Fiona - zpracování vektorových dat
  • Shapely - práce s geometriemi vektorových dat
  • Rasterio - zpracování rastrových dat
  • GeoPandas - nadstavba pro knihovnu Pandas
  • pyjeo - zpracování rastrových datových kostek a vektorových dat
  • OWSLib - Python API pro různé webové služby
  • pycsw - publikace metadat geoprostorových dat
  • pygeoapi - implementace OGC API
  • Folium - vizualizace dat
  • ipyleaflet - další balíček pro vizualizaci dat
  • Geoplot - další balíček pro vizualizaci dat
  • PySAL - prostorová statistika
  • PyKrige - kriging
  • ...

Úvod do Pandas

Knihovna Pandas:

  • pracuje s objekty DataFrame, které odpovídají charakteru tabulek v databázi
  • nástroje pro čtení a zápis dat
  • nástroj pro efektivní výběr a filtrování
  • nástroje pro grafické výstupy a explorační analýzu dat (exploratory data analysis)

Praktické úlohy