This post is adapted from a UNIGIS u_Lecture webinar I gave earlier this year.
Design is human.
It’s a simple statement, but to me a very useful one. When I set out to assemble the talk upon which this blog post is based, I hadn’t realized how many of my thoughts about doing good design can be boiled down to those three words. I’d picked it as the title for my presentation, well before I had any actual content. But as I began to assemble coherent thoughts to go along with the title, I realized that it’s a pretty good summary of where my thoughts are at right now, as well as a refinement of statements I’ve made in the past (on this blog, in presentations at NACIS in 2013 and 2011, and in the classroom).
Humans are Natural Designers
Let’s start with the big question: what exactly is “design”? I could consult a dictionary or something, but that seems like a lot of work and not as much fun as making up my own definition. So, just like my Introduction to Cartography students, you’re stuck with my personal opinion on this one:
Design is making decisions in order to reach a goal.
It’s simple, and very broad. You have something you want to get done, and then you use your knowledge and experience to figure out how to accomplish it. It’s also an empowering definition, because it means that we are all designers. We design all the time in our daily lives.
Here’s a trivial example: I’m hungry. My goal is to be not-hungry. So, I decide that I will fix some food and eat it. Once I act on that plan, I’ll stop being hungry, by design.
It’s a silly example, but it illustrates just how much design we all do every day. We’re constantly planning and making choices based on the way we want the world to be. Design is natural to humans, and our ability to make these sorts of plans is one of the things that separates us from most of the rest of the animal kingdom.
This is something I try and hammer home in the classroom, and which bears repeating: we are all designers. It’s easy to become discouraged or overwhelmed when we see beautifully-designed maps, furniture, or other objects, and to think that the ability to design is out of reach, reserved for a special group of people with appropriate job titles. So it’s important to me to spread this empowering definition, and to remind everyone, student or otherwise, that design is human — it’s something we do naturally.
Some people design breakfast, and others design maps. It’s the same process, but the difference is simply in the goals, and the knowledge and experience being employed in achieving those goals. Here’s a lovely map by Eduardo Asta (which can be found in the 2nd Atlas of Design!)
The map is built upon a series of good decisions. He wanted to show the movement of drugs, so he made the decision to use arrows. He wanted to present a serious subject in an appropriate mood, so he chose a dark background. He wanted us to understand what the color meant, so he included a legend. And it goes on and on, with hundreds of decisions going into the map. Many are obvious, and some we might disagree with, but we can still boil much of the map down to choices that were made in service of a final goal. What separates someone who can make a map like this from someone who can’t is the knowledge and experience informing those choices. It’s not some inability to design.
Making a map is just like making breakfast, except with different goals, options, skill sets, and resources. So, completely different. Except for the design part; that’s the same.
A Human Designer
By the description above, design requires intent. We have a goal, and we make decisions which are intended to move toward that goal. Design cannot exist in the absence of thought and planning. A random choice is not a design decision. Imagine if, in the map above, Mr. Asta had chosen colors blindly, or put random words on the map instead of region labels. The map wouldn’t be poorly designed, it would be non-designed. It would be senseless, with no connection between the appearance of the map and its aims. If we rush through our work, making choices with little thought, we run the risk of producing something non-designed. And when we fail to design, we run the risk of producing cold, inhuman results:
The top map is of the tributaries of the Mississippi River, and the other is of noise predictions for a wind farm (previously seen on Cartastrophe). They’re both a mess, and neither give a feeling like there’s a human behind them. When we fail to design, we produce something that lacks thought, and our readers detect this. If a map is a medium of communication between humans, these ones feel like there’s not a person on the other end. We look at them and think: “What human would make such decisions? There must be no one there.” The result is what I call uncanny cartography.
When we put our thought into our maps, our intelligence shows through in the final product, and it allows an empathy to travel through the map. Look again at Eduardo Asta’s map:
There’s no doubting that a lot of thought went into it. I can immediately perceive that an intelligent being created it, in a way that’s not so apparent with the uncanny maps above. I get a sense of another person (or persons) with an aesthetic taste and preferred style. It feels more comfortable to interact with, because I’m in dialogue with another human, not a mysterious map-producing algorithm that I can’t empathize with or understand.
We also fail to think, and therefore design, when we rely upon defaults. Software defaults are the antithesis of design. Our word processors start with a default typeface and font size. When we open a GIS program and load in a shapefile, our polygons get styled in a pre-set semi-random color. This is, by and large, a useful thing — it would be an annoying chore if we had to set our display parameters before we were allowed to see the data we’re loading in. But these defaults are not design.
Defaults are not choices. I didn’t choose the pink color for the land above, nor the purple rivers. The software made the choice, and the software doesn’t have my specific goals in mind when it picks colors or line weights or whatever. Therefore, by our simple definition, defaults are not design. Some software engineer years ago and thousands of miles away made a guess as to what your goals might be, but they’re pretty likely to miss. To accept a default, without thinking, is to abdicate our responsibility to design.
Again, defaults are not evil. They are useful, but we fail to design when we don’t think about them. Smarter defaults are great; it would be wonderful if I had software that always made good guesses about what I wanted to do, and put together a great-looking map without much input. But I would still need to look over what it’s done, think about if those choices align with my goals, and then accept them. Default becomes design only once you’ve given that human nod of approval. Remember that the software is a tool. It should ease our labor, not our creativity.
To rely on a default, or otherwise not think about our work, is to fail to design, and to create a product which lacks humanity. This is the second way in which design is human: it requires a human on the generating end, because design expresses humanity. When there is no design, there is no humanity. And that produces alienating works that no one wants to engage with (and if you want to communicate with a map, you’ve wasted your time if no one wants to look at it long enough to learn your message).
Design For Humans
There’s a strong sense of a person on the other end, not a set of automated defaults. But what’s also interesting to me are the non-informational parts of the map. The surfer, the palm trees, the brush strokes, etc. The parts of the map that don’t really tell you any geographic information. What’s the point of including them? They appeal to the senses, and they entertain. Doing good design requires paying attention not only to what is necessary, but also what is unnecessary-yet-pleasing. This is something Don Norman talks about in his book Emotional Design.
Humans love unnecessary things, and this is what makes us fairly unique and awesome. My favorite example is how, in the 1960s, the US government spent an insane amount of money to send people to the moon. There were political goals, and scientific ones, but ultimately, we did it in order to take pictures like this:
Project Apollo is arguably the most amazing thing people have ever done, and it was quite unnecessary. It didn’t reduce poverty or violence or deal with any other crisis. It was about taking awesome pictures (to grossly oversimplify it). And it cannot be explained without understanding what is beautiful about humanity: that we are not driven solely by instinctual necessities of food, shelter, and reproduction. We find the purely functional to be unsatisfying.
Here are two maps of protected areas in the United States:
Both maps have the necessary information — trails, campsites, amenities, terrain, etc. But one of them stops after telling you what you need to know, while the other one goes well beyond that to paint a beautiful, satisfying picture of the landscape.
Which place do you want visit? Remember these are representations; neither landscape really looks like that. But aesthetics matter, and they influence our perceptions of these places we’ve never been. Design without appeal to human aesthetic and emotional senses is frequently empty.
To design maps for a human audience, therefore, means not simply encoding data. It means paying attention to the palm trees. This is the third way in which design is human: design requires understanding humans, and their taste for unnecessary, but satisfying, extras.
So there you go. Design is natural to humans, requires a human at the originating end, and works best when we remember there’s also an irrational human at the receiving end. Three thoughts about design, which I happened to be able to conveniently wedge under the title of “Design is Human.” I do not argue it’s the ideal structure to place them in (the third one doesn’t cleanly tie into the definition I gave), but it works well enough for now. Please feel free to take these thoughts and refine/remix them into a coherent view that satisfies you.
Continuing my trend of recording tips & tricks that I am commonly asked about, I thought I’d share my method for creating type knockouts in Adobe Illustrator (please note that I have no idea if that’s a proper use of the term, nor do I know what other people call them).
In the above image, the situation at left happens all the time. You’ve got some type on the map, but it’s hard to read because all of the other stuff on the map is getting in the way. The solution, on the right, is to selectively erase bits of the map in order to make the type more legible.
There are a few ways of going about this, each of which has some limitations (including the one I’m going to show you). Two common solutions are deleting linework and adding halos. The problem with the former is that it’s destructive. If you move the label and want to put that linework back, you’re out of luck — it’s gone (though you could keep it backed up in a separate layer, or pull it from an older file, but these are time-consuming). Instead, you could try adding a halo. It’s a great idea when the type sits on just one color, but it doesn’t work if a label has multiple background colors.
So, when I can’t do a halo, I make use of a different method, which relies on…
In Illustrator, we can make objects more or less transparent. When they are completely transparent, they become invisible.
But, it also lets us make parts of objects transparent as well. And that’s what we’re going to do. We’ll make just pieces of those map lines completely transparent, so that they are still there (in case we ever need them again), but cannot be seen.
To do that, we need to use opacity masking, which is a way of telling Illustrator how transparent to make things. The terminology gets a bit confusing here, as Illustrator has two ways of describing the same thing. Objects can have varying transparency (how see-through they are), which is sometimes instead called opacity (how not-see-through they are). Both words get at the same idea, just from opposite perspectives.
So, let’s set up an opacity mask, and I’ll explain as we go along what it is and how it works. To start, we need to first select the map labels that are hard to read, the ones that need the features underneath to disappear. Copy those to the clipboard with Cmd-C (or Ctrl-C, if you happen to be on a PC for some reason; mentally replace “Cmd” with “Ctrl” for the rest of this tutorial and you’ll be fine). We’ll make use of them in a while.
Now, find a layer of map features that needs to be knocked out, then select its appearance. That means clicking the little circle next to the layer name. This tells Illustrator you want to do something to affect how the whole layer looks. Like, for example, changing its transparency.
Now open up the Transparency panel. Notice that there are a couple of little squares that appear in the panel (if you don’t see them, click on the icon in the upper-right of the panel and select “Show Options”). The one on the left shows a little preview of everything in the layer. The one on the right is greyed out and usually marked with something like a symbol for “nothing going on here,” depending on your version of Illustrator. If you have an older version, there won’t be a square on the right at all, just an empty space — this is fine. All the things I’m describing exist in the last several Illustrator versions, but they may look a little different.
Double-click on the square on the right, or click “Make Mask.” Unless you’ve messed with some defaults, you’ll see the square on the right turn black, a box marked “Clip” will get checked, and all the artwork in the layer will disappear.
You’ve just created an opacity mask. Here’s how it works: this is a special kind of layer, which exists parallel to your “real” Illustrator layer, and which tells Illustrator to make certain parts of the real layer transparent or not. If part of your opacity mask is black, that tells Illustrator to make the corresponding part of the real layer invisible. If a part of your opacity mask is white, the corresponding part of the real layer is given no transparency. And you can go in-between: if you put some grey in your opacity mask, it makes the corresponding part of the real layer partially, but not fully, transparent.
Right now, the opacity mask is completely filled with black, and that tells Illustrator to make the corresponding layer completely invisible, which is why it disappeared. Uncheck the box that says “Clip,” if it’s checked. Your mask turns white, and your art reappears, because white means “0% transparency,” while black means “100% transparency.”
Alt-click on the opacity mask (the square on the right). Now, your map disappears and you’re taken into the mask, which is currently empty. Now to draw a black circle, and put it in a spot where there’s some artwork in the real layer. Notice, on the transparency panel, you can now see that black circle appear in the preview on the right.
Next, let’s Alt-click on the square on the left of the Transparency panel. This takes you back to your real layer. You can Alt-click on these two squares on the Transparency panel to alternate between the layer and its mask. When you return to the layer, notice that part of your artwork has been made invisible, exactly where you drew the circle. The black circle in the opacity mask is telling Illustrator to make the corresponding area in the layer 100% transparent, meaning invisible.
Alt-click on the opacity mask to go back to it, and delete the circle. Now, you could painstakingly draw little black circles or boxes everywhere you want to hide the linework, but that’s kind of annoying. Instead, let’s do this smarter. Remember those labels you put on the clipboard? Let’s use those. Paste them in place using Cmd-Shift-V. This is different from pasting with Cmd-V. Pasting in place makes sure the labels appear in exactly the same position as they were when you copied them, so that these labels you’re pasting in will line up exactly with the real labels.
Now, make those labels black, and give them a black stroke. I usually make the stroke around 2pt thick, and give it rounded corners. Your labels, inside the opacity mask, will look something like this:
Now, Alt-click out of the mask. You’re done! Your linework on this layer is now knocked out. The opacity mask has black areas, in the shape of your labels, plus a little extra (from the stroke you gave them), and that means your linework has turned invisible in the area of those labels, plus a little beyond.
It’s important to understand that you now have two copies of these labels — the real ones in your map, and a separate copy in the opacity mask. If you move a label in the map, the copy in the opacity mask doesn’t change. You’ll have to re-do it.
This is a similar problem to having to fix things if you were deleting linework, but it’s a little less hassle to fix and it’s non-destructive. Also note that you’ll have to repeat this process for each layer of artwork you want to knock out.
If you want to work a little more efficiently, you can actually draw/copy/paste/etc. inside the opacity mask while still viewing the art layer. Instead of Alt-clicking to go into the opacity mask, just plain click on it. You’re now editing the contents of the mask, but you’re seeing the layer. So, if you can keep them mentally separate, it’s a nice way to see how you’re affecting your art while working in the mask.
Instead of completely knocking out a layer, you might also instead try making it partially transparent, as I did in this example:
Here, I set an opacity mask with a copy of my type, but I didn’t make it black. Instead, I made it grey, which tells Illustrator to make the art only partially transparent. The darker the grey, the more transparent, until you get to black, which is 100% transparent.
Finally, in case you were curious about the “Clip” checkbox, that just tells Illustrator to set any areas of the opacity mask where you didn’t draw artwork to black. So, at the beginning, when we made the mask, there was no artwork in the mask, and so everything was turned to black. If we’d drawn a white circle in the mask with the “Clip” box checked, the circle would stay white, and everything around the circle would remain black.
So, that’s opacity masking for type knockouts. It’s not a perfect solution, but I find it pretty workable, and it’s pretty quick once you get used to it. Hope this writeup helps!
Since at least the time I started my river maps project, I’ve been interested in presenting the natural world in a more stylized visual language. It started with just rivers, but I’ve also been working on-and-off for the last couple of years on a map that also tackled terrain and vegetation. So, here it is. My beloved homeland of Michigan, in a highly generalized and stylized form.
I’ve straightened everything out into 45º angles, and used Tanaka lines to show the elevation. The green dots are actually based on land cover data. I’ve made them kind of sparse so that the rivers can be seen.
File this one under, “stuff I spent a lot of time making, and now don’t know what to do with.” The best I could think of doing was blatantly commercializing it by sticking that “buy” button up there. But, you can also just download the PDF above for free, which I hereby release under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. Note that in-browser PDF viewers may make the colors look pretty washed out.
I think of this project, along with my river maps, as fitting under an idea I call “natural modernism,” in which the natural world is presented in the same sort of highly-abstracted, geometrically-precise visual language that we often apply to the constructed world on maps. Think of metro systems, rectangular street grids, perfectly circular dots representing locations of cities, etc. When it comes to nature, though, we usually embrace the organic and chaotic shapes that it holds. This is probably a good idea, and I don’t propose that natural modernism become some sort of standard practice. It’s a fun way to look at things, though, and I find, increasingly, that a lot of my work boils down to presenting things in new and unusual ways.
Some months ago, I came up with a little joking idea: what if, instead of hexagonal or square bins, cartographers used Penrose tiles?
A Penrose tiling is a form of tessellation. It’s fun and unique in that it fills the entire plane, but has no repeats. Wikipedia has more detail about how these things are cool. Mostly, I thought of them because they look interesting and are sort of regular, without being too regular.
So for fun, I made a couple of maps using Penrose bins.
I can think of no proper cartographic use for Penrose binning, but it’s fun to look at, and so that’s good enough for me.
To create the tiles, I found an SVG of a Penrose tiling here: http://faa.hu/new/english/parquet1/index.php. Then I pulled it into QGIS and resized it to fit appropriately on the US and part of Canada when in an Albers Equal Area conic (CM: -96º, SP1: 20º, SP 2: 60º). Then I did zonal statistics in ArcMap (for population density and land cover) or a spatial join in QGIS (for the point data of Atlas of Design sales).
If you want to give it a try yourself, I’ve put the shapefile here: https://www.dropbox.com/s/soakfi8z5cp7by6/Penrose%20Tiles.zip?dl=0.
While I can’t think of a use for this presently, who knows what the future will hold? Silly little experiments like this sometimes become valuable later on.
I use Twitter mostly, so this is my only medium in which to share thoughts that exceed 140 characters. I usually only put self-contained, finished pieces here, but today I’m going to just toss out a few random musings (also I’m sick and have not slept much for 4 days, so forgive any incoherence).
What if we made a cartography “textbook” based almost entirely on existing online content?
Most days, I find some cool mapping-related thing on my Twitter feed. Practical mapmaking advice, bigger-picture criticism/analysis of cartography, etc. Something which aims to educate and enlighten (I like to think that a few of the posts on this blog could likewise be described this way, too).
There’s all kinds of good sharable stuff out there, and it got me to thinking: what if we compiled it all into an intro cartography guide? I get emails from people who ask me how they can get started learning mapping, and I never have a useful answer other than, “go to a university like I did.” But that should not be the only answer, especially when we look at, for example, how many people learn coding by reading free online resources.
The advantage to using existing content is it means that no one really has to write anything new. I suspect that, scattered around the Web (blogs, free online journals like Cartographic Perspectives, Wikipedia, etc.), there’s pretty much everything someone needs to know to get a decent start to quality mapmaking. It just needs to be curated and compiled.
Specifically, it needs experts from the community to:
- decide what subjects should go in the textbook, in what order;
- track down existing writings that address these subjects;
- occasionally flesh out the skeleton by writing a small amount of material to connect pieces together, or introduce broad themes; and
- maybe come up with some practical exercises so that people can put this stuff into practice.
I don’t know, maybe this has all already been thought through and is underway somewhere else. There are certainly various useful lists of map resources out there that I’ve seen, but I don’t think any of them cover everything needed to go from zero to “capable of making a variety of decent maps.”
Certainly, the end result won’t be the same as a coherent text written by a focused author (or group of authors), and the student must be willing to put up with the patchwork nature of the guide, but I think it would fulfill a need nonetheless. Plenty of people want to learn mapping but don’t have access to formal channels.
Also, this idea seems like a lot of work, and I am overburdened already and likely can’t do most of the lifting myself. Maybe just provide counsel and big-picture input. But someone awesome should take this on and perhaps brand it as a revival of my forgotten NACIS Initiative for Cartographic Education. I feel like if we all get together on this, it wouldn’t be a lot of work.
Anyway, scattered thoughts from the mind of a convalescent.
I’ve had occasion, from time to time, to show my colleagues in the UW Cartography Lab the technique I use to combine shaded relief with other map layers in Photoshop. After a recent request to share the technique again, I decided to make a video, so that people can watch at their own convenience. So, if you’re interested in this:
then watch this:
(make sure to view in HD, so you can see the details I’m talking about). If you’d like, you can also follow along with the same file I’m using: https://www.dropbox.com/s/6teczksvgajrxdb/ReliefTutorial.psd?dl=0
I’m constantly assembling, in my mind, a toolkit built out of little tricks that I see other cartographers pull off. I take pleasure in the small things. The big picture is important, and certainly we need to focus on telling a clear story that looks great, but it is the details that always interest me most: a well-done coastal effect, great typography, or a smart tweak to an old, standard symbology.
In that spirit, I’d like to take a minute to promote a couple of nice ideas which come from the Historical Atlas of Canada. Geoffrey Matthews served as the Cartographic Editor for its three volumes, the last of which was published in 1993. During my introductory cartography course, the instructor pointed to it as an example of one of the final great works of the manual cartography era, and I have found things to appreciate in it ever since.
There are three nice things I’d like to share…
“In-situ insets” is a term I just made up to explain what’s going on above. Maybe it has a real, accepted term already. Perhaps you could call it “lensing” instead? It is as a magnifying glass, dropped over the terrain. Instead of separate inset maps that zoom in on areas like Vancouver or Toronto, the authors expand these areas and then plop them right down in the middle of the map, covering part of the basemap. For comparison, here’s a map of Canada all at the same scale that I swiped from Wikipedia.
Admittedly, the geography of Canada helps the authors here. There’s not much going on nearby that needs to be shown for the stories they’re trying to tell, so it can be safely covered up. Creating in-situ insets requires some fortunate circumstances, but when they come together, I think it’s a fabulous idea. I think forcing people’s eyes to shift to a separate inset map is disruptive and reduces their appreciation for the spatial context you’re trying to show. Keeping everything in one place, on one map, is more coherent.
Sometimes, instead of an in-situ inset, the authors do something like this:
The greyed out section of the main map and the arrow to the inset create a strong, nice-looking connection. So often, when we want to make an inset map, we end up putting it in a box, separated from the main map by a line. But I’m wary of introducing extra dividing lines into a map layout; I think it’s done way too often, and it prevents the various page elements from being seen as a coherent whole. The setup above is a nice way to have an inset without having to separate it from the main map. It is seen more clearly in its spatial context.
I’m not sure how I feel about the extruded, pseudo-3D perspective, but I expect this idea would work just as well in 2D.
Gridded Proportional Symbols
Finally, something nice that has nothing to do with insets. I like the Historical Atlas of Canada‘s use of proportional symbols that are gridded, so that they can be be easily broken down into countable units. Here’s an example:
In many maps, these would simply be treated as proportional squares or lines, but in the Atlas, they’re broken up into units (I’ve seen the New York Times do similar). So, a reader can look at the whole and make a quick comparison, or they can take a moment to actually start counting if they’d like to dig out the actual number. Normally it’s very difficult for a reader to get an estimated value from a proportional symbol, but the grid makes it much easier. I like to call these “aggregate symbols,” as they’re proportional symbols built out of many individual pieces.
Here’s a second example, which we saw in the last section:
This map takes things a step farther and color-codes the units, adding another layer of data that, importantly, doesn’t interfere with the big picture. If you want to see the overall pattern, you can just look for the tallest stacks. If you want to dig deeper, more data are there, but they’re not in the way. It can be read at multiple levels, which is quite an excellent goal to aim for.
So there you go! A few nice tricks from a great product. They’re little things, but I think that small details is what a lot of good mapmaking comes down to.
Friends, as many of you know, I am one of the Editors of the Atlas of Design, which is a book which NACIS publishes every two years. It’s a showcase of some of the best and most beautiful cartography around the world. We’ve recently opened submissions for the 2014 edition, and I very much hope you’ll think about submitting your work to us. Visit atlasofdesign.org/call for more details.
Also, I hope you’ll help us in spreading the word. The more people we reach, the better sample of maps we’ll have, and the better final volume we’ll produce. I would also especially like to ask for your help in reaching people outside the English-speaking world. We’d like this to be a book about great cartography throughout the globe. Our call for submissions and our submissions form are, thanks to some awesome volunteers, available in a dozen other languages. While our volunteers make it possible to communicate outside of English, we need help in reaching out to mapmakers who speak those languages. I and my fellow editors are based in the US, and our colleagues and professional contacts are primarily in the English-speaking world. If you can help us expand beyond that sphere by alerting your colleagues, posting in non-English forums, etc., we’d be much appreciative. We know it’s going to take time, but we’d like the Atlas of Design to represent the maps all of us make, no matter where we are.
As promised several months ago, I’ve finally put together some instructions on how to create shaded relief using Blender. I’ve created a 72-minute, six-part video series that walks you through the process (don’t worry; it doesn’t take that long to do it every time, just your first time). Please share it around! I’d love to see other people making use of this technique, and extending it beyond what I’ve done.
NOTE: Since I put together this video series, some of my colleagues have made some great contributions that you should be aware of. First off, Ryan Lash (@RRLash) has put together an awesome step-by-step explanation of everything that goes on in the videos, so that you don’t have to hunt around to find the step you missed: https://docs.google.com/spreadsheets/d/11HHMdKawdbXNkkxWdW82-HgHE2k3Tojg7P_X75ojb50/edit#gid=0. Second, check out the comments below. Morgan Hite has been using BlenderGIS to ease some of the issues with Blender not handling spatial data natively, and he’s put together a description of his basic workflow. I’m very happy that people are using and, more importantly, extending the material I’ve put together her.
Make sure you’re watching these in HD, otherwise you may have trouble following along when I click buttons. If you want to follow along with the DEM I am using, get it here: https://www.dropbox.com/s/p70l34zf4grh63j/Blender%20Demo%20DEM.tif
Meanwhile, if you just want to look at pretty things, here’s the relief I made during the tutorials:
Throughout my brief cartographic career, I’ve been a fan of shaded relief, but I’ve also struggled to create one that I found satisfactory. I haven’t had the time to learn how to draw relief manually, and so I rely on the old standard digital hillshade algorithm, plus the judicious application of Photoshop (having learned from folks like Tom Patterson and Tanya Buckingham how big of a difference it can make). I’ve also posted here on some efforts to do a bit of spatial analysis to improve the end result. But, I am still often dissatisfied with the final product.
Lately, though, I’ve been experimenting with something that I think could represent a substantial improvement over the standard techniques for doing a digital hillshade. I’ve been messing around with Blender, a free 3D modeling program.
I got started with Blender because I wanted to do some oblique terrain maps (a la Natural Scene Designer), and because I also wanted to do some 3D printing for a project I’m working on. But I also realized it might be the solution for shaded relief. So, I used a DEM to create a 3D terrain mesh inside Blender, then positioned my camera directly above it, and started doing some rendering. Here’s what I’ve gotten so far.
First off, here’s one that mimics what you’d get out of ArcMap or some other standard GIS algorithm. Nothing special, but it’s a good starting point for comparison.
It’s pretty plain. The standard hillshade algorithm looks at each pixel, determines its slope and aspect, and uses that to figure out how bright it should be. That’s about it. It doesn’t look at where each pixel sits in the context of its surroundings, or figure out how light bounces around or causes shadows. It produces decent results, but it’s pretty simple and unrealistic. So, let’s add some more realism:
This one is much better. All I’ve done here is turn on two things: shadows and light bounces. Places facing away from the sun are now in shadow, with the shadow length depending on the height of the terrain. The light bounces allow us to still see the shadowed areas, though. Blender figures out that the backside of the mountain, while not receiving direct sun, will still be illuminated by light striking nearby ridges and scattering around. So, it traces the path of the light rays and determines how light moves around the scene to create a much more realistic result. In ArcMap, you can turn on shadows in your shaded relief, but it just makes everything black if it’s caught in a shadow; it’s not equipped to re-light those shadows by looking at light scattering.
We can also change our light angle, or strength, to simulate different times of day. Here’s one with a low sun angle, coming from the west.
Again, you could aim for something like this in a GIS program, but it’s not likely to turn out quite so nicely, because it doesn’t have the ability to calculate the way light bounces around and dimly illuminates those east-facing slopes. They’d just be in a solid black shadow. Or, if you didn’t turn on shadows, they’d be lit as though the mountain isn’t in the way.
There are a lot of parameters you can change in Blender that simply aren’t available in a GIS program, as well. We can, for example, add a second light source. Here’s the same image as above, except with some moonlight coming from the southwest:
We can also do things like adjust the “size” of the sun, giving us more of a point-light effect, as though we’re on a planet without an atmosphere to spread out the incoming rays:
Now it’s as though we’re on the moon, or some other harshly-lit place, with much sharper shadows.
Finally, my favorite is probably this one:
I think it looks the closest to a handmade relief. It’s still not the same, but it’s probably the closest I’ve seen an automated algorithm come to something human-produced. It’s got a nice fuzziness that comes from turning down the number of light paths that Blender calculates. I’ve also made the surface smoother, which gives it a bit more specular reflectivity and produces an interesting effect that I quite like. Since we’re working in a 3D modeling program, we can change what material the surface is made from, if we want to try interesting things. Here’s one more where I’ve made the terrain out of a glossy material, instead:
In the end, I think this could be the way to go for a lot of my future shaded relief needs. It does, admittedly, take longer to accomplish. Each test render can take several minutes. But I think the quality is a lot higher. I don’t think this is necessarily the be-all, end-all, last word in doing automated relief. It could probably be improved further via some of the same techniques people use to improve standard GIS hillshades. But I think it’s a better foundation than the standard algorithm, and I’m looking forward to playing around with it more.
At some point in the future, I’m hoping to put together instructional materials on using Blender for shaded relief. But I don’t think I’m quite ready yet. I don’t know the program well enough to be able to say that I’m doing things in the most efficient and effective manner, and I haven’t quite pieced together the best way to explain everything clearly. In the meanwhile, I encourage you all to experiment with it, and to tell me if you’ve tried anything similar in the past. I imagine I’m not the first to think of this.