Announcing #30DayMapChallenge in November 2019! Create a map each day of the month with the following themes 🌍🌎🌏— Topi Tjukanov (@tjukanov) October 25, 2019
No restriction on tools. All maps should be created by you. Doing less than 30 maps is fine. #gischat #geography #cartography #dataviz pic.twitter.com/6Go4VFWcJB
I’m just going to have a go at this. I’ll probably wont make one each day, but it is a nice occasion to publish some half baked ideas I have lingering on my computer, to learn a thing are two, and most of all, just have some mapping fun :)
So whenever I make a new map for the challenge, it will be added to this page.
Challenge 14: boundaries
Data: Municipal boundaries of Belgium, and a self drawn line
Goal: Showing the complexity of the boundaries of the municipality of Baarle-Hertog
Challenge 13: tracks
Data: My own Runkeeper tracked runs
Goal: Show my running habits over the (almost) last 5 years
How I did it: I downloaded my data from Runkeeper and generated the small multiple tracks from it with the Strava package and ggplot, based on this script (I set the colors to represent the distance ran). I imported the generated png file in Adobe Illustrator and added all the annotions (browsing my running history was a lot of fun!). Then I used AI2html to generate the image with the annotations overlayed as html and css.
See the full piece here (zoom your browser if the font is too small, sorry for that)
Challenge 12: movement
Data: TravelTime Platform
Tool: TravelTime Platform app
Goal: comparing how far I can travel in 1 hour by 3 modes of transport, starting from my local train station
How I did it: I just used the nice TravelTime Platform app (which has a very nice UI, I think)
Challenge 11: elevation
Goal: Showing one of the most spectacular geographical features of my region: the Flemish spoil tips
How I did it: The terrain is a digital elevation model with a resolution of 1 meter, which I used to create the hillshade in QGIS. A duplicate of the layer is used for the colors, which maps the elevation to the PuOr diverging color scale. The contour lines are generated from a dem with a 5 meter resolution, with the Raster => Extraction => Contour tool in QGIS. I removed all contour lines not directly on the spoil tips, and labelled them with their elevation. The titles were added in Illustrator.
Challenge 10: black and white
Goal: Comparing streets layout and built up area in cities of which the names start with a ‘B’
How I did it: Just search the map, center it, and select a circle radius. I used 2km for all the maps.
Challenge 9: yellow
Goal: Make a yellow map of the Belgian municipality of Geel, which name means “yellow” in Dutch
Challenge 8: green
Goal: Finally making one of those c̶l̶i̶c̶h̶é̶ classic tree maps
How I did it: The geo portal serving the data had a little difficulty giving me the data, so I reached out to the people managing the Antwerp geoportal. They sent me this wonderfull data set over email. I’ll probably make a proper interactive ‘Trees of Antwerp’ map later. Here
- each shade of green is different genus of trees
- size of the tree crowns are proportional to stem diameters
- I added some shadow under the trees to make them stand out
Challenge 7: red
Goal: Make a Hovmöller diagram of average global temperature over time, by longitude and latitude
How I did it: The hardes part was converting the source data into something to work with. After that, I used ggplot’s geom_tile() to make the plots, and geom_vline() and geom_hline() to add the prime meridian and the equator
Challenge 6: blue
Goal: Showing the Flemish hydrography, in a blue fashion. (Yes, Flemish: notice the hole that is Brussels on the map. For many of the government data in my country, you need to consult 3 different government agencies (Flemish, Brussels and Walloon), and the data will most likely not be comparable, if it exist at all)
How I did it: A digital elevation model with a blue color gradient, with dark blue meaning lower elevation, underneath the waterways, of which the thickness is scaled to their importance.
You can find a higher resolution version of the map here.
Challenge 5: raster
I’m cheating a little bit with this challenge: this is something that was published over a week ago :)
Goal: Comparing aerial imagery from almost 50 years ago to today’s. The map was part of a series of articles by Flemish newspaper De Standaard on the poor spatial planning in Flanders.
How I did it: read all about it in the making of post
Challenge 4: hexagons
Tool: R/ggplot2, GIMP to make the animated gif
Goal: show the shifting front and the intensification of allied bombings during World War II
How I did it: Natural Earth data for the background map, geom_hexbin for the hexagons. I made one map for every month, loaded all the maps in GIMP and exported it as an animated gif.
Challenge 3: polygons
Tool: QGIS + Illustrator
Goal: show the big city that Flanders actually is
How I did it: Very basic styling of polygon shapefiles, with some inner glow and drop shadow.
Challenge 2: lines
Tool: R + ggplot2
Goal: see how Belgian airports are connected to foreign airports
How I did it: I used the eurostat R package to get data about the number of commercial flights between Belgian and foreign airports. The hardest part was then to geocode all the airports to their actual location. After that, I used the rnaturalearthdata package to get the baselayer data, and plotted everything on the map with ggplot (with geom_sf() for the countries, geom_segment() for the lines, and geom_point() for the airports).
These are the connections for all Belgian airports, units are total number of commercial flights between both cities, in 2018.
A zoomed in version, to better see the European connections:
Because this is all in script, it is very easy to do for other countries:
If you have a request for any European country, just let me know!
Challenge 1: points
Goal: map all power plants in Europe, by source of fuel
Inspiration: Mapping how the United States generates its electricity by The Washington Post
How I did it: I took the data from the Global Power Plant Database and with a little R script, I filtered out the plants in European countries. I uploaded the data to the Projection map - Europe (countries) template in Flourish. Then it was just a matter of styling the map a little bit.
Notice that Russia is not part of the country layer in this Flourish map template. But I’m going to leave it at that.
One powerful thing that you can do with Flourish is creating stories: slide decks that you can use to highlight different aspects of your data. In the map template, the color legend serves as filter, so creating the following little story was quite easy:
So challenge 1: done!