Úvod¶
Python je populární programovací jazyk, který má své četné příznivce stejně jako zarputilé odpůrce. Oproti jiným běžně rozšířeným jazykům je jeho syntaxe zvláštní mimo jiné v tom, že nepoužívá závorky - bloky kódu jsou odděleny pouhým odsazením zdrojového textu.
Poznámka
Příklad funkce main() v jazyku Python
def main():
print("ahoj")
Ve světe geoinformačních technologií je Python velice oblíbený (a můžeme říci, že čím dál oblíbenější). Stojí rozkročen mezi jednoduchým skriptováním v shellu a pokročilým programováním na takřka systémové úrovni v jazyce C. Má v sobě něco i z přístupů jazyka Java. Většina existujících knihoven a programů má pro tento jazyk svoje rozhraní, jako příklad můžeme uvést GDAL Python API.
S Pythonem lze ve světě GIS dojít daleko, níže uvádíme malý přehled vybraných nástrojů a jejich napojení na jazyk Python:
- Desktop
GRASS GIS: https://grass.osgeo.org (více na školení GRASS GIS pro pokročilé)
QGIS: https://qgis.org (více na školeni Tvorba zásuvných modulů QGIS)
ArcGIS: https://www.arcgis.com (arcpy)
- Web
MapServer: https://mapserver.org
GeoServer: https://geoserver.org
TileCache: http://tilecache.org
PyWPS: https://pywps.org
GeoDjango: https://geodjango.org
…
- Knihovny a nástroje
GDAL: https://gdal.org (Python API)
Shapely: https://github.com/Toblerity/Shapely
Rasterio: https://github.com/mapbox/rasterio
PyProj: https://github.com/jswhit/pyproj
R (rpy2): https://rpy2.github.io
GeoPandas: https://geopandas.org
…
- Databáze
- Specializované nástroje
RTree index: https://github.com/Toblerity/rtree
…
Seznam samozřejmě není úplný či konečný.
V tomto kurzu se zaměříme na úvod do práce s vektorovými a rastrovými GIS daty pomocí knihoven Fiona/Shapely a Rasterio. Nevyhneme se ani knihovně GDAL / OGR. Vyzkoušíme si také práci s knihovnou pro webové služby OGC OWSLib. Okrajově se dotkneme práce se souřadnicovými systémy pomocí knihovny pyproj.
Cílem kurzu není přirozeně kompletní pokrytí problematiky GIS a jazyka Python, nýbrž poskytnutí přehledu o nejčastěji používaných základních nástrojích, nad kterými lze stavět další aplikace. Tyto nástroje jsou ve své většině používány i dalšími programy a knihovnami a proto je dobré o nich vědět a chápat jejich principy.