Our work speaks for itself.

Geospatial Data Science Essentials:

101 Practical Python Tips and Tricks

What is this

The first book in the Geospatial Data Science Essentials series and the foundation for everything else on this platform. Originally released in 2024 and now in its second edition, fully updated to the current Python geospatial stack — GeoPandas 1.x, OSMnx 2.x, Shapely 2.1, H3 4.x, NumPy 2.x, Pandas 2.3.

101 focused techniques across 10 chapters. No desktop GIS, no point-and-click workflows, no black boxes. Every concept introduced through executable Python code, every output visualized and interpreted.

Reached #1 Free in multiple geospatial categories on Amazon at launch.

Who is this for

Data scientists and analysts working with location-based problems who want a practical, code-first entry point into geospatial data science. GIS professionals who want to deepen their Python skills. Anyone who enjoys working with maps and spatial data and wants a reliable reference they can return to as projects grow in complexity.

Prerequisites: beginner-level Python and some familiarity with data analysis. No prior geospatial experience assumed — the book builds it from the ground up.

Not for you if you want a theoretical treatment of spatial statistics, a survey of desktop GIS tools, or a framework like Dask, Spark, or DuckDB.

What you learn

  • Geometries as data structures — points, lines, polygons, set operations, buffers, distance

  • Vector data workflows in GeoPandas — spatial joins, overlays, dissolves, GeoParquet

  • Geospatial visualization — Matplotlib, Folium, Plotly, Pydeck, 3D maps, interactive maps

  • Map projections and coordinate reference systems — reprojection, EPSG codes, CRS transformations

  • Spatial indexing — RTree, H3 hexagonal grids, efficient spatial queries

  • Geocoding — single address, batch, reverse, missing geocode handling

  • Raster data — reading, clipping, reprojecting, zonal statistics, large file handling

  • OpenStreetMap — POIs, building footprints, road networks, administrative areas via OSMnx

  • Spatial networks — shortest paths, isochrones, centrality measures, community detection

  • Geospatial statistics and machine learning — spatial autocorrelation, spatial regression, random forest, hotspot analysis, kernel density estimation, spatial clustering

What's included

Full PDF · 10 Jupyter notebooks · requirements.txt · all supporting datasets and files · future updates included

Full outline

Chapter 1. Introduction to Geometries
1. Creating a Point · 2. Creating Line Segments · 3. Creating Polygons and Multipolygons · 4. Buffering a Geometry · 5. Set Operations on Geometries · 6. Area and Perimeter Computation · 7. Computing Centroids · 8. Enclosing Polygons · 9. Creating a Bounding Box · 10. Within-test · 11. Distance Calculation · 12. Simplifying Geometries · 13. 3D Objects in Shapely

Chapter 2. Vector Data in Python
14. Parsing a Data File into a GeoDataFrame · 15. Accessing the Geometry Column as a GeoSeries · 16. Creating a GeoDataFrame from Scratch · 17. Creating a GeoDataFrame from a DataFrame · 18. Writing a GeoDataFrame to a File · 19. Using Parquet Files for Geospatial Data · 20. Bounds of a GeoSeries · 21. Area and Perimeter Computation · 22. Simple Visualization with GeoPandas · 23. Buffering a GeoDataFrame · 24. Spatial Join with GeoPandas · 25. Overlaying GeoDataFrames · 26. Dissolving Polygons · 27. Splitting Geometries in a GeoDataFrame · 28. Applying Simple Functions on GeoDataFrames · 29. Generating Random Synthetic Data · 30. Counting Points in Polygons

Chapter 3. Visualizing Geospatial Data
31. Using Matplotlib for Categorical Coloring · 32. Using Matplotlib for Continuous Value Coloring · 33. Using Matplotlib for Continuous Value with Log Scale · 34. Visualizing Multiple GeoDataFrames · 35. Creating a Heatmap from Point Data · 36. Adding Basemap with Contextily · 37. Creating a Simple Interactive Map with Folium · 38. Creating a Simple Interactive Map with Plotly · 39. Visualizing 3D Geometries with Matplotlib · 40. Visualizing 3D Geometries with Pydeck

Chapter 4. Map Projections
41. Querying Coordinate Reference Systems · 42. Setting the Default CRS · 43. Reprojecting a GeoDataFrame · 44. Understanding Global vs. Local CRS · 45. Additional Projection Systems · 46. Transforming Coordinates Directly · 47. Obtaining EPSG Codes

Chapter 5. Spatial Indexing
48. Creating a Simple Spatial Index in GeoPandas · 49. Using Simple Spatial Indexes for Efficient Queries · 50. Efficient Spatial Indexing with RTree · 51. Creating a Square Grid from Scratch · 52. Visualizing RTree Indexing · 53. Enclosing Grid Cell Identification with RTree · 54. Introduction to H3 Indexing · 55. Visualizing H3 Grids

Chapter 6. Geocoding
56. Geocoding a Single Address Using GeoPy · 57. Reverse Geocoding Coordinates · 58. Batch Geocoding Multiple Addresses · 59. Handling Missing Geocodes · 60. From Geocoding to GeoDataFrame · 61. Geocoding within a DataFrame

Chapter 7. Raster Data in Python
62. Reading Raster Data · 63. Clipping Raster Data with GeoPandas · 64. Writing Raster Data · 65. Visualizing Raster Data · 66. Histogram Equalization on Raster Data · 67. Applying Simple Functions on Raster Data · 68. Reprojecting Raster Data · 69. Compute Zonal Statistics · 70. Convert Raster Grid into Vector Data · 71. Reading Large Raster Files Efficiently · 72. Clipping Large Raster Files · 73. Visualizing Large Raster Files · 74. Downsampling a Large Raster File

Chapter 8. Introduction to OpenStreetMap Data
75. Downloading Administrative Areas from OSM · 76. Using OSMnx to Download POIs · 77. Using OSMnx to Download Polygons · 78. Using OSMnx to Download Building Footprints · 79. Using OSMnx to Download Road Networks · 80. Visualizing Complex Urban Areas

Chapter 9. Spatial Networks
81. Road Networks in GeoPandas · 82. From GeoDataFrames to Spatial Networks · 83. Visualizing Spatial Networks · 84. Calculating the Shortest Path · 85. Visualizing the Shortest Path · 86. Generating Walking Distance Isochrones · 87. Obtaining Spatial Network Statistics · 88. Network Centrality Measures · 89. Community Detection in Spatial Networks

Chapter 10. Geospatial Statistics and Machine Learning
90. Descriptive Statistics with GeoPandas · 91. Global Spatial Autocorrelation · 92. Local Spatial Autocorrelation · 93. Spatial Feature Generation · 94. OLS Regression on Spatial Data · 95. Spatial Regression Models · 96. Spatial Random Forest · 97. Comparing Spatial Regression Models · 98. Hotspot Analysis · 99. Kernel Density Estimation · 100. Inverse Distance Weighting for Spatial Interpolation · 101. Spatial Clustering

Previous
Previous

Geospatial Data Science Essentials: 101 Steps to GeoAI from Scratch

Next
Next

Connecting the Dots: How data, networks, and algorithms shape our world