View Full Version : Procedural mapping style experiments
03-21-2010, 05:42 PM
I've been experimenting recently with recreating various map styles with my procedural techniques. The first style I've attempted is from a 1914 Hammond atlas:
It was a cheap atlas, and it shows; registration is pretty iffy, there are ink blobs and stripped characters (there's supposed to be a dot in the middle of the "capital" star for Kingston, for example), and the label placement is pretty sloppy. Still, it's a fairly simple map, so a good first attempt.
First off, I grabbed geodata of Jamaica's coastline, cities, roads, and rivers; these are from different datasets, so they don't quite mesh up, but the effect is there:
The first thing I do is place the city circles; coastal cities are placed so the circles osculate the coastline (except for the capital). This is easy to do procedurally; just find the closest point on the coastline and move the circle towards or away from it:
03-21-2010, 05:47 PM
Next are the mountains. The original map uses crescents of short strokes to show the general "downhill" shape of Jamaica's ridge of mountains, and its highest peak (Blue Mountain). With geodata, we can grab this too:
We place overlapping crescents along the ridgeline:
and stroke them:
This still looks pretty mechanical, though. We can improve the look a lot by adding just a little bit of randomness; it looks like the strokes on the original map were hand-engraved, so this isn't a stretch:
03-21-2010, 05:51 PM
Rivers and roads are next. Again, we can use our geodata to place them. The lines in the original map seem to be mere approximations; the actual road network is slightly different, and I can't find the north-eastern river in my river system data. (Or perhaps the roads have changed and the river dried up in the last century. Hard to say.) At any rate, the roads and rivers shown on the original map are:
We will want to smooth them out. At this point, we have to slightly change the north-eastern road; in actuality, it seems to be a coastal road, but it has to be drawn a little bit inland (or it'lll overlap the coast).
We add back in the mountains and change the line widths to match the original map:
03-21-2010, 05:59 PM
We can now try to get the colors and fills right. The atlas is a century old, and the paper is a little yellowed; at the same time, the inks aren't the deepest black. In addition, the fills (blue sea, pink land) have to be added.
Finally, we add the rest: the sea routes and labels.
Compare to the original map:
The colors are a little off; it looks like the inks have faded (or were never too dark to begin with). The font doesn't quite match (I used New Century Schoolbook, which is a good but not perfect match to Edwardian and late Victorian map typefaces). But even beside these two things, there's still something missing; a certain fuzziness, perhaps?
03-21-2010, 09:48 PM
Well, in the original, the text was distressed to the point that, at least in thumbnail, you look like you have Port Autonio and St. Anus Bay. I really like the Anns/Anus thing. That, sadly is how I am...
I don't think you're wrong about the fuzzyness, new map compared to old map - it would of course be contrasting. Also I feel your ocean lines are very opaque, they could use some dampening as right now it seems like they are fighting with the land for attention :)
But the big difference is the faded vs non-faded look. But good work - very nice :) ... I'll just toss a rep in your direction :)
03-23-2010, 03:04 PM
Well, I've fixed the colours; they're about as close as I can make them. It's still a matter of fuzziness, though, and the brutalized font. (St. Anus Bay, indeed.) Still, it's a nice style, if not especially ornate. I may use it on a bigger map at some later time. My next project in this thread, though, will be another atlas style.
03-23-2010, 10:00 PM
I'm fascinated by this project - and impressed. There's something comfortable and familiar about the map and your recreation.
03-24-2010, 12:29 PM
What an utterly cool project. Rep on the way! I'm not sure why its so difficult to reproduce the colours...wouldn't a straight colour picker (say 3X3 average) in photoshop do it? To get the bleed on the lettering it might with worth trying an outer glow layer style using black / multiply / low opacity....might help?
03-25-2010, 11:41 AM
Edited for weird double post. This didn't show up an hour ago...
03-25-2010, 12:01 PM
For the faded look, you might add a white layer below your artwork and then reduce the opacity of your artwork till it looks properly faded. That's in photoshop, you should be able to do something similar in illustrator. I'd check, but I'm booted up in windows ("This is your brain. This is your brain on windows.") and all my adobe apps are on mac.
I have an idea and a couple tuts for distressed text. My idea is to duplicate your text layer, rasterize it and apply Filter>Brush Strokes>Spatter. I'd suggest a very light, blurred spatter. Because the prototype seems fairly hard-edged, just messy, I'd probably apply a threshold to the result.
In other news, tutorials:
For Photoshop (http://freeyourdesign.com/photoshop/photoshop-tutorial-distressed-grunge-text/)
A nice video for Frustrator (http://www.layersmagazine.com/distressedtype.html)
A texty tut for 'strator (http://www.layersmagazine.com/distressing-text-with-live-trace-in-adobe-illustrator-cs2.html)
03-25-2010, 02:21 PM
I'm not sure why its so difficult to reproduce the colours...wouldn't a straight colour picker (say 3X3 average) in photoshop do it?
I tried it, but was only moderately successful. (There's also colour issues with the conversion from PDF to PNG, for some reason.)
To get the bleed on the lettering it might with worth trying an outer glow layer style using black / multiply / low opacity....might help?
My idea is to duplicate your text layer, rasterize it and apply Filter>Brush Strokes>Spatter. I'd suggest a very light, blurred spatter. Because the prototype seems fairly hard-edged, just messy, I'd probably apply a threshold to the result.
Both of these are probably good ideas, but I'm using neither Photoshop nor Illustrator; this is is all done procedurally in Asymptote (http://asymptote.sourceforge.net/). I'm using Illustrator for rasterization of the PDF (because it's the best tool I've found for the task; some of my experiments are in an earlier thread (http://www.cartographersguild.com/showthread.php?6639)), but nothing else.
Really, I'm quite pleased with the results; the distressed and fuzzy text is a slight issue, but given the size of the original (Jamaica is only about an inch and a half long in the atlas), it's probably neither surprising nor a big problem.
04-22-2010, 10:17 PM
Another day, another mapping style.
This one's from my "Reader's Digest Great World Atlas", from about 1960.
The coastline I used on the last map is too low-res, so I had to find a higher-detail one:
We add in rivers from the same database as earlier. There's again a missing river:
04-22-2010, 10:29 PM
The map has both roads and railroads. (Aha! That was one of the problems with the previous map -- obviously, a map from 1914 would show railroads, not highways!) The railroad database doesn't give us as complete a network as on the old map, so I had to add in a few lines.)
Now roads, from the same database as the last map:
04-22-2010, 10:48 PM
A new feature of this map is that it shows altitudes. The levels are at 6000, 600, 150 feet below sea level, and 600, 1500, 6000 feet above sea level. I grabbed a 1km resolution elevation grid and ran a contour finder, giving me these:
They're much higher-frequency than (and quite different from) the ones on the old map. (Ah, well, they didn't have satellite radar topography back then.) The complexity looks like it might be too much, but let's put in the fill patterns:
Comparing to the original:
They compare quite well, I think, with some problems which I'll look at in the next post.
04-22-2010, 11:14 PM
In the last post I mentioned that there are some issues with the recreation. (Undoubtedly there's lots, but these are the two I'm most irritated with.)
First, there's a problem with the hatching in the sea area. Take a look at these two details from the maps:
The thing I notice about the original map is that the lines seem to fit nicely together; there's no partial lines, and what lines are there seem to meet up nicely at the corners. This is not at all what the lines in my recreation do, and I'm not certain I know how to get that effect procedurally (or, indeed, manually, at least not without an enormous amount of work).
The second problem is probably much more solvable. Again, look at these two details, of low-altitude land:
They both consist of blue stripes overlaid by yellow ones, but thanks to the magic of subtractive colours, the original map gives us a green! I'm still working on using CMYK to get this effect, but it's not going as well as I'd like; adding the "spot blue" (from the seas) and the "spot yellow" (from the mountains) doesn't give me the green effect I'd like. Work is ongoing to get the lowlands to look right.
04-23-2010, 08:15 AM
The lines not meeting up looks like the problem is that they are different. Your vert lines are evenly spaced but your horiz lines have a wide white and thin teal. For the yellow thing, those may have to be on a new layer set to overlay.
04-25-2010, 09:24 PM
Your problem with the green caught my attention as something SVG filter effects could deal with. I know you are using Asymptote, not SVG, but I decided to try anyway.
values="1 0 0 0 0.5 0 0.5 0 0 0.5 0 0 0.5 0 0 0 0 0 0.6 0 " />
04-26-2010, 12:06 AM
OK..I'm loving where this process is taking you - and intrigued by the above svg experiment. Looking good!
04-27-2010, 03:47 PM
Hmmm.... I was going to post a bunch of experiments I did, trying to find the "correct" colours which combine to give the right green impression ... then I actually tried it with the colours I used in the actual map, and got about the right shade of green! (Apparently, I've been looking at the combinations too close-up.)
This is done purely by setting the "yellow" color to 50% opacity.
Your problem with the green caught my attention as something SVG filter effects could deal with.This is neat! I'm most interested in how you captured the minor noise-like effects of the paper grain; that's something I hadn't even considered, and yet my brief experiments in that direction do increase verisimilitude. Thanks!
However, this (and the yellow+blue=green thing, too) does bring up a concern I have: how much should I worry about printing artifacts, or printing processes, in these recreations? The next recreation I'm working on has halftoning, and there's no way I'm going there; I'll just stick to smooth shading of solid colours. But in the 1914 map, I included the waviness of the hatching, and it improved the feel of the map quite a bit. Should I do all of this in a more "simulationist" mode, making all of my colours partly transparent and having the final effect equivalent to inks on paper?
How far do you go in emulating a map style?
04-27-2010, 08:41 PM
This is neat! I'm most interested in how you captured the minor noise-like effects of the paper grain; that's something I hadn't even considered, and yet my brief experiments in that direction do increase verisimilitude. Thanks!
It's a fractal noise turbulence filter that I then use as both a displacement map and as a mask. I also apply a Gaussian Blur and multiply everything with the background. Each colour has this applied separately.
04-29-2010, 05:53 PM
Great-looking reproduction - even if it doesn't look as old as the original it does have that same "feeling". A great way to simulate oldness while still allowing the map to be legible! I'll have to keep working in Illustrator before I get to this point, but I think I'll have to give this a try (with some personal modifications) at some point. Thanks for the info on how you did this!
05-06-2010, 12:49 PM
I like this experiment. I note that you are think how to reproduce the style more accurately. I think one of the keys to this is to remember the source of the original, a printing press. I think if your map was turned into masks for the printing press of the era it would end up looking much more like the original. Some differences that are clearly part of the printing process is the resolution and the color densities.
To recreate this best each color should be a separate layer with blur and noise should be applied to each separately to give slightly different effects. My reason for suggesting this is that in the printing process you can see they wanted some colors to bleed more like the yellow and blue. Others were meant to be sharper but suffered from flaws in the print proces, i.e. the J in Jamaica. Also all colors should be somewhat transparent, even the red and black to some extent.
To simulate the paper the base layer should be off white and a light bump map over it all to provide some texture.
I think you have definitely captured the style the maps were created in. My comment are directed at recreating some of the effects of how the maps were actually published. Definite cread for this.
05-11-2010, 10:45 PM
The next map I'm going to recreate is from my Prentice-Hall "University Atlas", from 1983. This is about as recent as I'm going to get (past that and we start to get GIS-produced maps, which are interesting but not what I'm targeting).
(Jamaica was at the inner edge of the paper and I couldn't flatten the atlas all the way, so there's a little distortion on the right hand side.) First thing to note is that the colours on this map are halftoned; as I mentioned a couple of posts back, there is no way I'm going to attempt to recreate that. (Or, rather, I attempted it but was unable to rasterize the image in such as way as to avoid any nasty Moire aliasing.) Solid colours it is, then.
First, though, there's the standard vector stuff. There are different icons for cities depending on their size, and Kingston actually gets the "shaded area" treatment:
Next come railroads. I finally figured out how to make them run under the city icons! (In brief, if you use Asymptote: clip with even-odd filltype against a path list containing the city icons and the bounding box.)
Roads are in a slightly transparent red ink. The spoked-wheel thing is an airport; why the original map put Jamaica's international airport in the middle of the sea, I don't know.
The map has contour lines at 8000, 6000, 4000, 2000, and 200 m below sea level, and 200, 400, 1000, 1500, 2000, and 3000 m above sea level. The same height map I used last time gives:
(Wow, I really like those colours!)
05-11-2010, 10:54 PM
One nice feature of the original map is the shading implying slope. This was the hardest thing to get right (and even so, I can't get the same slopes shown in the original). It's simple in theory: we can calculate the slope from the height field, take the dot product with a "light" vector, and shade (with blend type "Darken"):
Alas! The slopes in the mountains (in the east) are so high that there are very few slopes anywhere else. In order to show the slopes elsewhere, I change the shading to depend on the square root of the slope; this means that much smaller slopes will still be dark-ish:
The spatial scale is still too small, though. A Gaussian blur will take care of that:
So close, but too dark! I drop the opacity to 0.75 and cut back the darkest colour shown to be about 60% grey to get:
which is very nice (but, like I said, doesn't remotely match the shading on the original). The underlying grid is a little too visible, but I'll leave that for another day (as it's not too bad at this scale).
We add back in the vector elements to get a pretty good recreation of the original map:
05-11-2010, 11:03 PM
Now we come to labels. Take a look at the original map:
There are no fewer than four different fonts used in those labels! (Compare the capital Ms in "Mandeville", "May Pen", "Montego Bay", and "JAMAICA".) identifont.com says that one of the sans-serif fonts (the one used for "Spanish Town" and "South Negril Pt.") is Gill Sans, and one of the serif fonts (the one used for "Montego Bay" and "Kingston") is Perpetua, also by Gill. The font used for "JAMAICA" looks like a Didot pastiche. However, I have no idea what the fourth font (used for "Black River" and "Mandeville") is. Any ideas?
05-11-2010, 11:22 PM
It looks like an italic version of that sans font. Look at South Negril. Oh, and excellent job so far :)
05-12-2010, 12:01 AM
It looks like an italic version of that sans font. Look at South Negril.Hmmm....It certainly looks a lot like it, but I was worried about the lower-case "a", which is very different, and a couple of other characters. Looking at all of the characters of the font on my system again, though, it looks like the italic version does indeed have these differences!
Great! Thanks! Now I just have to find a font that approximates Perpetua (which is the only one I don't own); worst-case scenario, I use Didot.
05-12-2010, 01:44 AM
Well, thanks to Ascension's tip (good catch!), I've managed to put labels on the map:
Didot doesn't look as good with Gill Sans as Perpetua, but it works fine. The biggest remaining problem is the labels.
You may notice that the labels are all straight (unlike the original map), whereas I've had no problem with curved labels in the past. The reason is that to get better font handling, I've moved from pdflatex to xelatex; unfortunately, the latter doesn't yet have the ability to fit text to a path. I'm in the middle of writing a (very crude) method to do that, but it's not ready yet; when it is, I'll try to curve the labels and add the JAMAICA label.
05-13-2010, 03:08 AM
Well, I found Perpetua on my computer at work, got the curved labels working, touched things up a bit, and produced what I think is going to be the final recreated version:
05-13-2010, 03:28 AM
Looking great Gilgamec! The one thing I don't get is what the advantage of mapping in a procedural way is...does it mean that once you have the procedure sorted, you just have to enter a number of variables and then the map will draw itself?
05-13-2010, 05:39 AM
It's probably for churning out an entire atlas of similar looking maps.. which can come in very handy. Otherwise you tend to drift from look to look I would think? Good thread! (-:
05-13-2010, 07:23 AM
The last thing you might want to think about is giving it that spotty, halftone pattern, printed look. Completely optional because if it was to get printed the printed version would look spotty, but I'm just saying you could give it that look if you wanted to. Very well done, though.
05-13-2010, 11:35 AM
The one thing I don't get is what the advantage of mapping in a procedural way is...does it mean that once you have the procedure sorted, you just have to enter a number of variables and then the map will draw itself?Yes, it could work that way. In general, though, I use procedural methods because they let me use my programming skills to make up for my complete lack of manual dexterity and artistic talent.
The last thing you might want to think about is giving it that spotty, halftone pattern, printed look. Completely optional because if it was to get printed the printed version would look spotty, but I'm just saying you could give it that look if you wanted to. Very well done, though.I've done some tests in that direction. The biggest problem I've come across is in the conversion to PNG, actually; the (vector) dots, when rasterized, tend to create nasty Moire aliasing. I may fiddle with it some more, but as you said, it's not a big problem right now.
07-27-2010, 10:51 AM
I can't wait to get to a point in mapping where I can emulate some sort of style without falling back on one of Ascension's tutorials. Great work, man.
It's probably for churning out an entire atlas of similar looking maps.. which can come in very handy. Otherwise you tend to drift from look to look I would think? Good thread! (-:
This is something I'd like to eventually do with the world building I'm in the middle of doing. From overland to cities. One day maybe...
Again, great work...I'll be keeping an eye on this thread for sure!
Powered by vBulletin® Version 4.2.2 Copyright © 2014 vBulletin Solutions, Inc. All rights reserved.