Data sources & downloads
Getting the data in the first place: OpenStreetMap, web services, satellite catalogues and geocoders.
Everything on Spatial Workflow about data sources & downloads, in the order that usually works: understand the idea, then run the task, then fix it when it goes wrong. 33 guides in total.
10 learning paths run through this topic — follow one if you would rather work through a route than pick a single guide.
🧭 Start with the concepts
The ideas the how-to guides below assume you already have.
- GIS Data Sources Explained: Where Spatial Data Comes From gis data sources
- The OpenStreetMap Data Model Explained for Python Users openstreetmap data model
- Spatial Web Services Explained: WFS, WMS and OGC API Features wfs wms explained
- STAC Explained: How Satellite Imagery Catalogues Work stac explained
- Sentinel-2 or Landsat? Choosing a Satellite Imagery Source sentinel 2 vs landsat explained
- Geocoding Explained: From an Address String to a Coordinate geocoding addresses explained
- Choosing a Geocoder: Coverage, Licence and Cost Compared choosing a geocoder
- Census Geographies Explained: Blocks, Tracts, Output Areas and Why They Nest census geography hierarchy explained
- Open data licences explained for spatial data open data licence gis
- Field boundary data explained: where it comes from field boundary data
⚙️ Then do the task
Step-by-step walkthroughs with code you can copy and adapt.
- How to Download OpenStreetMap Data in Python with OSMnx download openstreetmap python
- How to Query the Overpass API from Python overpass api python
- How to Download Data from a WFS Service in Python download wfs python
- How to Download Administrative Boundaries in Python download administrative boundaries python
- How to Geocode Addresses in Python geocode addresses python
- How to Search and Download Satellite Imagery with STAC in Python download satellite imagery python
- How to Cache Downloaded GIS Data So You Fetch It Once cache downloaded gis data
- How to Build a Street Network Graph in Python with OSMnx street network graph python
- How to Read Spatial Data from S3 and Other Object Storage read spatial data from s3 python
- How to Geocode with Nominatim from Python Without Being Blocked nominatim python geocode
- How to Read GRIB Weather Forecast Data in Python read grib python cfgrib
- How to Download Census Boundaries in Python download census tract shapefile python
- How to Download Census Tables from an API in Python census api python acs
- How to check licence compatibility before combining datasets licence compatibility gis python
- How to publish a dataset with a citable identifier publish dataset doi python
- How to fetch and align tide gauge data in Python tide gauge data python
🔧 When it breaks
The errors this topic produces, with the cause explained rather than just the command.
- OSMnx Download Fails, Hangs or Times Out osmnx timeout error
- GeoJSON Downloaded from an API Is Empty or Truncated api geojson truncated
- Geocoding Returns Wrong or Missing Coordinates geocoding wrong coordinates
- Your Street Network Graph Is Disconnected or Missing Streets osmnx graph disconnected
- Fixing Census API Values Like −666666666 and Other Sentinels census api -666666666
- Fixing Census Data That Does Not Match the Boundary File Year census data boundaries mismatch year
- A downloaded layer has no licence you can find layer has no licence
Learning paths through this topic
A curated route rather than a list — the guides in the order that builds on itself.
-
Finding & Fetching Data
Get the data before you analyse it — from OSM, web services and satellite catalogues.
Open path → -
Networks & Routing
Distance along the street, not across the rooftops.
Open path → -
Satellite Imagery
From a scene on a catalogue to a number you can defend.
Open path → -
Cloud-Native GIS
Read the part you need, not the file it lives in.
Open path → -
Geocoding & Addresses
Address text is data too — and it is the messiest data in the file.
Open path → -
Gridded & Climate Data
A raster with a time axis, a calendar and forty years in one file.
Open path → -
Census & Demographics
The most-used open data there is, and the easiest to map wrongly.
Open path → -
Metadata, Licensing & Provenance
A layer nobody can describe, cite or re-run is a layer nobody should use.
Open path → -
Coastal & Marine
The shoreline is a choice of datum, not a line on a map.
Open path → -
Agriculture & Crops
One field, one season, and a dozen ways to measure it wrong.
Open path →
Related topics
Subjects that keep coming up alongside this one, most overlap first.