Where to get terrain data

Last updated · how this page is sourced

A TerraGear build needs three separate kinds of input, collected independently. All three were downloaded and put through builds for this site; where a source is named below but was not used, the page says so.

Every link below was checked on 23 August 2026; the build that confirmed the first two is recorded on the sources page. If you have not built the tools yet, start at Installing TerraGear.

1. Elevation

Elevation comes from a DEM: elevation samples on a regular grid. TerraGear reads SRTM .hgt files, one per one-degree square, named for their south-west corner. hgtchop cuts them into tiles and terrafit fits a surface to each.

Where to get it

AWS Terrain Tiles mirrors SRTM 1-arc-second as gzipped .hgt in “skadi” layout, over plain HTTPS with no account:

https://s3.amazonaws.com/elevation-tiles-prod/skadi/N37/N37W123.hgt.gz

Substitute your own square. That file is 6.5 MB gzipped, 25.9 MB unpacked; 3601 × 3601 two-byte samples. This is the source the build behind this site used.

viewfinderpanoramas.org is the other well-known mirror, and answers. Its value is void filling: SRTM has holes over water and steep terrain, and this collection patches them from other data. Worth knowing about if your region comes out with gaps.

USGS Earthdata is the authoritative source. It now requires a free Earthdata Login account, which is why the two mirrors above are the quicker route for a first build.

The URL in the repository README is dead. It gives https://e4ftl01.cr.usgs.gov/MEASURES/SRTMGL1.003/ as the preferred SRTM v3 source. That address returns 404, not a login prompt. Its SRTM v1 and v2 entry, an ftp:// address at edcsgs9.cr.usgs.gov, has been gone for far longer.

Resolution matters at the command line, not just in quality: hgtchop‘s first argument is 1 or 3 and must match the file you hand it. AWS skadi is 1-arc-second.

2. Airports

Airport layouts come from an apt.dat file: the shared X-Plane and FlightGear airport database, and older than most people expect. genapts reads it and produces runways, taxiways and lighting for the region you asked for.

Where to get it

It ships inside FlightGear’s own data repository, and can be pulled on its own without cloning the whole thing:

curl -L -o apt.dat.gz \
  https://gitlab.com/flightgear/fgdata/-/raw/next/Airports/apt.dat.gz
gunzip apt.dat.gz

27 MB gzipped, 106 MB unpacked, 2,465,648 lines, 34,074 airports worldwide. If you already have FlightGear installed you have it at $FG_ROOT/Airports/apt.dat.gz. The X-Plane Scenery Gateway is where updated airport layouts originate and is the place to go for a newer version of one airport.

Unpack it. That gunzip is not optional. genapts accepts a .gz, passes its version check, and then loops forever without producing anything or reporting an error: see Common errors and fixes. The tool is called genapts, not genapts850; the longer name appears in older documentation but nowhere in the source.

3. Land cover

Land cover is vector data (coastlines, water, land use, roads) supplied as shapefiles. ogr-decode converts them into the intermediate polygon form the build consumes. Without a land-cover layer you can still build: pass --ignore-landmass to tg-construct and you get elevation and airports with no coastline and no surface materials.

Two of these were used in a build; the third is a lead.

  • Natural Earth; public-domain physical vectors. The ne_10m_land layer, 3.3 MB zipped from naciscdn.org, supplies the landmass polygon that lets you drop --ignore-landmass. Coarse at one-degree scale, but it is the coastline and it is one small download. Used.
  • OpenStreetMap regional extracts (Geofabrik); per-region shapefiles for water, land use, natural features and roads. norcal-latest-free.shp.zip is 1.1 GB zipped, 3.1 GB unpacked, and one degree square of it yielded 12,076 grass polygons, 8,120 urban, 7,246 forest and 2,032 water. Used.
  • CORINE Land Cover (Copernicus): detailed land-use classes, Europe only. Reachable, not tried here.
Clip before you decode. ogr-decode --spat selects features whose bounding box intersects your rectangle; it does not clip their geometry. Natural Earth’s land layer holds one feature that spans the globe, so a one-degree request had the tool tessellating Antarctica. Run the data through ogr2ogr -clipsrc first; it turned an eleven-minute runaway into 0.02 seconds. Worked example on ogr-decode.

Because shapefiles are a standard GIS format, they are also where you substitute your own data. Terrain that differs from the standard scenery is not a modified TerraGear; it is different shapefiles through the same tools. QGIS opens and edits them.

The material each polygon becomes is decided by default_priorities.txt, installed with the binaries at /usr/local/share/TerraGear/, which also settles what wins where polygons overlap.

Shaded relief of San Francisco Bay rendered from the SRTM elevation
       tile described on this page.
One .hgt file, rendered: N37W123 from the AWS mirror above. This is the elevation input for the worked example in the first-scenery guide.

What one square costs to download

Inputs for a 1°×1° build. The airport database is a one-off.
InputDownloadUnpacked
SRTM tile, 1 arc-second6.5 MB25.9 MB
apt.dat, whole world27 MB106 MB
Natural Earth land3.3 MB7.2 MB
OSM extract, northern California1.1 GB3.1 GB

What this replaced

If you find TerraGear documentation for tgvpf, or for VMAP0, you have found the previous generation of this page. VMAP0, Vector Map Level 0, was the public vector dataset of the early 2000s, and tgvpf was the tool that turned VPF-format data into scenery polygons. It took a --chunk of 10°×10°, the same shape of argument ogr-decode takes bounds in now.

That tool no longer exists. Its job is ogr-decode‘s, which reads anything GDAL can open, so the question stopped being “how do I convert VPF” and became “which shapefiles do I want”. Same stage of the pipeline, same purpose, wider choice.

Sources in the documentation that are gone

These appear in TerraGear’s own files and no longer work. Checking them costs an afternoon that the list below saves:

  • The USGS SRTMGL1 address in the README; 404.
  • The USGS SRTM v1/v2 FTP server in the same file.
  • The NOAA GLOBE and USGS GTOPO30 pages, for the older raw2ascii and demchop path.
  • The landmass FTP server in README.howto, a file dated 1999.
  • MapServer, which the FlightGear wiki notes is discontinued while still recommending downloads from it elsewhere on the same page.
What land cover costs. All three inputs on this page are now confirmed by builds that produced scenery. Worth knowing before you download a gigabyte of OSM: adding those ten layers took tg-construct from 15 seconds to 286, and peak memory from 81 MB to 2.2 GB, for the same one-degree square. Detail is the expensive part, not area: see Hardware and build times.