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
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
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 · 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
PythonMaps @pythonmaps.bsky.social · 24/08/2025
Aridity of Oceania. Aridity is usually expressed as a generalized function of precipitation, temperature and reference evapo-transpiration. Higher values represent more humid conditions and lower values represent higher aridity.
053
PythonMaps @pythonmaps.bsky.social · 20/08/2025
Religions of the world coloured by majority religious affiliation. Deeper colours denote greater percentage of people practicing the corresponding religion.
030
PythonMaps @pythonmaps.bsky.social · 19/08/2025
Aridity of North America. Aridity is usually expressed as a generalized function of precipitation, temperature and reference evapo-transpiration. Higher values represent more humid conditions and lower values represent higher aridity. Data from csidotinfo.wordpress.com/2019/01/24/g...
161
PythonMaps @pythonmaps.bsky.social · 18/08/2025
Bathymetry of the Gulf of America, the Caribbean and parts of the Atlantic and Pacific.
252
PythonMaps @pythonmaps.bsky.social · 12/08/2025
This is a bivariate map showing rainfall vs temperature.
150
PythonMaps @pythonmaps.bsky.social · 20/07/2025
Few people realise the scale of the Himalayas because static maps are a bad way to convey topography. Fortunately, we can use interactive maps to explore topography. Here is an example using Pyvista.
3379
PythonMaps @pythonmaps.bsky.social · 14/07/2025
Here is an old favourite. Shipping lanes. This time drawn using the Spilhaus projection, which centers the map on Antartica and presents the worlds oceans as one continuous body. Athelstan F. Spilhaus, a South African-American geophysicist and oceanographer in 1942
0367
PythonMaps @pythonmaps.bsky.social · 18/06/2025
I have combined two datasets for fun. Here are the world's shipping lanes (red) and the worlds flight paths (white) on the same map.
0130
PythonMaps @pythonmaps.bsky.social · 07/06/2025
Expermineting with different datasets. Plotting a topography map, with contour lines on top creates a really cool hillshading effect. Couple that with rivers and you are getting close to a OS map, all in Python
161
PythonMaps @pythonmaps.bsky.social · 31/05/2025
Roads of London! This map was generated using #Matplotlib #Numpy #Geopandas. #Python #DataScience #Data #DataVisualization #London.
030
PythonMaps @pythonmaps.bsky.social · 18/05/2025
Forest Loss. This map shows forest loss since 2000 in Africa. Defined as a stand-replacement disturbance, or a change from a forest to non-forest state.
120
PythonMaps @pythonmaps.bsky.social · 14/05/2025
Forest Loss. This map shows forest loss since 2000 in Brazil. Defined as a stand-replacement disturbance, or a change from a forest to non-forest state.
2153