Sign in

PythonMaps

@pythonmaps.bsky.social
1.1K followers 5 following 137 posts

Mapping the world with Python. Geospatial data scientist who likes maps. Contact adam@pythonmaps.com

PostsRepliesMedia
PythonMaps @pythonmaps.bsky.social · 01/08/2026
Trying my hand at infographics. Mapping maritime choke points. Unfortunately the publicly available data used to produce this was recorded between 2015 and 2021 - Prior to the Houthis actions in the Red Sea and the war in Iran, which no doubt change this picture.
130
PythonMaps @pythonmaps.bsky.social · 29/04/2026
Fun concept, the distribution of elevation levels on the earths surface
0133
PythonMaps @pythonmaps.bsky.social · 04/04/2026
Ultimately, I am not a geographer so this may all be wrong but I do enjoy making textbook grade visuals.
010
PythonMaps @pythonmaps.bsky.social · 04/04/2026
Finally. Showing the age of oceanic crust alongside volcanoes in East Asia shows the subduction boundary where the oceanic Pacific Plate and Philippine Sea Plate subduct (dive) beneath the continental Eurasian Plate.
110
PythonMaps @pythonmaps.bsky.social · 04/04/2026
Pacific centred
100
PythonMaps @pythonmaps.bsky.social · 04/04/2026
What about volcanoes?
100
PythonMaps @pythonmaps.bsky.social · 04/04/2026
Pacific centred
100
PythonMaps @pythonmaps.bsky.social · 04/04/2026
Overlaying earthquakes locations maps the plate boundaries.
111
PythonMaps @pythonmaps.bsky.social · 04/04/2026
Pacific centred for those not in Europe
110
PythonMaps @pythonmaps.bsky.social · 04/04/2026
The age of oceanic crust is a nice map of the world's divergent plate boundaries. As the plates move apart, magma rises from the mantle, creating new crust.
110
PythonMaps @pythonmaps.bsky.social · 04/04/2026
Plate Tectonics. A thread
161
PythonMaps @pythonmaps.bsky.social · 29/01/2026
Claude did 95% of the work on this. I've been resistant to the AI hype but it does certainly have its uses. Here is a map showing the status of the death penalty around the world
121
PythonMaps @pythonmaps.bsky.social · 16/01/2026
Made a roads map for another project. Thought I would share.
073
PythonMaps @pythonmaps.bsky.social · 04/01/2026
The overlapping colors reveal where different forest biomes meet across the planet. Built with Python (GeoPandas, Rasterio, Matplotlib) Data: Hansen et al. Science 2013 4/4
010
PythonMaps @pythonmaps.bsky.social · 04/01/2026
Assigned distinct colormaps: Blues (boreal), Oranges (temperate), PuRd (subtropical), Greens (tropical) Overlaid all four masked layers to show global forest distribution by climate type 3/4
110
PythonMaps @pythonmaps.bsky.social · 04/01/2026
How it was made: Started with Hansen et al. global forest cover raster (% tree cover per pixel) Loaded climate zone shapefile with boreal, temperate, subtropical & tropical regions Masked the forest raster with each climate zone to extract forest cover for that zone only 2/4
100
PythonMaps @pythonmaps.bsky.social · 04/01/2026
I created a global forest map showing how forests vary by climate zone - Added twist, 90% of the code + the following post was generated by Claude. 1/4 #Python #GIS #DataViz #Cartography #Forests
2112
PythonMaps @pythonmaps.bsky.social · 29/11/2025
Day 26 of the #30DayMapChallenge - Transport - Shipping Lanes.
0174
PythonMaps @pythonmaps.bsky.social · 27/11/2025
Running a little bit behind. Day 25 of the #30DayMapChallenge - Hexagons - I have used the @KonturInc population density hexagons to generate this population density map of Southern Asia
0112
PythonMaps @pythonmaps.bsky.social · 24/11/2025
Day 24 of the #30DayMapChallenge - Places and their names - Here are the World's rivers with labels on some of the major ones.
180
PythonMaps @pythonmaps.bsky.social · 24/11/2025
Day 23 of the #30DayMapChallenge - Process - "Show how you make a map" - Well luckily, there is an entire book dedicated to how I make maps - get yours now locatepress.com/book/pymaps
070
PythonMaps @pythonmaps.bsky.social · 22/11/2025
Day 22 of the #30DayMapChallenge - Natural Earth Data. I used the Ocean Bottom layer to make a Bathymetry map of Northern Europe.
0315
PythonMaps @pythonmaps.bsky.social · 21/11/2025
Day 21 of the #30DayMapChallenge - Icons - Use icons to highlight points of interest. Here are lighthouses of the Caribbean and Gulf of America. I used a few tricks to make the points look like they are shining out to sea.
020
PythonMaps @pythonmaps.bsky.social · 20/11/2025
Day 20 of the #30DayMapChallenge - Water - Rivers of South America
0130
PythonMaps @pythonmaps.bsky.social · 19/11/2025
Day 19 of the #30DayMapChallenge - Projections. Here are maps showing tropical storms using a number of different projections. We have the South Polar Stereo, the Robinson, the Lambert Conformal and finally I have included a shipping lanes map using the infamous Spilhaus projection.
1111
PythonMaps @pythonmaps.bsky.social · 19/11/2025
Day 18 of the #30DayMapChallenge - Out of this World. Here is a topographical map of Mars. I have added some hill shading and used a colourmap that simulates an ocean, proportionally equal in size to Earths.
0101
PythonMaps @pythonmaps.bsky.social · 17/11/2025
Day 17 of the #30DayMapChallenge - New tool. It has been on my radar for a while so I tried out datashader to visualise population density. These maps usually take minutes to render but with datashader it takes seconds.
070
PythonMaps @pythonmaps.bsky.social · 16/11/2025
Day 16 of the #30DayMapChallenge - Cell - Here is a map of Cell tower density in Europe. Clearly this is just a population density map but gotta follow the theme.
0142
PythonMaps @pythonmaps.bsky.social · 16/11/2025
Day 15 of the #30DayMapChallenge - Fire. Wildfire map. Data aggregated for all of 2024.
061
PythonMaps @pythonmaps.bsky.social · 14/11/2025
Day 14 of the #30DayMapChallenge Open Street Map - Railways.
030
PythonMaps @pythonmaps.bsky.social · 13/11/2025
Day 13 of the #30DayMapChallenge — 10-minute map. Once I’ve made a particular type of map once, I can usually recreate it in about 10 minutes. This one’s a bivariate map — the style that probably took me the longest to learn the first time around. Rainfall vs Temperature in South America
0140
PythonMaps @pythonmaps.bsky.social · 12/11/2025
Day 12 of the #30DayMapChallenge - Map from 2125 - I think Northern Ireland and the Republic of Ireland could merge into a new country. So here is a topography map.
0122
PythonMaps @pythonmaps.bsky.social · 11/11/2025
Day 11 of the #30DayMapChallenge - Minimal - Population density of Egypt. This was always my preferred style but recently I caved to academics who wanted labels and keys 🤮. Glad to get back to basics.
0120
PythonMaps @pythonmaps.bsky.social · 11/11/2025
Look no further - locatepress.com/book/pymaps
locatepress.com
Python Maps - Geospatial Visualization with Python
Using Python to program the creation of amazing geospatial/GIS mapping products.
010
PythonMaps @pythonmaps.bsky.social · 10/11/2025
Day 10 of the #30DayMapChallenge - Air - Map of the world's airports and airways.
1112
PythonMaps @pythonmaps.bsky.social · 09/11/2025
Day 9 of the #30DayMapChallenge - Analog. Create your map using traditional methods. Obviously I am not going to stick to this. Frankly nothing is more traditional that Python so here is another map made with Python. Roads of the Roman Empire.
161
PythonMaps @pythonmaps.bsky.social · 08/11/2025
Day 8 of the #30DayMapChallenge Urban - Roads of the world. Couldn't think of anything more urban than roads.
0102
PythonMaps @pythonmaps.bsky.social · 08/11/2025
Capitalism vs communism eh 😉
010
PythonMaps @pythonmaps.bsky.social · 07/11/2025
Day 7 of the #30DayMapChallenge - Accessibility - "Visualize travel time, barriers....." - Here is a map showing nighttime lights in the Korean Peninsula. The border between North and South is visible from space.
182
PythonMaps @pythonmaps.bsky.social · 07/11/2025
Day 6 of the #30DayMapChallenge - Dimensions. A thread of a few maps that cross into the three dimensional world. Here is a 3D representation of the topography and bathymetry around Gibralta.
091
PythonMaps @pythonmaps.bsky.social · 07/11/2025
Day five of the #30DayMapChallenge - Earth. Soil moisture. Data comes from the TerraClimate project. I love this colourmap.
030
PythonMaps @pythonmaps.bsky.social · 07/11/2025
Day four of the #30DayMapChallenge - Data challenge: My Data. I made some historical geojsons of the Roman and Mongol empires. Accuracy is vaguely correct but the Mongol Empire does look a bit like a bear.
050
PythonMaps @pythonmaps.bsky.social · 07/11/2025
Day 7 of the #30DayMapChallenge - Accessibility - "Visualize travel time, barriers....." - Here is a map showing nighttime lights in the Korean Peninsula. The border between North and South is visible from space.
051
PythonMaps @pythonmaps.bsky.social · 03/11/2025
Day three of the #30DayMapChallenge - Polygons. This map shows the earths tectonic plates. I have overlayed all of the earthquakes with a magnitude greater than 4.0 over the last 20 years, coloured according to their magnitude (blue (smallest) - red (largest).
25216
PythonMaps @pythonmaps.bsky.social · 02/11/2025
Day 2 of the #30DayMapChallenge - Lines. This map shows the rivers of Africa, coloured according to the minimum river temperature.
210317
PythonMaps @pythonmaps.bsky.social · 01/11/2025
Day one of the #30DayMapChallenge - Points. These maps show lighthouses of the British Isles, the Aegean Sea and Italy. I have tried to simulate how they would shine and cast light out to sea.
2303
PythonMaps @pythonmaps.bsky.social · 02/10/2025
Croplands. This map shows the croplands of East Asia. Using my new favourite colourmap. Data - www.nature.com/articles/s43...
030
PythonMaps @pythonmaps.bsky.social · 01/10/2025
Soil moisture. Data comes from the TerraClimate project. Is my choice of colourmap appropriate? No. Do I care? No. Do I just like making pretty pictures? Yes
040
PythonMaps @pythonmaps.bsky.social · 27/09/2025
Evapaotranspiration. Data comes from the TerraClimate project.
092
PythonMaps @pythonmaps.bsky.social · 28/08/2025
Wildfires. Data aggregated for all of 2024.
030