Using Blender to Create Beautiful Maps

Part One: Preface

This first part is a personal anecdote about why I set out to do this project. If that doesn’t interest, that’s ok I won’t take it personally, feel free to skip ahead to Part Two: Process.

One of my favorite ways to kill time is to load up Google Earth and explore what’s out there. The amount of information available in that app is incredible! While searching through Google Earth I’ll tend to have phases. I went through an island phase when I first got started, scouring the pacific and looking at the settlements on the tiniest of islands thinking about how different that way of life must be from mine. A few months ago I switched and started my latest phase looking at the world’s lakes. This latest interest started when I really looked at the Caspian sea for the first time and realized just how mind-bogglingly big it is. The combined water volume of almost 7 lake Superiors, could fit within the Caspian’s basin. Insane stuff! 

Learning about all this made me interested in finding a visual display of just how big the Caspian sea was. Unfortunately I could only find one, and it was a pretty lackluster. Around the same time, I stumbled upon the twitter page of David Garcia, aka Mapmaker (Mapmakerdavid) where I saw the awesome renders, maps, and infographics he produces. Seeing this really inspired me to try and create my own infographic and I figured why not try starting with doing the world’s top ten largest lakes? My plan was ambitious, render the bathymetry of each of the top ten largest lakes and place them on a single poster showing their sizes to scale.This plan hit a snag pretty early on when I realized that accurate bathymetry data is hard to come by. So I shifted gears to creating a poster of just the great lakes region, where data abounds.

The only lakes visualization I could find (https://www.visualcapitalist.com/worlds-25-largest-lakes/)

Part Two: Process

To start with I followed a tutorial that was linked on Mapmaker’s website (Creating Shaded Relief in Blender). It isn’t by mapmaker, but it documents the process of creating beautiful 3D rendered orthographic maps in the open source software Blender. Since the initial tutorial highlighted open source software I decided to do all my processes – initial data manipulation, rendering, and eventually image post processing – in open source software. It was a nice challenge, and it’s good to know that my process can be followed by anyone.

The first step in this process was data acquisition and manipulation. I found quality bathymetry and shoreline data for all the great lakes from NOAA (NOAA Bathymetry Data). Initially, this was all I started with and I began by reprojecting the data to Great Lakes Albers (EPSG:3174), clipping the bathymetry to the shoreline extent, and using raster math to turn the values of the data into a 16-bit scale. This is all well documented within the tutorial so I won’t go into much detail here. One thing I found though is that when using QGIS the process for exporting data to an unsigned 16-bit image, a way that blender will be able to read it, is a bit involved. I found a workaround by going into the OSGeo4W Shell, which is basically a command prompt interface that comes with QGIS and typed a string like this, bolded areas are file specific so change those as indicated:

 gdal_translate -of GTiff -ot UInt16 -scale ‘Lowest value in dataset’ ‘Highest value in dataset’ 0 65535 “‘Location of input file’” “‘Location you want output file’

A working version of this would look like this:


gdal_translate -of GTiff -ot UInt16 -scale -382.482 796 0 65535 “C:/Users/Zoey/Desktop/Great_Lakes/AllGreatLakes/AllGreatLakesBathymetry/LargerLakesPlusTerrain.tif” “C:/Users/Zoey/Desktop/Great_Lakes/AllGreatLakes/AllGreatLakesBathymetry/LargerLakesPlusTerrain.png

So in doing the steps above – projecting, clipping, making 16 bit, and exporting – I created a PNG file that can be inserted into Blender to provide the height displacement information. At this point in the tutorial, the PNG file is loaded into Blender and the rendering process begins. I wanted to add color to my render however, so instead I brought the file into Sketchbook. Sketchbook Pro is currently currently being offered to download for free, while it isn’t open source this is the full program. I brought in the grayscale image created in QGIS and then played around with colorizing. This was pretty easily done by adding a second layer of color and changing the bathymetry layer to hard light. I then saved as this as a .tif and brought it into Blender alongside the original bathymetry gray-scale.

This project was my first time working with Blender, so I won’t go into much detail here. If you’re interested in trying this process I’d check out the original tutorial. I followed the instructions to set up my material, camera, and lighting. I made some minor changes by turning off shadows from the light source and adding color to the render. This was done in the shader editor by adding a second image texture and connecting it to the material properties. It took a bit of trial and error to get the first render, but after the initial one came though it was straightforward to make any modifications.

I made a couple of iterations of the lakes render and even made a first draft poster, before deciding to do a drastic change and add a terrain dem to the process. For this, I went back to QGIS bringing with me the GMTED 30 arc-second DEM for the Great Lakes region. This iteration needed a few additional adjustments. To tackle this I clipped the DEM using the same shoreline shapefile and then clipped the extent of the DEM with a rectangle shapefile I created. The terrain DEM could then be mosaicked together with the bathymetry DEM. This larger file could then go through the same raster calculator operation to turn it into a 16 bit image and be exported. The coloring and Blender processes were also the same.

I decided to bring my output to render back into Sketchbook Pro to make it into a poster. I added the title and my name, and then most importantly I added a linear burn layer to selectively darken certain areas. I found this helped to both highlight the lakes as well as creating more visual interest between the peaks and valleys of the environment. I considered having a soft glow layer above the lakes as well but decided against this eventually. This was the final output I ended up with:

Part Four: Some things I learned

This was my first time ever attempting something like this and I’m very pleased with the end result. It took me quite some time to get to a place I was so proud of, and I realized the importance of drafting and iterating. Throughout this process, I came across a few issues that I felt didn’t need to be placed in the main methods for the sake of conciseness but that would be helpful to hear. So I thought I’d include them in this miscellaneous section at the bottom. 

One of the major process changes I came across was in creating the color ramp for the final render. I found that the PNG file size was too big to be added to Sketchbook Pro. To get around this I took a screenshot of the image which then made it a manageable size for the program. This worked fine and I could create the color ramp, but in making the render I used the screenshot photo not the original resulting in a decrease in quality. Once I realized my mistake I made a new poster and the difference is pretty clear, so be sure to keep track of where your original data is.

The terrain suffered a huge loss in quality when I used the screenshot

Hypsometric tinting. The variation of green to white based on terrain elevation in the final product was created in a similar way to the bathymetry coloring. In this case, I think the simplicity adds to the effect. I did play around with a two-tone shading though and I may use this in the future for a more informative map. I did this in QGIS to create a custom tint, but…. If I were to do this again I’d look for a different tool. Since the way I brought this tint into Sketchbook Pro was to screenshot it and add it with a color modifier. It worked but wasn’t as good as I would have wanted. Since doing this project I’ve come across the work of Scott Reinhard and I feel like I need to give him a shoutout for his great 3D elevation maps that make use of classic cartography for the color. Seeing his process is giving me a lot of inspiration for the next map.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this:
search previous next tag category expand menu location phone mail time cart zoom edit close