Introduction: 3D Print a Custom Raised-relief Map
This instructable will show you how to create a 3D printed model of any area of the planet's surface, using data collected by the Space Shuttle!
This guide will cover:
- Where to find this height data which you can download.
- How to use this to create a printable .stl file.
- Tips for the best way to print this on an FDM 3D printer of your choice.
- Ideas for how you might use this in different ways.
Last year I discovered a guide to producing such 3D prints by Steven Weidner and team (see this link), and then experimented using the method he describes with my own 3D printer. I wished to create this instructable to share this method with you, adding my own tweaks and tips, and adding 3D printing advice too for those wishing to do this themselves!
- FDM 3D Printer (author used Anet A6)
- Printing material (author used 1.75mm white PLA)
- Ultimaker Cura
- IZArc - I used 'Version 4.4'
- QGIS - I used 'Version 3.4'
- DEMto3D plugin for QGIS - Install from within QGIS, by clicking on 'plugins', then selecting 'manage and install plugins', then choosing 'DEMto3D'.
Step 1: Retrieving the Relief Data
Shuttle Radar Topography Mission
In February 2000, Space Shuttle Endeavour blasted off from Kennedy Space Centre into Low Earth Orbit on a special mission (Mission STS-99) with a very unique payload - two radar antennas (one in the payload bay, and another on the end of a 200 foot long extendable mast), which formed a highly sophisticated sensor for measuring the shape of the surface of the Earth.
The technique used was called 'Interferometric Synthetic Aperture Radar' - and is perfect for measuring slight differences in surface elevation, and using their specialist equipment, the joint US-German-Japanese crew spent 11 days recording data for most of the Earth's surface (just excluding very high or low latitudes, nearer the poles).
Wonderfully, this data is freely puclibly accessibly, and it's what we can use for our map-making!
The Space Shuttle has always fascinated me and I think it's really cool to be able to use data from one of it's missions at home in this way. So how do we do it?
Firstly, go to the Open Topography website, then go Data > Raster > Global Data.
Select the link to the "Shuttle Radar Topography Mission (SRTM GL1) Global 30M".
Now you're looking at a world map, zoom in to your area of interest, and click select region. Draw a box (as you can see in one of my attached screenshots), and then scroll down the page to see download instructions. You'll need to pop in an email, but this isn't used in fact - your download will just start on the next page.
The file you download needs to be extracted, using a program such as IZArc (recommended) to a location on your PC that you'll remember. Inside there should be a '.tif' file - this is the data that we'll use in a program called 'QGIS' in the next step as we prepare our 3D print.
Step 2: Software Steps
Now you can go ahead and open QGIS itself. My laptop isn't very powerful and I found QGIS quite heavy to run, so you may need to be a little patient with it. Firstly, make sure you have installed the 'DEMto3D' plugin, by using the plugin manager from within QGIS. This is needed to generate the '.stl' file that will be our output from this step.
There's a complex initial set-up phase in QGIS involving setting your coordinate system, which is vital and should not be skipped (yes I was lazy and tried that - so you don't have to!). I'd recommend using the explanation of this on page 11 of Steven Weidner's original guide.
Now go ahead and drag and drop into the main QGIS window your .tif file from the previous step of this Instructable. It should show up in the main QGIS window looking like a negative image, with the relief patterns shown in black and white.
This is the time to generate your .stl file according to the settings we need. Still in QGIS, go Raster > DEMto3D > DEM 3D Printing, and up will come a popup containing a multitude of options. Luckily this is simpler than it looks, but you need to get it right. To set the print extent, click the arrowed plus sign, and then select your file name in the box that pops up. That'll set it to the full size of the area you downloaded. Set your print size (after you do one axis, the other will autofill) - bearing in mind the bed size of your printer! The most interesting setting is the exaggeration factor - this will vertically stretch your print. I'd recommend using a factor greater than 1.0 here, as otherwise most models will look quite flat. When I made my print of the Cairngorm mountains as shown in this guide, I felt that it looked pretty flat compared to reality, so I did some quick calculations based on the distance of the print from my eye, and the scale of the print, and found that I was looking at it from the equivalent of approximately an altitude of 80,000ft (twice the height of an airline flight!). That's why even bold Scottish mountains may need a little exaggeration to really stand out.
Funnily enough I then tried a print of the famous 'Eiger' mountain, and using the same exaggeration factor the model became unfeasibly tall .... so really this is a parameter you'll need to modify for the nature of your subject.
Lastly, make sure that you choose the altitude value. If 0, that means that your print bed will effectively be sea level. This may be what you want, but it could result in a part with a very tall base - perhaps set a value closer to your minimum terrain altitude value for a much smaller and faster print.
Now that this is done, it will proceed to generate your .stl file - which can take a little while, so sit tight.
When this is ready, you can go ahead and go to the next step, in which we'll use slicing software to make our gcode file for our 3D printer, and get it ready to print!
Step 3: 3D Printing Setup
In this guide I refer to Ultimaker Cura, as that's what I prefer to use myself, but there are other great alternatives, especially Simplify3D, which would be absolutely fine too. This software is what takes your 'stl' file and creates the 'gcode' that your 3D printer will run on. Personally, I like Cura as it's clear and easy to use, although please use whichever slicing software you're familiar with. Generate your gcode by importing the .stl file from the previous stage, and using the normal print settings that you know work well for your printer.
The printer I own is an Anet A6, which was an affordable and easily modifiable printer for a beginner. I picture a fire extinguisher in one of the photos just as a reminder of the need to be careful due to the potential fire risk of 3D printer operation. I never leave my printer unattended whilst it is on, and I have a small foam fire extinguisher nearby just in case! It's extremely extremely unlikely that there could be a problem, but it's not worth taking the risk if you can avoid it.
I'd recommend white PLA for this type of printing, as I think that white always shows prints up well, and is good at visually hiding any defects (whereas I find that black PLA is very good at showing defects). If you choose to paint your print (to show lakes or forests perhaps) then it'll also be easiest if your part is a pale colour like white.
If you want to check that your printer is ready to use for a big print like these relief maps, then I'd recommend doing some tuning prints like the classic '3D Benchy' (which you can find on 'Thingiverse'), which will show any need for you to do any further calibration of your machine to achieve the best quality. There will be many good guides for how to do printer calibration on the internet, and on Instructables, so I'll let you search for those if it seems necessary.
Step 4: 3D Print Troubleshooting
For a large rectangular print such as these it is very important to ensure that the print bed is entirely level. Some 3D printers have automatic calibration, but most amateur machines like my Anet A6 rely on a manual process that can be a little arduous. It is worth ensuring that this is done well. The first picture shows a poorly levelled bed - as you can see the plastic is being successfully laid down only on one side of the print bed, and this will result in a poor quality print. The ideal distance between the print nozzle and the bed is best tested for by sliding a thin piece of paper (such as a receipt) underneath and feeling for slight resistance.
Sometimes getting your 3D prints to stick to the print bed is the most frustrating thing, as anyone who's used a 3D printer will know! Good bed levelling is key for this, but there are some other tips that'll help too. It depends somewhat on your printer, but I will assume that you have a glass bed. If you don't, I would thoroughly recommend using one - many kit printers can be retrofitted with a glass bed, which was the case for mine, an Anet A6. Make sure that the glass is very clean - finger grease can ruin print adhesion, so clean well before printing with wipes or just paper towel and some water. A final fallback is to use some glue on the print-bed. This is really only a last resort as it can be pretty difficult to clean off afterwards. The right type of glue to use is the basic 'glue-stick' type as you'd find in a school, and a little bit applied to the bed should sort out the most troublesome prints.
It's easy to rush to remove your print from the print bed at the end of the print, but you may well find it is stuck fast. The best approach is just patience - if you wait for the print to cool down fully (assuming your printer has a heated bed), then the plastic print will contract more than the build plate - and should 'pop' off easily. Whilst I was waiting, from the picture it seems like I played some Kerbal Space Program - this is not mandatory but highly recommended.
Cleaning Prints Up
There's often a little 'flash' plastic around the bottom of a printed part where the plastic has been spread thinly on the bed before the part was built up. This can be easily and cleanly removed using a little piece of sandpaper. There are various methods to smooth parts, but on these particular prints I didn't feel the need to do anything further (like wet and dry paper or epoxy coating) because I thought that the visible layers of the print looked nice on the contoured part, and appeared like contour lines on a map, giving a nice sense of topology.
Step 5: Observations and Future Ideas
Hopefully by this point you'll have made a successful 3D printed relief map of your chosen area, and are pleased with it - I just thought I'd finish this Instructable off with this conclusion:
Things I learned from this project:
- It's interesting to note that the only truly flat areas on the 3D print are of course the areas that are bodies of water. In the case of the example print I show you, the small flat area in the centre of the print is Loch Morlich, in the Scottish Highlands.
- This also gave me an appreciation for
Some ideas for what to do with this capability:
- I'd like to divide a large area like a national park (in my case probably choose the Scottish Highlands, where I've done hiking) into a large number of tiles to print individually, so on my wall I could create a huge contoured map of a large area. I think this would be really cool display and also might be useful for planning expeditions.
- Experiment with painting the 3D print to bring out the features - highlight the peaks and bodies of water, maybe add details from a map.
- Produce a series of different prints showing famous mountains like Everest, the Matterhorn, the Eiger, Kilimanjaro, etc, to make a display of the world's tallest and most challenging peaks.
- Produce models for the mountains which you personally have climbed, as a record. I've climbed a few mountains in the UK and it would be a nice souvenior of the effort. Perhaps this might also make a nice gift for friends or relatives who also know and love a certain mountain.
- This would definitely be a nice way to produce educational models for Geography classes, to demonstrate types of valleys, mountain ranges, hills, etc.
- When I was taught Geography, some students found the concept of contour lines difficult to understand. A 3D print of a hill using an FDM 3D printer can demonstrate the principal of contour lines really effectively, particularly if the print is created using a larger layer height!
I hope you've really enjoyed reading this Instructable, and can adapt this process to lots of fun projects of your own. Thanks for reading!
Participated in the
Tip 3 years ago
I've taken up an interest in this sort of thing recently, and I've found a few websites that will allow you to get an stl. file directly, AND mess with the height exaggeration as well, all for free: and it only takes a few seconds! "Touch terrain" is my favorite, and the most flexible: https://touchterrain-beta.geol.iastate.edu/ You can also preview the file before downloading, and even choose what file type you want; they have several to choose from.