
Welcome to the 30-Day Map Challenge 2025: Director's Cut. In this short intro I'll walk you through what this course is, how it's structured across a serires of thematic sections, and what makes this different from the free YouTube tutorials — including the behind-the-scenes content, source code, and ready-to-run data samples. Let's get into it
A look behind the curtain of the 2025 #30DayMapChallenge. In this video I walk you through how I planned and managed 30 maps in 30 days — including tools, methods, social content, and overall logic.
Before we dive into the maps, let's make sure your Python environment is ready to go. In this video I walk you through the core libraries used across the 30 projects — GeoPandas, Folium, Plotly, PyDeck, Rasterio, osmnx, and more — and how to get everything installed so the notebooks run out of the box with the included data samples.
Note: We recommend using the conda command in Setup.ipynb rather than pip install -r requirements.txt directly. This ensures the correct numpy version is pinned for all libraries — particularly Pandana, which is used in the NYC Subway Accessibility project (Day 7).
A quick orientation to the module — what vector data is, why these five projects belong together, and what you'll be able to build by the end.
Query and visualize points of interest across Budapest using GeoPandas and Folium. Learn how POI clustering reveals urban patterns that intuition alone could never map.
Visualize pedestrian accident statistics across nearly 100,000 Budapest road segments. Build a custom color palette and extract urban safety insights from large-scale network data.
Process IUCN wildlife habitat polygons and build two complementary visualizations — a watercolor-style static map and an interactive HTML export — using Matplotlib and Folium.
Combine OSM building footprints and road networks to create elegant circular city cutout maps around four iconic global landmarks, rendered in a minimalist blue-ink style.
Animate the transition from Web Mercator to an equal-area projection using Natural Earth data — watch Greenland shrink, Africa expand, and Russia deflate as each country scales toward its true proportions.
A quick orientation to the module — what urban analytics means in practice, why these four cities and datasets, and how the projects connect to each other.
Build color-graded isochrone animations for every Manhattan subway station using Pandana and GTFS data, revealing transit reach and accessibility gaps across the borough.
Explore Vienna's built environment using urbantaxonomy.org's unified classification dataset, mapping urban fabric types from dense historic cores to sprawling suburban edges.
Note: The parquet file included is the full dataset. If you experience slow load times, the notebook includes instructions for working with a subset.
Use OSM road networks, POI data, and the city2graph package to measure 15-minute city accessibility across four European capitals — with code you can run on any city.
Parse GTFS routes and stops, build a city-wide walkability graph, and map walking time to the nearest transit stop for every point in Budapest — with an incremental node timelapse as a bonus.
A quick orientation to the module — why time is one of the most powerful dimensions in geospatial storytelling, and how animation turns data into narrative.
Animate 200 years of Manhattan's built-up area using NYC Open Data building footprints — revealing construction waves, densification patterns, and the spatial logic of a growing city.
Load and harmonize yearly WorldPop rasters, clip to the UAE, and animate two decades of Dubai's simultaneous demographic and spatial expansion.
Use 50 years of GHSL population data, H3 hexagons, and linear regression to project global population to 2125 — visualized as a 3D cinematic animation with a custom NASA basemap.
A quick orientation to the section — what raster data is, why satellite imagery matters for real-world geospatial analysis, and what you'll build across these four projects.
Load, explore, and animate 15 years of monthly EarthEnv cloud cover rasters, building a time-lapse that reveals striking seasonal patterns in atmospheric circulation across Southeast Asia.
Build an end-to-end wildfire damage detection pipeline using ESA Sentinel imagery, NASA FIRMS fire data, and OSM building footprints — applied to the 2025 LA wildfires.
Process NOAA VIIRS cloud-free monthly nighttime radiance data, crop to Europe, apply logarithmic transforms and gamma correction, and render in a monochrome gold palette using Datashader.
Process all 23 bands of Wyvern multispectral imagery, generate PCA composites, and apply Canny edge detection and Hough Circle Transform to identify center-pivot irrigation fields.
A quick orientation to the section — what elevation data is, why 3D visualization reveals patterns that flat maps hide, and the zoom-out arc from castle to Moon.
Process high-resolution 50cm LiDAR tiles from the Scottish Remote Sensing Portal and build a smooth, realistic Plotly 3D terrain model of Edinburgh Castle and its surroundings.
Load GLOBathy bathymetry data, apply Scipy smoothing, and create both a clean 2D map and an interactive Plotly 3D surface model of Central Europe's largest freshwater lake.
Aggregate WorldPop 2030 raster projections into 250km cells, bring in a NASA basemap, and render a fully interactive 3D population globe with vertical pillars in Plotly.
Load and preprocess the NASA LROC WAC_GLD100 30m lunar DEM, explore surface morphology in 2D, and build a fully interactive 3D map revealing craters and ridges in stunning detail.
Re-project England's 2025 IMD deprivation data from LSOA resolution onto an H3 level-7 grid and visualize spatial inequality as non-linearly extruded 3D hexagons using PyDeck.
A quick orientation to the section — what graph thinking means in a geospatial context, and how river basins, routing networks, and flavor similarity are all the same type of problem.
Reconstruct the full Amazon basin from Natural Earth river segments using a 250m gap-bridging algorithm, then render the result with a rasterized two-layer glow effect scaled by stream rank.
Query the GNIS database for every U.S. city named Rome, route them all to a place called Roads via OSM, and visualize the result as a witty inversion of the classic proverb.
Scrape the FSBI food database, build normalized TF-IDF chemical profiles for 300 ingredients, compute pairwise cosine similarity, and visualize the resulting flavor clusters in Gephi.
A quick orientation to the section — why creative constraints and personal data often produce the most memorable maps, and what connects these five very different projects.
Geocode origin-destination address pairs, generate actual road routes via OSM, and visualize a full year of personal mobility data as vivid glowing lines on a dark basemap.
Write a Python script to plan nail positions along Budapest's city boundary, simulate spoke and criss-cross string patterns, then follow the output to build the physical map.
Process GHSL population data and H3 hexagonal grids to assign ASCII density characters across Europe — building a fully working map with no basemap, no geometry, just text.
Set a timer, grab a Kaggle dataset, join it to Natural Earth boundaries, and style a choropleth map with ChatGPT-assisted color decisions — all in under 10 minutes, uncut.
Extract Italian beach POIs from OSM, combine with Natural Earth coastline data, and render the result in a glowing neon aesthetic that frames shorelines as both boundaries and invitations.
A quick orientation to the section — what GeoAI is, why AlphaEarth is a game-changer for urban data science, and how this project connects to the full GeoAI course coming next.
Acquire Google AlphaEarth 64-band multispectral data, match it to OSM building footprints, visualize results in Folium, and build a binary classification model using GeoPandas, Earth Engine, and scikit-learn.
Welcome to the final section of the 30-Day Map Challenge 2025: Director's Cut. This section is your permanent reference for everything used across the course — datasets, libraries, and tools.
A brief walkthrough of every data source that appeared across the 30 projects — where to find it, how to access it, and which days used it. Your permanent geospatial data reference.
A structured overview of the full Python library stack used across the course — what each tool does, how the libraries connect to each other, and when to reach for each one.
That's all 30 maps. Thank you for following along with the 2025 #30DayMapChallenge — and for being part of this community. See you in the next one.
The 30-Day Map Challenge is one of the most creative events in the geospatial community — 30 days, 30 themes, 30 maps. This is the Director's Cut.
Every November, thousands of mapmakers around the world take on the challenge. This course packages the complete 2025 edition into a structured learning experience — with source code, ready-to-run data samples, behind-the-scenes content, and 30 tutorial videos organized into 8 thematic sections.
What makes this the Director's Cut? All 30 tutorial videos are freely available on YouTube. What you're getting here is the structured course experience — thematically grouped, with section bridges that connect the projects into a coherent learning arc — plus every notebook, every dataset, and the behind-the-scenes video showing how 30 maps in 30 days actually gets planned and executed.
What you'll build: From interactive POI maps and wildfire damage detection pipelines to 3D lunar surface models and food chemistry similarity networks — these are complete, real-world projects built entirely in Python on open data. No point-and-click software. No toy datasets.
How the course is structured: The 30 projects are grouped into 8 thematic sections — Vector Foundations, Urban Analytics & Accessibility, Time Change & Animation, Raster & Remote Sensing, 3D & Surfaces, Networks & Graphs, Creative & Experimental, and GeoAI Preview. Each section opens with a short bridge video framing what connects the projects and what you'll take away.
The Python stack: GeoPandas · Folium · Plotly · PyDeck · Rasterio · osmnx · Pandana · Datashader · scikit-learn · NetworkX · H3 · OpenCV · Gephi
The data sources: OpenStreetMap · Natural Earth · NASA · ESA Sentinel · NOAA VIIRS · WorldPop · GHSL · GTFS · IUCN · Google AlphaEarth · Wyvern · GLOBathy · and more
Who this is for: This course is for intermediate Python users who want to build a serious geospatial portfolio — whether you're coming from data science, urban planning, geography, or remote sensing. If you've been following the challenge on YouTube or Substack and want to go deeper, this is built for you.