Getting started

A working install, your first GeoDataFrame, and what Python GIS is for.

A GeoDataFrame: a table of attributes with a geometry column and a CRS. a GeoDataFrame is a table with a geometry column and a promisenamepopgeometryCamdenFulhamEaling210,000182,000367,000crs: EPSG:27700Every guide on this site is an operation on one of these, or a repair to one

Python GIS is a small number of objects and a large number of ways to install them. The objects go quickly: a GeoDataFrame is a pandas table with a geometry column and a CRS, and nearly everything else on this site is an operation on one. The install is where the afternoon actually goes, because the Python packages are thin wrappers over C libraries — GDAL, GEOS, PROJ — that have to agree with each other.

So this topic covers both halves. The concepts explain what you are holding: GeoDataFrames, Shapely geometries, vector against raster, and what GDAL is doing underneath all of it. The how-to guides get you a working environment, a notebook that behaves, and a first analysis that runs end to end. The fixes are the install and import errors, which is where most first days are spent.

Learning paths run through this topic too — see the end of this page.

🧭 Start with the concepts

The ideas the how-to guides below assume you already have.

Show every concept in this topic

⚙️ Then do the task

Step-by-step walkthroughs with code you can copy and adapt.

Show every how-to guide in this topic

🔧 When it breaks

The errors this topic produces, with the cause explained rather than just the command.

Related topics

Subjects that keep coming up alongside this one, most overlap first.

Keep browsing

Getting started sits in Fundamentals. Every topic on the site is listed on the topics index.