You Should Make Maps
The most beautiful maps are not behind us: they will be made today, by people who cared enough to make them. That sounds like you.
Great maps require no formal training or credentials. I learned by trial and so will you.
The best contemporary mapmakers taught themselves: Eleanor Lutz is a bio PhD and learned cartography on her own. Illustrator Mike Hall sketched maps in his notebook during shifts as a security guard, and now has an agent to handle his map deals. Alex McPhee studied geophysics, decided he needed to map his native Alberta, got some open source geo-software and made one of the best modern reference maps.
Mapmaking is like cooking: you pick what you like to eat, and improve by trial. You’ll over-salt a few dishes, ruin a few pans and come out a master. You just have to pick some Territory to commemorate.
Just draw one!
Cartography is making the infinite Territory legible to humans, which sounds lofty but it gives you many ways to get to the same point.
Find some Territory you care about: your yard, your street, your neighborhood, your town, your favorite patch of woods. Get a pencil and paper. Mark what you care about. You’re now a cartographer. If you stopped reading and drew a map on a paper towel, I’d be satisfied.
You can make a map with charcoals and an easel, a stick and some sand, a pencil and graph paper, a grid computing cluster, some hideously expensive software, some there’s-no-way-this-is-free software, a drone with a camera, a satellite with a radiometer, all ways to the same end. There’s no “correct” way to make a high-effort map.
If you still want to use the computer to make a nice-looking map, read on.
⓿ Getting started
Here’s my map workflow, you’ll find yours soon enough:
1. Download geographic data: roads, rivers, lakes, hills, valleys, towns, lighthouses, etc.
2. Thin out, clean, futz with that data in free software programs QGIS and GDAL. Modern start-with-pile-of-data carto is about knowing what to leave off the map, so you’ll spend a lot of time sifting tangles of data for what you actually want to show.
3. Make the remaining data look nice in your graphic design software.
▼ There’s a big directory of links at the bottom of this page; if you need data, a tutorial, some inspo, check down there first. ▼
The Spatial Community – The upsetting part about learning cartography is the software, so you need computer pals to ask “why’s this broken?” The Spatial Community is a Slack channel where technical geographic information system (GIS) experts hang out, very friendly people who don’t mind questions from new mappers. Request an invite then join #cartography-designs, #gdal-ogr, #qgis, #data-sources and #newcomer-questions. Please ask questions when you get stuck! We’re here to help you!
Map School – glossary of map jargon.
Map Resources Page – links compiled by Robin Tolochko.If you’re on twitter, search #cartography or #practicarto and start asking questions.
❶ Install some free software
Install click-around map software
QGIS lets you manipulate geodata with relative ease and export an SVG/PDF to cute up in Illustrator.
QGIS – Download for Windows > QGIS in OSGeo4W > the 64 bit one will likely work for you.
Using a Mac?
QGIS – Download for MacOS > Latest release.
QGIS tutorial 1 – getting started with QGIS.
QGIS tutorial 2 – more QGIS tutorials.
Install type-around map software
You’re gonna install GDAL (Geospatial Data Abstraction Library), a command-line tool that lets you edit geodata without clicking around in QGIS. Learning to type your way through changing projections, cropping images, filtering data etc. will greatly speed up your mapping. It might feel awkward at first but it’s very useful; I hate coding and I still love command-line tools.
It came with the OSGeo4W package you downloaded above; find the OSGeo4W Shell it installed > type “gdalinfo --version” without the quotes > you should see something like “GDAL 3.0.3, released 2020/01/08.”
Using a Mac?
1. Install miniconda, a “package manager.” Head here > download and run “Miniconda3 MacOSX 64-bit pkg.”
2. After it’s done installing, open the Terminal app.Type “conda create --name mapenvironment”, without quotes. You can change “mapenvironment” to whatever you’d like; this is just creating an “environment” in which to place software.
3. Type “conda activate mapenvironment” without the quotes.
4. Type “conda install gdal" without the quotes. You should see a bunch of text scroll by.To see if it worked, type “gdalinfo --version” without the quotes. You should see something like “GDAL 3.0.3, released 2020/01/08.”
5. When you want to use GDAL: run Terminal, type “conda activate mapenvironment,” and now you can access tools like “gdalinfo” and “gdal_translate”
❷ Find some geographic data
You’ll encounter dozens of arcane file types but here are the main ones to look out for. All of these get worked over in QGIS and GDAL.
.SHP – Shapefile – stores vector shapes + associated data. Imagine you drew a hexagon and saved it as a vector file, but didn’t stop there: you also attached a table to that shape listing the hexagon’s name, when you drew it, its size in square meters, etc.
.GEOJSON – GeoJSON – also stores vector shapes + data tables.
.TIFF – GeoTIFF –stores raster data like satellite images, terrain data. Like a regular TIFF except it comes with georeferencing that tells QGIS where on earth to place it.
.GDB –GeoDatabase – Stores vector shapes + data too.
Where to get geographic data
Countries, Lakes, Rivers – Natural Earth supplies geographic boundaries and features; for a quick overview download the quick start kit, open the .QGS file in QGIS and see how it looks. Not great? Well, thats where you come in.
Roads – Natural Earth has roads, but not all of them. If you want to make a road map of your city, use OpenStreetMap data downloaded via the BBBike.org site. You zoom to where you want some data, draw a box, give it your email and it’ll send you a shapefile that you can view in QGIS.
Land cover (is that part of earth a forest? A town? A desert?) – Want to show what’s down there? If your map shows a big chunk of the world, 300-meter resolution Globcover 2009 data should work; find “A coloured version of the map in GeoTIFF format” on that page to get a file you can tune up in QGIS and Photoshop. For North America the Commission for Environmental Cooperation has a detailed 30-meter resolution dataset.
Terrain – the hills and valleys, a.k.a “shaded relief” or “hillshade.” This used to be drawn with graphite and airbrushes, now you turn satellite altimetry data into little computer-generated landscapes. You can get pre-generated terrain from Natural Earth: for zoomed-in maps, for zoomed-out maps, for just the U.S..
You can also roll your own terrain by grabbing elevation data for your map area from the Open Terrain Project and making your own (see step ❸).
Bathymetry (underwater terrain) – If your map includes undersea terrain, use the GMRT map tool to download data. Pick the rectangle tool at the top > drag a rectangle for your area > “create grid file”, file format: geotiff, mask: unmasked, grid resolution: maximum > download grid. You can process this into contours or a hillshade in step ❸.
Need something else? Time to start sifting the resources page down there ▼.
❸ Design your map
So now you have QGIS and GDAL installed, plus a folder full of geographic data. How do you turn that into a map? Someday you’ll get an end-to-end account (it’d take like 30,000 words and good screencasts) but for now you join the grand tradition of “follow a tutorial (check the resources pile at the bottom of this page ▼), ask your computer pals at The Spatial Community for help when you get stuck.”
For now, some general guidelines:
Reproject your data
Whatever coordinate system you project your data into, you gotta apply that same projection to all the other data in your map. It’s all gotta match!
Vector data is easy to reproject in QGIS. Raster stuff like imagery and elevation data is a bit more involved:
1. You can get into the weeds on picking a map projection, since you’re on the leaves of the old math problem of how to represent 3D stuff on a 2D plane. Luckily nobody’s navigating by your map, so just pick a projection that looks nice. Draw out a box enclosing your area of interest on projectionwizard.org and see if any of those look good. Or just default to Universal Transverse Mercator (UTM), nobody complains about that one.
2. Get a projection you like? Copy the PROJ string from projection wizard or look up your UTM zone’s EPSG code on EPSG.io
3. Feed that string or EPSG code into GDAL to change the projection of your data. You can also change projections in QGIS.
Make the terrain
1. My favorite part of maps is the topography. Make your own in QGIS or...
2. Try it in GDAL. The command line is a bit painful to learn at first but it will be much faster; making nice terrain requires a lot of experimentation, so you’ll need that speed.
3. If you want very nice terrain, make it in a 3D-modeling program (Blender). It’s free and not that hard if you follow the instructions carefully.
4. PLEASE draw your own terrain: Sarah Bell wrote two tutorials on how to render shaded reliefs in pencil.
Once your data’s cleaned up and you’re left with what you want to show on your map, you export an SVG/PDF out of QGIS and make your vectors look nice in Illustrator or Inkscape. For the rasters (e.g. terrain and satellite imagery) export a TIFF from QGIS/GDAL and edit them in Photoshop or GIMP. There are tools that make this more convenient, like the wildly expensive MAPublisher plugin for Illustrator, but they’re not necessary.
Find some maps you like and see how close you can get; I think of ’tography as more craft than art, so you can get real far by copying the masters. Raid the inspo column down there ▼.
Now you’re in the art zone: compositing in Illustrator, labeling, futzing with colors, upsetting back-tracks to your original geodata, adding cute ephemera like north arrows and legends, illustrations. Make it look nice. Real nice. I can’t wait to see your map ♡.
Some fantastic cartographers
Margot Dale Carpenter
Riley D. Champine
Jack Henderson & Pete Kennedy
Margaret Pearce Henrik Johansson
Mike Hall Carl Churchill
Whoever does the carto for Bellerby & Co.
💬 Join The Spatial Community Slack and get answers to your geo-questions.
QGIS: open source GIS software for Windows, OSX, Linux
GDAL/OGR: open source command-line GIS tools
Natural Earth: public domain data source for borders, countries, cities, natural features, and more
By Robin Tolochko
By RT Wilson
Tutorials & Tips
GDAL/OGR cheat sheet
Intro to GDAL
Intro to satellite data + GDAL
Common satellite data + GDAL operations
What the hell is a coordinate system anyway?
Square cartogram maker one, and two
Hex cartogram maker
Sankey diagram maker
Custom embedded Google Map and markers
Export Mapbox basemaps to JPEG
Color palette generator
In-browser land cover classifier
NACIS youtube channel: presentations and walkthroughs
Carl Churchill’s shaded relief tutorials
Daniel Huffman’s map tutorials
Command line cartography with mapshaper
Sarah Bell’s hand-drawn shaded relief tutorial No. 1 and No. 2
Paste-in- addresses geocoder
Change DMS coordinates to decimal degrees
Generate a DEM from LIDAR
Data sources: land cover, elevation
30m U.S. land cover (NLCD)
30m U.S. croplands
30m North American land cover
30m global land cover
100m global land cover
300m global land cover
100m CONUS shaded relief + land cover
30-90m elevation data
Elevation data finder: openterrain
Elevation data finder: opendem
Elevation data finder: opentopography
Elevation data finder: imagico
U.S. wildfire perimeters
Data sources: satellite imagery
Remote sensing basics
Google sheet of satellite imagery browsers and APIs
250m Blue Marble
Sentinel-2 + Landsat 8 browser: Sentinel Playground
Sentinel-2 + Landsat 8 browser: EO Browser
Download by lat/long from all of NOAA’s sensors
High-resolution imagery browser (expensive)
Tim Wallace’s satellite imagery resources
How to find the most recent imagery
Charlie Loyd’s imagery compendium