Digital Elevation Map Rough Sizing

This is intended to help people understand the memory and storage requirements of increasingly larger game-worlds and also of military/scientific digital elevation maps (DEMs).

These maps are finding increasing use in the scientific fields (calculating water runoff and flooded areas) and aerospace fields (enabling 'silent' autonomous piloting with only a GPS receiver).

As humanity spreads to other planets and solar systems in science fiction, we will want to map the planets we visit, so that we can find optimum locations for new cities, and to enable advanced aerospace capabilities such as being able to fly at near tree-top level safely at high speeds without a active terrain following radar, or turning it on only intermittently.

Picking the right cell-size

Not every application needs precise detail. A first person shooter would need something on the order of 1m2 cells to generate a smooth landscape, while 10m2 cells would allow for a massive reduction in the map size, while not sacrificing the accuracy needed for aerospace, as ten meters is about 33 feet, which is good enough for something that follows the ground at 300-500 feet above ground level.

Moving further on; something with 100m2 cellular resolution would be sufficient for a lot of applications which do not require ultra-precise measurements, like an emergency escape vehicle from a spacecraft, because the EEV would have it's own sensor system to perform final course corrections in the terminal phase.

Finally at the top end, 1 km2 cellular resolution would be ideal for “Galaxy Atlas” type applications; where you just want the continents to look reasonably nice, and to help in initial planning and quick run-through simulations where precise accuracy is not desired.

Picking the right Integer

The largest peak in the solar system is Olympus Mons on Mars with a height of about 27 kilometers; while the deepest peak in the solar system that we know of is the Marinas Trench on earth; with a depth of 11.03 kilometers.

If a 16-bit signed word was used for each height cell, and the meter was the basic measurement unit, then your GIS system would be able to handle heights from 32.7 km below an arbitrary level to 32.7 kilometers above that arbitrary level.

This is probably sufficient for the solar system – but if more elevation was needed, the next available integer is a 32-bit signed word; which can handle heights of 2,147,400 kilometers above and below an arbitrary point.

The choice of a 32-bit signed word is probably extreme; because a 18 bit-signed word could handle elevations of 131 kilometers above and below an arbitrary point, while taking up much less memory space than a 32-bit word.

However; the 32-bit word has become a standard in computer science; meaning it's supported by just about every processor and programming language out there, which is important for future extensibility, since this GIS system could be in use for hundreds or thousands of years (depending on the scale and scope of your civilization).

In the table below, I've helpfully precomputed the GIS map sizes for some well known areas both in real life and the gaming world. The Excel file I used to do this is available HERE.

Map Location

Surface Area
(km2)

GIS Map Data
(1 m2 cells)

GIS Map Data
(10 m2 cells)

GIS Map Data
(100 m2 cells)

GIS Map Data
(1 km2 cells)

Iwo Jima (Earth)

21

2.1 x 107 Cells
40 MiB (16-bit)
80.1 MiB (32-bit)

2.1 x 105 Cells
410.2 KiB (16-bit)
820.3 KiB (32-bit)

2.1 x 103 Cells
4.1 KiB (16-bit)
8.2 KiB (32-bit)

21 Cells
42 Bytes (16-bit)
84 Bytes (32-bit)

Skira Island
(Operation Flashpoint 2)

277.7

2.78 x 108 Cells
529.7 MiB (16-bit)
1.03 GiB (32-bit)

2.78 x 106 Cells
5.3 MiB (16-bit)
10.59 MiB (32-bit)

2.78 x 104 Cells
54.25 KiB (16-bit)
108.5 KiB (32-bit)

278 Cells
556 Bytes (16-bit)
1,112 Bytes (32-bit)

State of Rhode Island

3,140

3.14 x 109 Cells
5.85 GiB (16-bit)
11.7 GiB (32-bit)

3.14 x 107 Cells
59.9 MiB (16-bit)
119.8 MiB (32-bit)

3.14 x 105 Cells
613.3 KiB (16-bit)
1.2 MiB (32-bit)

3,140 Cells
6.13 KiB (16-bit)
12.3 KiB (32-bit)

Earth

510,072,000

5.1 x 1014 Cells
927.81 TiB (16-bit)
1855.63 TiB (32-bit)

5.1 x 1012 Cells
9.27 TiB (16-bit)
18.55 TiB (32-bit)

5.1 x 1010 Cells
95.01 GiB (16-bit)
190.02 GiB (32-bit)

5.1 x 108 Cells
972.89 MiB (16-bit)
1,945.77 MiB (32-bit)

Moon

37,930,000

3.79 x 1013 Cells
68.99 TiB (16-bit)
137.99 TiB (32-bit)

3.79 x 1011 Cells
706.51 GiB (16-bit)
1,413 GiB (32-bit)

3.79 x 109 Cells
7.07 GiB (16-bit)
14.13 GiB (32-bit)

3.79 x 107 Cells
72.35 MiB (16-bit)
144.69 MiB (32-bit)

Mars

144,798,500

1.45 x 1014 Cells
263.39 TiB (16-bit)
526.77 TiB (32-bit)

1.45 x 1012 Cells
2.63 TiB (16-bit)
5.27 TiB (32-bit)

1.45 x 1010 Cells
26.97 GiB (16-bit)
53.94 GiB (32-bit)

1.45 x 108 Cells
276.18 MiB (16-bit)
552.36 MiB (32-bit)