Home | Benchmarks | Categories | Atom Feed

Posted on Wed 15 November 2023 under GIS

Natural Earth's Global Geospatial Datasets

Natural Earth is a mapping dataset produced by volunteers from around the world and published into the public domain.

The volunteer efforts are led by Tom Patterson, a retired Cartographer from Virginia who worked for the National Park Service and Nathaniel Vaughn Kelso, who has worked in Cartography roles at Apple, Mapzen, National Geographic and the Washington Post.

The project produces ~170 datasets across three major categories. Below I've layered ten of these datasets on top of one another. These include water depths, country boundaries, disputed regions, Antarctic claims, time zones, railroads, airports (rendered as a heatmap), urban areas, shipping ports and maritime indicators.

Natural Earth Transport Features

The above rendering was produced solely with vector data with no basemaps or raster data being used.

Below I've rendered their regions, coastlines, lakes, reefs, rivers, glaciated areas, marines and elevation points datasets atop their water depth polygons.

Natural Earth Regions

In this post, I'll download and examine Natural Earth's freely available global geospatial datasets.

Installing Prerequisites

The following was run on Ubuntu for Windows which is based on Ubuntu 20.04 LTS. The system is powered by an Intel Core i5 4670K running at 3.40 GHz and has 32 GB of RAM. The primary partition is a 2 TB Samsung 870 QVO SSD.

I'll be using AWS S3 to download these datasets.

$ sudo apt update
$ sudo apt install \
    awscli \
    exiftool

I'll use DuckDB, along with its JSON and Spatial extensions, in this post.

$ cd ~
$ wget -c https://github.com/duckdb/duckdb/releases/download/v0.9.1/duckdb_cli-linux-amd64.zip
$ unzip -j duckdb_cli-linux-amd64.zip
$ chmod +x duckdb
$ ~/duckdb
INSTALL json;
INSTALL spatial;

I'll set up DuckDB to load all these extensions each time it launches.

$ vi ~/.duckdbrc
.timer on
.width 180
LOAD json;
LOAD spatial;

The maps in this post were rendered with QGIS version 3.34. QGIS is a desktop application that runs on Windows, macOS and Linux.

I used QGIS' Tile+ plugin to add satellite basemaps when it helps provide visual context around Natural Earth's vector data.

Downloading Natural Earth's Datasets

The datasets are available at 1:10m (most detailed), 1:50m, and 1:110 million scales. I'll download version 5.1.2 of the 1:10m scale dataset for this exercise. It was published in May of last year.

$ mkdir -p ~/naturalearth

$ for DATASET in cultural physical raster; do
      cd ~/naturalearth
      aws s3 sync \
            --no-sign-request \
            s3://naturalearth/10m_$DATASET/ \
            10m_$DATASET/

      cd 10m_$DATASET/
      ls *.zip | xargs -n1 -P4 -I% unzip -qn %
  done

The above downloaded three categories of data. In ZIP format, there is 120 MB of physical data (coastlines, lakes, etc..) across 54 ZIP files, 720 MB of cultural data (transport, time zones, populated areas, borders) across 79 ZIP files and 5.6 GB of raster data (relief maps of the earth) across 37 ZIP files.

Data Shipped as Shapefiles

The physical and cultural datasets contain Shapefiles inside their respective ZIP files. These are a multi-file format and have been one of the primary ways geospatial data has been shared for the past few decades. It was popularised by the now 650K organisations that use Esri software.

Below is the airports dataset.

$ cd ~/naturalearth/10m_cultural
$ unzip -l ne_10m_airports.zip
Archive:  ne_10m_airports.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
    37654  2021-12-08 02:24   ne_10m_airports.README.html
        7  2021-12-08 02:24   ne_10m_airports.VERSION.txt
        5  2021-08-01 20:23   ne_10m_airports.cpg
  6694349  2021-08-29 09:05   ne_10m_airports.dbf
      145  2021-08-29 09:05   ne_10m_airports.prj
    25104  2021-08-01 20:23   ne_10m_airports.shp
     7244  2021-08-01 20:23   ne_10m_airports.shx
---------                     -------
  6764508                     7 files

The PRJ file contains the projection information.

$ cat ne_10m_airports.prj
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree"

The CPG file contains the character encoding. In this case, it's UTF-8.

$ hexdump -C ne_10m_airports.cpg
00000000  55 54 46 2d 38                                    |UTF-8|
00000005

The DBF file contains a database table and will often hold all non-vector data for each record within the dataset.

This format was originally introduced by dBase in the late 1970s and was popular with Microsoft's FoxPro in the 1990s. NCR Corporation produces point-of-sale (POS) systems found in many restaurants, shops and hotels and still supports writing sales and operations data to DBF files.

The SHP file stores geometry and the SHX file contains indices.

You can use DuckDB's Spatial Extension to work with Shapefiles using SQL. Below is the record for Tallinn Airport. I've excluded any field names prefixed with name_.

$ ~/duckdb
.mode line

SELECT COLUMNS(c -> c NOT LIKE 'name_%')
FROM   ST_READ('ne_10m_airports.shx')
WHERE  abbrev = 'TLL'
LIMIT  1;
 scalerank = 4
featurecla = Airport
      type = major
      name = Ulemiste
    abbrev = TLL
  location = terminal
  gps_code = EETN
 iata_code = TLL
 wikipedia = http://en.wikipedia.org/wiki/Tallinn_Airport
 natlscale = 50.0
  comments =
wikidataid = Q630524
wdid_score = 4
     ne_id = 1159126123
      geom = POINT (24.798964869982985 59.41650146974512)

Unlike CSVs, Shapefiles are strongly typed. They also differentiate between integers and doubles, unlike JSON files. The vector data is stored as a GEOMETRY type so no type casting will be needed prior to any analysis.

DESCRIBE SELECT COLUMNS(c -> c NOT LIKE 'name_%')
FROM ST_READ('ne_10m_airports.shx')
LIMIT 1;
┌─────────────┬─────────────┬─────────┬─────────┬─────────┬─────────┐
│ column_name │ column_type │  null   │   key   │ default │  extra  │
│   varchar   │   varchar   │ varchar │ varchar │ varchar │ varchar │
├─────────────┼─────────────┼─────────┼─────────┼─────────┼─────────┤
│ scalerank   │ INTEGER     │ YES     │         │         │         │
│ featurecla  │ VARCHAR     │ YES     │         │         │         │
│ type        │ VARCHAR     │ YES     │         │         │         │
│ name        │ VARCHAR     │ YES     │         │         │         │
│ abbrev      │ VARCHAR     │ YES     │         │         │         │
│ location    │ VARCHAR     │ YES     │         │         │         │
│ gps_code    │ VARCHAR     │ YES     │         │         │         │
│ iata_code   │ VARCHAR     │ YES     │         │         │         │
│ wikipedia   │ VARCHAR     │ YES     │         │         │         │
│ natlscale   │ DOUBLE      │ YES     │         │         │         │
│ comments    │ VARCHAR     │ YES     │         │         │         │
│ wikidataid  │ VARCHAR     │ YES     │         │         │         │
│ wdid_score  │ INTEGER     │ YES     │         │         │         │
│ ne_id       │ BIGINT      │ YES     │         │         │         │
│ geom        │ GEOMETRY    │ YES     │         │         │         │
├─────────────┴─────────────┴─────────┴─────────┴─────────┴─────────┤
│ 15 rows                                                 6 columns │
└───────────────────────────────────────────────────────────────────┘

Misplaced Borders

There are a large number of fields listing facts and alternative names for 258 countries and territories around the world in Natural Earth's Administrative dataset.

$ cd ~/naturalearth
$ ~/duckdb
.mode line

SELECT COLUMNS(c -> c NOT LIKE 'NAME_%' AND
                    c NOT LIKE 'FCLASS_%' AND
                    c NOT LIKE '%_A3%' AND
                    c != 'geom')
FROM ST_READ('10m_cultural/ne_10m_admin_0_countries.shx')
WHERE ISO_A2 = 'EE'
LIMIT 1;
featurecla = Admin-0 country
 scalerank = 0
 LABELRANK = 6
SOVEREIGNT = Estonia
  ADM0_DIF = 0
     LEVEL = 2
      TYPE = Sovereign country
       TLC = 1
     ADMIN = Estonia
  GEOU_DIF = 0
   GEOUNIT = Estonia
    SU_DIF = 0
   SUBUNIT = Estonia
  BRK_DIFF = 0
      NAME = Estonia
  BRK_NAME = Estonia
 BRK_GROUP =
    ABBREV = Est.
    POSTAL = EST
 FORMAL_EN = Republic of Estonia
 FORMAL_FR =
 NOTE_ADM0 =
  NOTE_BRK =
 MAPCOLOR7 = 3
 MAPCOLOR8 = 2
 MAPCOLOR9 = 1
MAPCOLOR13 = 10
   POP_EST = 1326590.0
  POP_RANK = 12
  POP_YEAR = 2019
    GDP_MD = 31471
  GDP_YEAR = 2019
   ECONOMY = 2. Developed region: nonG7
INCOME_GRP = 1. High income: OECD
   FIPS_10 = EN
    ISO_A2 = EE
 ISO_A2_EH = EE
    ISO_N3 = 233
 ISO_N3_EH = 233
     WB_A2 = EE
    WOE_ID = 23424805
 WOE_ID_EH = 23424805
  WOE_NOTE = Exact WOE match as country
  ADM0_ISO = EST
 ADM0_DIFF =
  ADM0_TLC = EST
 CONTINENT = Europe
 REGION_UN = Europe
 SUBREGION = Northern Europe
 REGION_WB = Europe & Central Asia
  LONG_LEN = 7
ABBREV_LEN = 4
      TINY = -99
  HOMEPART = 1
  MIN_ZOOM = 0.0
 MIN_LABEL = 3.0
 MAX_LABEL = 8.0
   LABEL_X = 25.867126
   LABEL_Y = 58.724865
     NE_ID = 1159320615
WIKIDATAID = Q191
  TLC_DIFF =

This is the country count broken down by continent.

SELECT   COUNT(*),
         CONTINENT
FROM     ST_READ('10m_cultural/ne_10m_admin_0_countries.shx')
WHERE    featurecla = 'Admin-0 country'
GROUP BY 2
ORDER BY 2;
┌──────────────┬─────────────────────────┐
│ count_star() │        CONTINENT        │
│    int64     │         varchar         │
├──────────────┼─────────────────────────┤
│           55 │ Africa                  │
│            1 │ Antarctica              │
│           59 │ Asia                    │
│           51 │ Europe                  │
│           42 │ North America           │
│           26 │ Oceania                 │
│            9 │ Seven seas (open ocean) │
│           15 │ South America           │
└──────────────┴─────────────────────────┘

The geometry for the borders themselves is pretty far off what you'd find with OpenStreetMap (OSM). The red line is the border taken from OSM and the yellow line is the border found in Natural Earth's latest release.

Natural Earth Border Placement Issue

I found similar misplacements with just about every country in Europe. I raised a ticket with the project so hopefully this gets addressed in the next release.

There are nine islands not attributed to any one continent but instead are classed as being on the open ocean.

SELECT   SOVEREIGNT,
         NAME_LONG,
         ECONOMY,
         INCOME_GRP
FROM     ST_READ('10m_cultural/ne_10m_admin_0_countries.shx')
WHERE    CONTINENT = 'Seven seas (open ocean)'
ORDER BY 1, 2;
┌────────────────┬─────────────────────────────────────┬────────────────────────────┬─────────────────────────┐
│   SOVEREIGNT   │              NAME_LONG              │          ECONOMY           │       INCOME_GRP        │
│    varchar     │               varchar               │          varchar           │         varchar         │
├────────────────┼─────────────────────────────────────┼────────────────────────────┼─────────────────────────┤
│ Australia      │ Heard I. and McDonald Islands       │ 7. Least developed region  │ 5. Low income           │
│ France         │ Clipperton Island                   │ 7. Least developed region  │ 5. Low income           │
│ France         │ French Southern and Antarctic Lands │ 6. Developing region       │ 2. High income: nonOECD │
│ Maldives       │ Maldives                            │ 6. Developing region       │ 3. Upper middle income  │
│ Mauritius      │ Mauritius                           │ 6. Developing region       │ 3. Upper middle income  │
│ Seychelles     │ Seychelles                          │ 6. Developing region       │ 3. Upper middle income  │
│ United Kingdom │ British Indian Ocean Territory      │ 2. Developed region: nonG7 │ 2. High income: nonOECD │
│ United Kingdom │ Saint Helena                        │ 6. Developing region       │ 4. Lower middle income  │
│ United Kingdom │ South Georgia and the Islands       │ 7. Least developed region  │ 5. Low income           │
└────────────────┴─────────────────────────────────────┴────────────────────────────┴─────────────────────────┘

The disputed territories table has a lot of detail within it. This is a summary of its records.

SELECT   FEATURECLA,
         FCLASS_OSM,
         COUNT(*)
FROM     ST_READ('10m_cultural/ne_10m_admin_0_boundary_lines_disputed_areas.shx')
GROUP BY 1, 2
ORDER BY 1, 2;
┌──────────────────┬─────────────────────────────────┬──────────────┐
│    FEATURECLA    │           FCLASS_OSM            │ count_star() │
│     varchar      │             varchar             │    int64     │
├──────────────────┼─────────────────────────────────┼──────────────┤
│ Breakaway        │ Admin-1 boundary                │            2 │
│ Breakaway        │ Unrecognized                    │           16 │
│ Claim boundary   │ International boundary (verify) │            9 │
│ Claim boundary   │ Unrecognized                    │           32 │
│ Elusive frontier │ Unrecognized                    │            2 │
│ Reference line   │ Unrecognized                    │           14 │
└──────────────────┴─────────────────────────────────┴──────────────┘

Regions and Lakes

There are 1,355 Lakes in the dataset. 116 are listed as having a dam. Below is a dam count by country.

CREATE OR REPLACE TABLE countries AS
    SELECT Name,
           CONTINENT,
           geom
    FROM   ST_READ('10m_cultural/ne_10m_admin_0_countries.shx')
    WHERE  featurecla = 'Admin-0 country';

SELECT   b.CONTINENT continent,
         b.Name country,
         COUNT(*) dam_count
FROM     ST_READ('10m_physical/ne_10m_lakes.shx') a
LEFT JOIN countries b
    ON ST_INTERSECTS(ST_CENTROID(a.geom), b.geom)
WHERE    a.dam_name IS NOT NULL
GROUP BY 1, 2
ORDER BY 1,
         3 DESC;
┌───────────────┬──────────────────────────┬───────────┐
│   continent   │         country          │ dam_count │
│    varchar    │         varchar          │   int64   │
├───────────────┼──────────────────────────┼───────────┤
│ Africa        │ South Africa             │         2 │
│ Africa        │ Zimbabwe                 │         1 │
│ Africa        │ Sudan                    │         1 │
│ Africa        │ Cameroon                 │         1 │
│ Asia          │ India                    │         5 │
│ Asia          │ Thailand                 │         3 │
│ Asia          │ Turkey                   │         3 │
│ Asia          │ Kazakhstan               │         1 │
│ Asia          │ Iraq                     │         1 │
│ Asia          │ Syria                    │         1 │
│ Asia          │ Bangladesh               │         1 │
│ Asia          │ Sri Lanka                │         1 │
│ Asia          │ North Korea              │         1 │
│ Asia          │ Laos                     │         1 │
│ Asia          │ China                    │         1 │
│ Asia          │ Azerbaijan               │         1 │
│ Europe        │ Russia                   │        15 │
│ Europe        │ Finland                  │         6 │
│ Europe        │ Sweden                   │         2 │
│ Europe        │ Ukraine                  │         2 │
│ Europe        │ Spain                    │         1 │
│ North America │ Canada                   │        20 │
│ North America │ United States of America │        20 │
│ North America │ Mexico                   │         5 │
│ North America │ Panama                   │         1 │
│ Oceania       │ Australia                │         3 │
│ Oceania       │ New Zealand              │         2 │
│ South America │ Brazil                   │        12 │
│ South America │ Paraguay                 │         1 │
│ South America │ Venezuela                │         1 │
├───────────────┴──────────────────────────┴───────────┤
│ 30 rows                                    3 columns │
└──────────────────────────────────────────────────────┘

There are 1,047 regions that can overlap with one another. This is the breakdown by continent.

SELECT   REGION,
         COUNT(*)
FROM     ST_READ('10m_physical/ne_10m_geography_regions_polys.shx')
GROUP BY 1
ORDER BY 1;
┌─────────────────────────┬──────────────┐
│         REGION          │ count_star() │
│         varchar         │    int64     │
├─────────────────────────┼──────────────┤
│ Africa                  │          127 │
│ Antarctica              │           97 │
│ Asia                    │          263 │
│ Europe                  │          103 │
│ North America           │          160 │
│ Oceania                 │          200 │
│ Seven seas (open ocean) │           34 │
│ South America           │           63 │
└─────────────────────────┴──────────────┘

This shows the regions in capital letters across Europe, North Africa and Western Asia.

Natural Earth Rail Ferry

Road Networks

Roads don't change that often but the data here is from two years ago. It'll have a hard time standing up to OSM's daily refreshes. To add to that, the dataset only includes a handful of major roads and they terminate prematurely in some cases.

Natural Earth Roads

Below I've left Natural Earth's roads colour-coded and added the Estonian Land Board's road network in white. Even the alignment to the roads' actual geography is off by a fair amount.

Natural Earth Saaremaa Roads

Airport Locations

Airports have a decent amount of metadata and look to be fairly complete. I couldn't think of an Airport that wasn't listed in their dataset. Here is a breakdown by type and continent.

SELECT   a."type",
         COUNT(*) FILTER (WHERE b.CONTINENT = 'Africa') AS Africa,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'Asia') AS Asia,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'Europe') AS Europe,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'North America') AS North_America,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'Oceania') AS Oceania,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'South America') AS South_America,
FROM     ST_READ('10m_cultural/ne_10m_airports.shx') a
LEFT JOIN countries b
    ON ST_INTERSECTS(ST_CENTROID(a.geom), b.geom)
GROUP BY 1
ORDER BY North_America DESC;
┌────────────────────┬────────┬───────┬────────┬───────────────┬─────────┬───────────────┐
│        type        │ Africa │ Asia  │ Europe │ North_America │ Oceania │ South_America │
│      varchar       │ int64  │ int64 │ int64  │     int64     │  int64  │     int64     │
├────────────────────┼────────┼───────┼────────┼───────────────┼─────────┼───────────────┤
│ mid                │     82 │    88 │     52 │           131 │      33 │            63 │
│ major              │     14 │   103 │    100 │           118 │      10 │            12 │
│ major and military │      0 │     9 │      1 │             2 │       2 │             0 │
│ mid and military   │      1 │     6 │      4 │             1 │       0 │             2 │
│ spaceport          │      0 │     1 │      1 │             1 │       0 │             0 │
│ military major     │      1 │     1 │      1 │             1 │       0 │             0 │
│ military mid       │      0 │     7 │      2 │             0 │       0 │             0 │
│ military           │      0 │     2 │      0 │             0 │       0 │             0 │
│ small              │      0 │     2 │      0 │             0 │       0 │             0 │
└────────────────────┴────────┴───────┴────────┴───────────────┴─────────┴───────────────┘

There is a 'location' attribute to each airport as well.

SELECT   a.location,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'Africa')        AS Africa,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'Asia')          AS Asia,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'Europe')        AS Europe,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'North America') AS North_America,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'Oceania')       AS Oceania,
         COUNT(*) FILTER (WHERE b.CONTINENT = 'South America') AS South_America,
FROM     ST_READ('10m_cultural/ne_10m_airports.shx') a
LEFT JOIN countries b
    ON ST_INTERSECTS(ST_CENTROID(a.geom), b.geom)
GROUP BY 1
ORDER BY North_America DESC;
┌─────────────┬────────┬───────┬────────┬───────────────┬─────────┬───────────────┐
│  location   │ Africa │ Asia  │ Europe │ North_America │ Oceania │ South_America │
│   varchar   │ int64  │ int64 │ int64  │     int64     │  int64  │     int64     │
├─────────────┼────────┼───────┼────────┼───────────────┼─────────┼───────────────┤
│ terminal    │     90 │   185 │    135 │           229 │      40 │            72 │
│ ramp        │      5 │    18 │     13 │            11 │       2 │             2 │
│ approximate │      0 │     1 │      1 │             5 │       1 │             0 │
│ runway      │      3 │    14 │      9 │             5 │       2 │             3 │
│ parking     │      0 │     1 │      2 │             4 │       0 │             0 │
│ freight     │      0 │     0 │      1 │             0 │       0 │             0 │
└─────────────┴────────┴───────┴────────┴───────────────┴─────────┴───────────────┘

I did a spot check of locations across the globe and I couldn't find a misplaced airport location.

Maritime Ports

There are 1,000 maritime ports. These are the largest ports in Europe, North Africa and the Middle East.

Natural Earth Ports

I spot-checked a number of ports and, with the exception of most of the ports in China, most are precisely placed.

Natural Earth Jeddah Port

Rail Networks

This is the rail network geometry for the entire globe.

Natural Earth Global Rail

Below are the rail networks across Europe.

Natural Earth Rail

There are also 17 ferry rail lines listed. One is in New Zealand, three are in Japan and the rest are in Europe.

Natural Earth Rail Ferry

Relief Maps

There are 18 relief / height maps included in the raster dataset. Below is the "Natural Earth II with Shaded Relief, Water, and Drainages" map with the Urban Areas polygons overlay it. The Map is projected in EPSG:3300.

Natural Earth II with Shaded Relief, Water, and Drainages

Every TIFF has counterpart files containing projection information. This allows you to drop the TIFF file onto QGIS or ArcGIS Pro and it'll position itself on the globe properly.

They mix and match features and all but the Ocean Bottom map comes in two resolutions. The low-resolution versions are 16200 x 8100 and are denoted by LR in the filename. These are typically around ~320 MB in size. The high-resolution images are 21600 x 10800, contain HR in the filename and are typically ~560 MB in size.

Below I've put together a table in DuckDB with the relief maps details. I'll use this to pull a list of the descriptions of the high-resolution maps.

$ cd ~/naturalearth/10m_raster

$ echo "basename;width;height;bytes;description" > descriptions.csv

$ for FILENAME in *.tif; do
      BASENAME=`echo $FILENAME | sed 's/\.tif//g'`
      WIDTH=`exiftool $FILENAME | grep '^Image Width' | cut -d\: -f2`
      HEIGHT=`exiftool $FILENAME | grep '^Image Height' | cut -d\: -f2`
      DESCRIPTION=`grep '<title>' $BASENAME.README.html | sed 's/<title>//g' | sed 's/ | Natural Earth<\/title>//g'`
      BYTES=`wc -c $FILENAME | cut -d' ' -f1`
      echo "$BASENAME;$WIDTH;$HEIGHT;$BYTES;$DESCRIPTION" >> descriptions.csv
  done

$ ~/duckdb
CREATE OR REPLACE TABLE naturalearth AS
    SELECT *
    FROM READ_CSV('descriptions.csv',
                  delim=';',
                  auto_detect=true)
    ORDER BY width,
             description;

SELECT   basename,
         description
FROM     naturalearth
WHERE    basename LIKE '%HR%'
ORDER BY 2;
┌───────────────────┬─────────────────────────────────────────────────────────────────────────┐
│     basename      │                               description                               │
│      varchar      │                                 varchar                                 │
├───────────────────┼─────────────────────────────────────────────────────────────────────────┤
│ HYP_HR_SR_OB_DR   │ Cross Blended Hypso with Relief, Water, Drains, and Ocean Bottom        │
│ HYP_HR_SR         │ Cross Blended Hypso with Shaded Relief                                  │
│ HYP_HR_SR_W       │ Cross Blended Hypso with Shaded Relief and Water                        │
│ HYP_HR_SR_W_DR    │ Cross Blended Hypso with Shaded Relief, Water, and Drainages            │
│ GRAY_HR_SR        │ Gray Earth with Shaded Relief and Hypsography                           │
│ GRAY_HR_SR_OB_DR  │ Gray Earth with Shaded Relief, Hypsography, Ocean Bottom, and Drainages │
│ GRAY_HR_SR_W      │ Gray Earth with Shaded Relief, Hypsography, and Flat Water              │
│ GRAY_HR_SR_OB     │ Gray Earth with Shaded Relief, Hypsography, and Ocean Bottom            │
│ NE1_HR_LC         │ Natural Earth I                                                         │
│ NE1_HR_LC_SR      │ Natural Earth I with Shaded Relief                                      │
│ NE1_HR_LC_SR_W    │ Natural Earth I with Shaded Relief and Water                            │
│ NE1_HR_LC_SR_W_DR │ Natural Earth I with Shaded Relief, Water, and Drainages                │
│ NE2_HR_LC         │ Natural Earth II                                                        │
│ NE2_HR_LC_SR      │ Natural Earth II with Shaded Relief                                     │
│ NE2_HR_LC_SR_W    │ Natural Earth II with Shaded Relief and Water                           │
│ NE2_HR_LC_SR_W_DR │ Natural Earth II with Shaded Relief, Water, and Drainages               │
│ SR_HR             │ Shaded Relief Basic                                                     │
├───────────────────┴─────────────────────────────────────────────────────────────────────────┤
│ 17 rows                                                                           2 columns │
└─────────────────────────────────────────────────────────────────────────────────────────────┘

Every image includes a documentation file as well.

Natural Earth Ocean Bottom Documentation

The Ocean Bottom TIFF (OB_LR.tif) looks more detailed than the bathymetry / ocean depth vectors in the physical dataset but it doesn't look as sharp when zoomed into.

That said, this is a single image that can be dropped into a project and might suit your tastes more.

Below I've taken a screenshot of the Caribbean comparing the two. The polygons are on the left and the TIFF is on the right.

Natural Earth Ocean Bottom Raster
Thank you for taking the time to read this post. I offer both consulting and hands-on development services to clients in North America and Europe. If you'd like to discuss how my offerings can help your business please contact me via LinkedIn.

Copyright © 2014 - 2024 Mark Litwintschik. This site's template is based off a template by Giulio Fidente.