Oliver Wipfli

Home


Zürich, Tue 14 Apr 2026

Mapterhorn Update

In 2025, the Mapterhorn open-source terrain data pipeline was created thanks to financial support from the NLnet foundation which distributes funding from the EU Commission.

The pipeline uses Copernicus GLO30, a global 30 m resolution dataset, as a baseline and refines it with local models. Countries initially covered include Island, Portugal, UK, Spain, France, The Netherlands, Belgium, Denmark, Norway, Sweden, Finland, Latvia, Estonia, Poland, Czech Republic, Slovakia, Romania, Austria, Germany, Switzerland, Italy, and Cyprus.

Local elevation models were downloaded and normalized. They came in many different formats and compression schemes. We removed all overviews and stored them at their native resolution and original projection as LERC-encoded GeoTiffs. The models were aggregated with smooth edge blending, tiled in Web Mercator, and packaged into PMTiles archives.

From zoom 0 to 12, all tiles globally fit into a single file called planet.pmtiles. This goes to a resolution of 19 Web-Mercator-Meters. Higher-resolution local data with zoom 13+ is packaged into separate files.

Later on, Japan, New Zealand, Canada, the US, and more were added by various contributors, yielding a current total PMTiles file size of 9.8 TiB aggregated from 14.5 TiB of source data

Storing and sharing this amount of data would normally incur non-negligible recurring costs. But fortunately, Cloudflare is supporting us with their R2 storage infrastructure, Workers, and CDN. This allowed us to share the PMTiles archives with CORS headers enabled and even more, we were able to stand up a single-tile endpoint which serves tiles based on their zxy id. They are loaded from the PMTiles archives using a Worker and responses are cached by the CDN.

To reduce the risk of data loss we also started mirroring Mapterhorn's data to other storage backends. Currently there is one mirror provided by Source Cooperative.

Monthly usage levels are roughly at 100k unique visitors, 100M requests, and 100 TiB egress traffic. Use cases range from journalism (ORF.at), to outdoor apps (komoot) and even routing engines (Graphhopper). Note that all of the ones mentioned here opted to download the PMTiles archives and host the data themselves. This gives them more control over map data availability and can improve privacy.

Mapterhorn also matured from a one-person-project to a governance model that includes three people with equal access rights: Sascha Brawer, Brandon Liu, and Oliver Wipfli now all have admin access to the GitHub Organization, hosting on Cloudflare, the domain mapterhorn.com, and to financials on OpenCollective.

It is now possible to support Mapterhorn with sponsorship on OpenCollective. Funding will be used exclusively for maintenance work and we hope this will help ensure the long-term stability of the project.

So much for what has happened in the past year. Let us now look into future plans for Mapterhorn.

Mapterhorn Imagery

Just last week, NLnet formally approved a second grant called "Mapterhorn Imagery". This grant will allow extending the existing terrain data pipeline to aerial imagery and digital orthophotos. While searching and downloading open terrain data, we noticed that many government agencies which publish terrain also share imagery data. Often the imagery is licensed with the same open license as the terrain, but so far there was no open-source project that brought all those open datasets together in a single, unified data product. The goal of Maperhorn Imagery will now be to aggregate all the available open aerial imagery and share it as PMTiles downloads.

The processing will be split into the following steps. First, we will use NASA's Blue Marble with a resolution of 500 m per pixel as a global low zoom dataset. When going to higher zoom levels we will switch to 10 m resolution satellite imagery from Copernicus Sentinel-2 on land. On oceans we will overzoom the Blue Marble ocean depth shading and the cutline between land and ocean will be taken from Natural Earth. To account for small islands, river mouths, archipelagos and more there will be a mechanism to add user-defined land polygons in addition to the Natural Earth ones. Copernicus publishes quarterly cloudless mosaics which solves the problem of finding global clear sky imagery.

High-resolution imagery with pixel sizes of 10 cm and less will be downloaded from local government agencies. Like with the terrain data we will make sure to only include sources that are compatible with CC-BY, i.e., they may require attribution but licenses with share-alike clauses or even non-commercial clauses will be excluded.

Some agencies have bulk GeoTiff downloads, others only have WMS or WMTS endpoints. Download scripts will likely need to run for days and weeks for some providers.

Once the high-resolution data is downloaded it needs to be normalized. Unfortunately, NODATA handling with imagery is worse than with terrain data. Providers often have black or white filling around their actual data. We will cut away the NODATA borders, use a lossy compression making sure to not compromise the original quality and detail, and store everything in a normalized file format. This normalized imagery will be shared as source downloads without the reprojection to Web Mercator applied yet.

Infrared is often shared by agencies in a fourth band in addition to the standard red, green, and blue color bands. Currently, we do not plan to generate finished infrared or False Color tiles. However, we will download and normalize the infrared band and share it for download with the RGB bands in the source downloads. Maybe this can be useful to some machine learning or mapping applications, and maybe Mapterhorn can one day also publish a False Color tileset.

The normalized high-resolution imagery will then be reprojected to Web Mercator and aggregated into a single mosaic. The max zoom level will depend on the resolution of the source data. From the max zoom we will downsample the tiles and blend them successively more and more with the Sentinel-2 imagery. This will probably be done with additive blending and the transition will happen over 4 to 5 zoom levels. An advantage of this blending is that color differences in different areas of the high-resolution imagery get progressively weaker as the user zooms out. Like this the effect of foliage in winter vs summer for example is less pronounced.

Between datasets at the same zoom level no special blending or smooth transition will be done. Google sometimes uses a bit of gaussian fade-over while Apple seems to have a narrow stripe where they mix sources 50-50, but it probably is also fine to just do a hard 0 pixel cut from one dataset to the other. If it looks bad we can always build on the edge blending used in terrain and experiment with lateral blending.

Challenges

The cross-zoom blending from Sentinel-2 to local sources might be tricky to achieve. It could be that the overzoomed Sentinel-2 imagery is too blurry and that could deteriorate detail at midzooms. Also it is unclear what happens when two neighboring sources have different max zooms.

The 10 m ocean land dataset from Natural Earth might be too coarse for Sentinel-2. Will many small islands be skipped? Maybe it could also be useful to make a land / water mask from Sentinel-2 directly using the infrared band B08. But if that is done, will large lakes be treated like oceans?

A major concern is also dataset size and its ramifications to processing times. We initially estimated that the available open imagery will be 4x larger than the corresponding available terrain data. This was based on Switzerland; swisstopo has a 600 GB terrain dataset and a 2.4 TB imagery dataset. However, Switzerland is less flat than other countries so the terrain data is disproportionately large after compression. It might well be that the available imagery is 10 to 20x the size of the available terrain data. Currently, the terrain pipeline at global scale takes roughly 2 weeks to complete. Does this mean that the full imagery pipeline will take 6 months to 1 year to complete?

Finally, there is a concern that extending Mapterhorn from terrain to imagery will be confusing to users. How will the two data products be presented on the website? And what will be the naming?

With the project approved those concerns and challenges will be addressed in the coming months. The results will in any case be shared on GitHub.

Outlook

The terrain data is already in use and we will keep fixing bugs and adding new sources to it. In parallel, we will start working on the extension of the pipeline to aerial imagery. High-resolution coverage will focus first on Europe and later on other regions will hopefully be added.

If you have ideas for open imagery data sources please post them on GitHub. Thanks!