Find spatial differences (change detection) on vector data
Combine Python tools like Fiona + Shapely to chain reading,
converting, and analysing spatial data:
>>> with fiona.open('city_parks.shp', 'r') as collection:
>>> parks = [shapely.geometry.shape(c['geometry']) for c in collection]
>>> park = parks # grab the first park out of the feature list
# ask Shapely what type of geometry this feature is
>>> (park.centroid.x, park.centroid.y)
use Fiona to open a shapefile of Austin city parks in Python,
then use Shapely to read & manipulate its geometry
Bucket #2: Web Things
Getting spatial data online, making it mobile, or
putting it in the "cloud"
Generating web maps
Folium: Python library that wraps wraps Leaflet.js
so you can use Python to generate web maps.
"Manipulate your data in Python, then visualize it on a Leaflet map via Folium."
existing data on a web map
Building spatial-ized web applications
Web apps are interactive: taking input, storing data, producing output
Geodjango: create web apps that incorporate spatial data
GeoDjango lets you use a spatial database (e.g., PostGIS) to
power a spatial-ized app: run spatial queries, return geometries, build
Making life better
Easy ways to start using Python as a GIS person
Get Fancy with the Field Calculator
Use Python to generate calculated field values:
Do it in QGIS with the FieldPyculator plugin
Check your work
Humans make mistakes: use Python to make QA/QC tools
Programmatically verify schemas & data consistency
Check for geometry issues (gaps, overlaps, slivers, etc)
Clean messy field values (mixed caps/lowercase, spaces
vs. underscores, etc)
Let Python do repetitive tasks for you.
Life is too short to manually reproject 50 shapefiles,
then convert them all to GeoJSON...
Python makes a lot of things a lot easier
You don't have to be a programmer to take advantage