Ú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: http://grass.osgeo.org (více na školení GRASS GIS pro pokročilé)
- QGIS: http://qgis.org (pyqgis)
- ArcGIS: http://www.arcgis.com (arcpy)
- Web
- MapServer: http://mapserver.org
- GeoServer: http://geoserver.org
- TileCache: http://tilecache.org
- PyWPS: http://pywps.org
- GeoDjango: http://geodjango.org
- Knihovny a nástroje
- GDAL: http://gdal.org (Python API)
- Fiona: https://github.com/Toblerity/Fiona
- Shapely: https://github.com/Toblerity/Shapely
- Rasterio: https://github.com/mapbox/rasterio
- PyProj: https://github.com/jswhit/pyproj
- R (rpy2): https://rpy2.bitbucket.io
- GeoPandas: http://geopandas.org
- Databáze
- PostGIS: http://postgis.net (https://pypi.org/project/postgis/)
- SpatiaLite: https://www.gaia-gis.it/fossil/libspatialite/index (https://pypi.org/project/spatialite/)
- GeoAlchemy: http://geoalchemy.org
- Specializované nástroje
- TopoJSON: https://github.com/calvinmetcalf/topojson.py
- 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.