A couple of years ago, Kartverket published elevation data with a 1x1 metre grid for all of Norway. I had a quick go at making maps with the features I like.
To prepare a map took many work operations, all of which I wrote as functions in Julia. Those functions called others, from Images, GeoArrays and others. The printed regional maps were quite nice, so I spent some time making an automated pipeline. That pipeline is BitmapMaps. Into one end, you put freely available elevation data. At the other end, you print or view image files. In between is a 14 step process, where you could choose to make manual changes and make the pipeline take it from there.
These pages describe how you can map the regions you enjoy, using BitmapMaps and other free tools. I'll also point to some sources for free elevation data in other countries. We will be suggesting and showing some tweaks, too.
Let's have a look at an end result from the pipeline. It is made for printing to A4 sheets, but should look decent on screen, too. After you zoomed (pinch or roll wheel) in to an interesting sheet, click on it to load the detailed version. Prepare to wait 15 s or so for the print-resolution sheet. Here you can view the map in full-screen.
Compare with the online-first OpenStreetMap below. It looks much better in a non-embedded context.
BitmapMaps.jl relies on 1x1 m resolution data, even if you choose to print in a lower resolution. For example, the map linked above only displays every 2x2 m cell. Even so, it uses the bumpiness of 1x1 m elevation for identifying terrain features such as forest, lakes, couloirs and ridges. Most importantly, it finds and fixes areas with errors. The typical errors in the data are recognized by their artificial bumpiness.
All of these sources also use the CC BY 4.0 license. That means you can sell the maps you make, too.
Country | What | Source |
---|---|---|
Norway | Full 1 m+ coverage, DEM and DTM | Høydedata |
New Zealand | Comprehensive national 1 m LiDAR DEM | LINZ Data Service |
Netherlands | Even higher resolution (0.25–0.5 m) | PDOK AHN Viewer |
Denmark | Full LiDAR-based coverage | Kortforsyningen |
Czechia | 0.5 m DTM nationwide | CUZK |
Note that we have only made printable maps with the Norwegian DEM data so far. You'll find limited coverage of Switzerland, Germany, USA and Italy as well.
BitmapMaps uses a 'Kartverket' API. You can overrule online calls by editing a text file.
BitmapMaps is written in Julia, and is started from within it. It's normally best to start Julia from a terminal or command line. You will get some extra graphical feedback if you run Julia from within VSCode.
The bitmap / photo editor Gimp is useful for inspecting and modifying GeoTIFF and .png bitmap files. BitmapMaps can help editing GeoTIFF files efficiently by calling Gimp.
For direct editing of .svg files in general, we suggest Inkscape. You should know that Inkscape does not load the corresponding style sheet '.css' files, where text size is defined. So it's better to inspect .svg files by opening them using any browser. The .svg files are also editable in text editors.
If you plan to follow this walkthrough, create a folder under your home directory: '~/BitmapMaps/Stetind/'.
We're assuming you use terminal here. These commands will create a Julia environment in that folder and add BitmapMaps to its 'Project.toml' file.
PS C:\Users\f\BitmapMaps> julia --project=. -q
julia> using Pkg; Pkg.activate(".");
julia> Pkg.Registry.add(RegistrySpec(url = "https://github.com/hustf/M8.git"));
julia> Pkg.add("BitmapMaps");
julia> using BitmapMaps
If you want to understand Julia package environments, read JKrumbiegel!
On the next page, we'll collect elevation data and define map extents.