home / tils / til

Menu
  • GraphQL API

til: gis_natural-earth-in-spatialite-and-datasette.md

This data as json

path topic title url body html shot created created_utc updated updated_utc shot_hash slug
gis_natural-earth-in-spatialite-and-datasette.md gis Natural Earth in SpatiaLite and Datasette https://github.com/simonw/til/blob/main/gis/natural-earth-in-spatialite-and-datasette.md Natural Earth ([website](https://www.naturalearthdata.com/), [Wikipedia](https://en.wikipedia.org/wiki/Natural_Earth)) is a a public domain map dataset. It's distributed in a bunch of different formats - one of them is a SQLite database file. http://naciscdn.org/naturalearth/packages/natural_earth_vector.sqlite.zip - this is a 423MB file which decompresses to provide a 791MB `packages/natural_earth_vector.sqlite` file. I opened it in Datasette like this: datasette --load-extension spatialite \ ~/Downloads/natural_earth_vector.sqlite/packages/natural_earth_vector.sqlite I had previously installed Datasette and SpatiaLite using Homebrew: brew install datasette spatialite-tools ## Database format The database contains 181 tables, for different layers at different scales. Those tables are listed below. Each table has a bunch of columns and a `GEOMETRY` column. That geometry column contains data stored in WKB - Well-Known Binary format. If you have SpatiaLite you can convert that column to GeoJSON like so: AsGeoJSON(GeomFromWKB(GEOMETRY)) For example, here are the largest "urban areas" at 50m scale: ```sql select AsGeoJSON(GeomFromWKB(GEOMETRY)) from ne_50m_urban_areas order by area_sqkm desc ``` Every country at 50m scale (a good balance between detail and overall size): ```sql select AsGeoJSON(GeomFromWKB(GEOMETRY)), * from ne_50m_admin_0_countries ``` This query draws a coloured map of countries using the `datasette-geojson-map` and `sqlite-colorbrewer` plugins: ```sql select ogc_fid, GeomFromWKB(GEOMETRY) as geometry, colorbrewer('Paired', 9, MAPCOLOR9 - 1) as fill from ne_10m_admin_0_countries ``` <img width="1098" alt="Screenshot of a map showing different countries in random colours" src="https://user-images.githubusercontent.com/9599/156858327-08f99300-29fd-4ca8-a268-f8c2ec659349.png"> The `ne_10m_admin_1_states_provinces` table is useful: it has subdivisions for a bunch of different countries. Here's the UK divided into counties: ```sql select ogc_fid, GeomFromWKB(GEOMETRY) as geometry, featurecla, scalerank, adm1_code, diss_me, iso_3166_2, wikipedia, iso_a2, adm0_sr, name, name_alt, type, type_en, area_sqkm, latitude, longitude, admin from ne_10m_admin_1_states_provinces where admin = 'United Kingdom' ``` I tried this with `select *, GeomFromWKB(GEOMETRY) as geometry` first but it didn't work with `datasette-geojson-map` because the `*` picked up the original `GEOMETRY` column in the wrong format. The scales are: - Large scale data, 1:10m - most detailed - Medium scale data, 1:50m - Small scale data, 1:110m - least detailed ## Exploring with Datasette plugins With the `datasette-leaflet-geojson` plugin installed, any column that returns GeoJSON (from `AsGeoJSON(GeomFromWKB(GEOMETRY))`) will render as a little map, no matter what the column name. If you install `datasette-geojson-map` you can seee a single map with all of the shapes on - you need to create a `geometry` column containing a SpatiaLite geometry, which you can do like this: ```sql select ogc_fid, GeomFromWKB(GEOMETRY) as geometry, * from ne_50m_coastline ``` ## Full list of tables - `ne_10m_admin_0_antarctic_claim_limit_lines` - `ne_10m_admin_0_antarctic_claims` - `ne_10m_admin_0_boundary_lines_disputed_areas` - `ne_10m_admin_0_boundary_lines_land` - `ne_10m_admin_0_boundary_lines_map_units` - `ne_10m_admin_0_boundary_lines_maritime_indicator` - `ne_10m_admin_0_boundary_lines_maritime_indicator_chn` - `ne_10m_admin_0_countries` - `ne_10m_admin_0_countries_arg` - `ne_10m_admin_0_countries_bdg` - `ne_10m_admin_0_countries_bra` - `ne_10m_admin_0_countries_chn` - `ne_10m_admin_0_countries_deu` - `ne_10m_admin_0_countries_egy` - `ne_10m_admin_0_countries_esp` - `ne_10m_admin_0_countries_fra` - `ne_10m_admin_0_countries_gbr` - `ne_10m_admin_0_countries_grc` - `ne_10m_admin_0_countries_idn` - `ne_10m_admin_0_countries_ind` - `ne_10m_admin_0_countries_isr` - `ne_10m_admin_0_countries_ita` - `ne_10m_admin_0_countries_jpn` - `ne_10m_admin_0_countries_kor` - `ne_10m_admin_0_countries_lakes` - `ne_10m_admin_0_countries_mar` - `ne_10m_admin_0_countries_nep` - `ne_10m_admin_0_countries_nld` - `ne_10m_admin_0_countries_pak` - `ne_10m_admin_0_countries_pol` - `ne_10m_admin_0_countries_prt` - `ne_10m_admin_0_countries_pse` - `ne_10m_admin_0_countries_rus` - `ne_10m_admin_0_countries_sau` - `ne_10m_admin_0_countries_swe` - `ne_10m_admin_0_countries_tur` - `ne_10m_admin_0_countries_twn` - `ne_10m_admin_0_countries_ukr` - `ne_10m_admin_0_countries_usa` - `ne_10m_admin_0_countries_vnm` - `ne_10m_admin_0_disputed_areas` - `ne_10m_admin_0_disputed_areas_scale_rank_minor_islands` - `ne_10m_admin_0_label_points` - `ne_10m_admin_0_map_subunits` - `ne_10m_admin_0_map_units` - `ne_10m_admin_0_names` - `ne_10m_admin_0_pacific_groupings` - `ne_10m_admin_0_scale_rank` - `ne_10m_admin_0_scale_rank_minor_islands` - `ne_10m_admin_0_seams` - `ne_10m_admin_0_sovereignty` - `ne_10m_admin_1_label_points` - `ne_10m_admin_1_label_points_details` - `ne_10m_admin_1_seams` - `ne_10m_admin_1_sel` - `ne_10m_admin_1_states_provinces` - `ne_10m_admin_1_states_provinces_lakes` - `ne_10m_admin_1_states_provinces_lines` - `ne_10m_admin_1_states_provinces_scale_rank` - `ne_10m_admin_1_states_provinces_scale_rank_minor_islands` - `ne_10m_admin_2_counties` - `ne_10m_admin_2_counties_lakes` - `ne_10m_admin_2_counties_lines` - `ne_10m_admin_2_counties_scale_rank` - `ne_10m_admin_2_counties_scale_rank_minor_islands` - `ne_10m_admin_2_counties_to_match` - `ne_10m_admin_2_label_points` - `ne_10m_admin_2_label_points_details` - `ne_10m_airports` - `ne_10m_antarctic_ice_shelves_lines` - `ne_10m_antarctic_ice_shelves_polys` - `ne_10m_coastline` - `ne_10m_geographic_lines` - `ne_10m_geography_marine_polys` - `ne_10m_geography_regions_elevation_points` - `ne_10m_geography_regions_points` - `ne_10m_geography_regions_polys` - `ne_10m_glaciated_areas` - `ne_10m_lakes` - `ne_10m_lakes_australia` - `ne_10m_lakes_europe` - `ne_10m_lakes_historic` - `ne_10m_lakes_north_america` - `ne_10m_lakes_pluvial` - `ne_10m_land` - `ne_10m_land_ocean_label_points` - `ne_10m_land_ocean_seams` - `ne_10m_land_scale_rank` - `ne_10m_minor_islands` - `ne_10m_minor_islands_coastline` - `ne_10m_minor_islands_label_points` - `ne_10m_ocean` - `ne_10m_ocean_scale_rank` - `ne_10m_parks_and_protected_lands_area` - `ne_10m_parks_and_protected_lands_line` - `ne_10m_parks_and_protected_lands_point` - `ne_10m_parks_and_protected_lands_scale_rank` - `ne_10m_playas` - `ne_10m_populated_places` - `ne_10m_populated_places_simple` - `ne_10m_ports` - `ne_10m_railroads` - `ne_10m_railroads_north_america` - `ne_10m_reefs` - `ne_10m_rivers_australia` - `ne_10m_rivers_europe` - `ne_10m_rivers_lake_centerlines` - `ne_10m_rivers_lake_centerlines_scale_rank` - `ne_10m_rivers_north_america` - `ne_10m_roads` - `ne_10m_roads_north_america` - `ne_10m_time_zones` - `ne_10m_urban_areas` - `ne_10m_urban_areas_landscan` - `ne_110m_admin_0_boundary_lines_land` - `ne_110m_admin_0_countries` - `ne_110m_admin_0_countries_lakes` - `ne_110m_admin_0_map_units` - `ne_110m_admin_0_pacific_groupings` - `ne_110m_admin_0_scale_rank` - `ne_110m_admin_0_sovereignty` - `ne_110m_admin_0_tiny_countries` - `ne_110m_admin_1_states_provinces` - `ne_110m_admin_1_states_provinces_lakes` - `ne_110m_admin_1_states_provinces_lines` - `ne_110m_admin_1_states_provinces_scale_rank` - `ne_110m_coastline` - `ne_110m_geographic_lines` - `ne_110m_geography_marine_polys` - `ne_110m_geography_regions_elevation_points` - `ne_110m_geography_regions_points` - `ne_110m_geography_regions_polys` - `ne_110m_glaciated_areas` - `ne_110m_lakes` - `ne_110m_land` - `ne_110m_ocean` - `ne_110m_populated_places` - `ne_110m_populated_places_simple` - `ne_110m_rivers_lake_centerlines` - `ne_50m_admin_0_boundary_lines_disputed_areas` - `ne_50m_admin_0_boundary_lines_land` - `ne_50m_admin_0_boundary_lines_maritime_indicator` - `ne_50m_admin_0_boundary_lines_maritime_indicator_chn` - `ne_50m_admin_0_boundary_map_units` - `ne_50m_admin_0_breakaway_disputed_areas` - `ne_50m_admin_0_breakaway_disputed_areas_scale_rank` - `ne_50m_admin_0_countries` - `ne_50m_admin_0_countries_lakes` - `ne_50m_admin_0_map_subunits` - `ne_50m_admin_0_map_units` - `ne_50m_admin_0_pacific_groupings` - `ne_50m_admin_0_scale_rank` - `ne_50m_admin_0_sovereignty` - `ne_50m_admin_0_tiny_countries` - `ne_50m_admin_0_tiny_countries_scale_rank` - `ne_50m_admin_1_seams` - `ne_50m_admin_1_states_provinces` - `ne_50m_admin_1_states_provinces_lakes` - `ne_50m_admin_1_states_provinces_lines` - `ne_50m_admin_1_states_provinces_scale_rank` - `ne_50m_airports` - `ne_50m_antarctic_ice_shelves_lines` - `ne_50m_antarctic_ice_shelves_polys` - `ne_50m_coastline` - `ne_50m_geographic_lines` - `ne_50m_geography_marine_polys` - `ne_50m_geography_regions_elevation_points` - `ne_50m_geography_regions_points` - `ne_50m_geography_regions_polys` - `ne_50m_glaciated_areas` - `ne_50m_lakes` - `ne_50m_lakes_historic` - `ne_50m_land` - `ne_50m_ocean` - `ne_50m_playas` - `ne_50m_populated_places` - `ne_50m_populated_places_simple` - `ne_50m_ports` - `ne_50m_rivers_lake_centerlines` - `ne_50m_rivers_lake_centerlines_scale_rank` - `ne_50m_urban_areas` <p>Natural Earth (<a href="https://www.naturalearthdata.com/" rel="nofollow">website</a>, <a href="https://en.wikipedia.org/wiki/Natural_Earth" rel="nofollow">Wikipedia</a>) is a a public domain map dataset.</p> <p>It's distributed in a bunch of different formats - one of them is a SQLite database file.</p> <p><a href="http://naciscdn.org/naturalearth/packages/natural_earth_vector.sqlite.zip" rel="nofollow">http://naciscdn.org/naturalearth/packages/natural_earth_vector.sqlite.zip</a> - this is a 423MB file which decompresses to provide a 791MB <code>packages/natural_earth_vector.sqlite</code> file.</p> <p>I opened it in Datasette like this:</p> <pre><code>datasette --load-extension spatialite \ ~/Downloads/natural_earth_vector.sqlite/packages/natural_earth_vector.sqlite </code></pre> <p>I had previously installed Datasette and SpatiaLite using Homebrew:</p> <pre><code>brew install datasette spatialite-tools </code></pre> <h2> <a id="user-content-database-format" class="anchor" href="#database-format" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Database format</h2> <p>The database contains 181 tables, for different layers at different scales. Those tables are listed below.</p> <p>Each table has a bunch of columns and a <code>GEOMETRY</code> column. That geometry column contains data stored in WKB - Well-Known Binary format.</p> <p>If you have SpatiaLite you can convert that column to GeoJSON like so:</p> <pre><code>AsGeoJSON(GeomFromWKB(GEOMETRY)) </code></pre> <p>For example, here are the largest "urban areas" at 50m scale:</p> <div class="highlight highlight-source-sql"><pre><span class="pl-k">select</span> AsGeoJSON(GeomFromWKB(GEOMETRY)) <span class="pl-k">from</span> ne_50m_urban_areas <span class="pl-k">order by</span> area_sqkm <span class="pl-k">desc</span></pre></div> <p>Every country at 50m scale (a good balance between detail and overall size):</p> <div class="highlight highlight-source-sql"><pre><span class="pl-k">select</span> AsGeoJSON(GeomFromWKB(GEOMETRY)), <span class="pl-k">*</span> <span class="pl-k">from</span> ne_50m_admin_0_countries</pre></div> <p>This query draws a coloured map of countries using the <code>datasette-geojson-map</code> and <code>sqlite-colorbrewer</code> plugins:</p> <div class="highlight highlight-source-sql"><pre><span class="pl-k">select</span> ogc_fid, GeomFromWKB(GEOMETRY) <span class="pl-k">as</span> geometry, colorbrewer(<span class="pl-s"><span class="pl-pds">'</span>Paired<span class="pl-pds">'</span></span>, <span class="pl-c1">9</span>, MAPCOLOR9 <span class="pl-k">-</span> <span class="pl-c1">1</span>) <span class="pl-k">as</span> fill <span class="pl-k">from</span> ne_10m_admin_0_countries</pre></div> <p><a href="https://user-images.githubusercontent.com/9599/156858327-08f99300-29fd-4ca8-a268-f8c2ec659349.png" target="_blank" rel="nofollow"><img width="1098" alt="Screenshot of a map showing different countries in random colours" src="https://user-images.githubusercontent.com/9599/156858327-08f99300-29fd-4ca8-a268-f8c2ec659349.png" style="max-width:100%;"></a></p> <p>The <code>ne_10m_admin_1_states_provinces</code> table is useful: it has subdivisions for a bunch of different countries. Here's the UK divided into counties:</p> <div class="highlight highlight-source-sql"><pre><span class="pl-k">select</span> ogc_fid, GeomFromWKB(GEOMETRY) <span class="pl-k">as</span> geometry, featurecla, scalerank, adm1_code, diss_me, iso_3166_2, wikipedia, iso_a2, adm0_sr, name, name_alt, type, type_en, area_sqkm, latitude, longitude, admin <span class="pl-k">from</span> ne_10m_admin_1_states_provinces <span class="pl-k">where</span> admin <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>United Kingdom<span class="pl-pds">'</span></span></pre></div> <p>I tried this with <code>select *, GeomFromWKB(GEOMETRY) as geometry</code> first but it didn't work with <code>datasette-geojson-map</code> because the <code>*</code> picked up the original <code>GEOMETRY</code> column in the wrong format.</p> <p>The scales are:</p> <ul> <li>Large scale data, 1:10m - most detailed</li> <li>Medium scale data, 1:50m</li> <li>Small scale data, 1:110m - least detailed</li> </ul> <h2> <a id="user-content-exploring-with-datasette-plugins" class="anchor" href="#exploring-with-datasette-plugins" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Exploring with Datasette plugins</h2> <p>With the <code>datasette-leaflet-geojson</code> plugin installed, any column that returns GeoJSON (from <code>AsGeoJSON(GeomFromWKB(GEOMETRY))</code>) will render as a little map, no matter what the column name.</p> <p>If you install <code>datasette-geojson-map</code> you can seee a single map with all of the shapes on - you need to create a <code>geometry</code> column containing a SpatiaLite geometry, which you can do like this:</p> <div class="highlight highlight-source-sql"><pre><span class="pl-k">select</span> ogc_fid, GeomFromWKB(GEOMETRY) <span class="pl-k">as</span> geometry, <span class="pl-k">*</span> <span class="pl-k">from</span> ne_50m_coastline</pre></div> <h2> <a id="user-content-full-list-of-tables" class="anchor" href="#full-list-of-tables" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Full list of tables</h2> <ul> <li><code>ne_10m_admin_0_antarctic_claim_limit_lines</code></li> <li><code>ne_10m_admin_0_antarctic_claims</code></li> <li><code>ne_10m_admin_0_boundary_lines_disputed_areas</code></li> <li><code>ne_10m_admin_0_boundary_lines_land</code></li> <li><code>ne_10m_admin_0_boundary_lines_map_units</code></li> <li><code>ne_10m_admin_0_boundary_lines_maritime_indicator</code></li> <li><code>ne_10m_admin_0_boundary_lines_maritime_indicator_chn</code></li> <li><code>ne_10m_admin_0_countries</code></li> <li><code>ne_10m_admin_0_countries_arg</code></li> <li><code>ne_10m_admin_0_countries_bdg</code></li> <li><code>ne_10m_admin_0_countries_bra</code></li> <li><code>ne_10m_admin_0_countries_chn</code></li> <li><code>ne_10m_admin_0_countries_deu</code></li> <li><code>ne_10m_admin_0_countries_egy</code></li> <li><code>ne_10m_admin_0_countries_esp</code></li> <li><code>ne_10m_admin_0_countries_fra</code></li> <li><code>ne_10m_admin_0_countries_gbr</code></li> <li><code>ne_10m_admin_0_countries_grc</code></li> <li><code>ne_10m_admin_0_countries_idn</code></li> <li><code>ne_10m_admin_0_countries_ind</code></li> <li><code>ne_10m_admin_0_countries_isr</code></li> <li><code>ne_10m_admin_0_countries_ita</code></li> <li><code>ne_10m_admin_0_countries_jpn</code></li> <li><code>ne_10m_admin_0_countries_kor</code></li> <li><code>ne_10m_admin_0_countries_lakes</code></li> <li><code>ne_10m_admin_0_countries_mar</code></li> <li><code>ne_10m_admin_0_countries_nep</code></li> <li><code>ne_10m_admin_0_countries_nld</code></li> <li><code>ne_10m_admin_0_countries_pak</code></li> <li><code>ne_10m_admin_0_countries_pol</code></li> <li><code>ne_10m_admin_0_countries_prt</code></li> <li><code>ne_10m_admin_0_countries_pse</code></li> <li><code>ne_10m_admin_0_countries_rus</code></li> <li><code>ne_10m_admin_0_countries_sau</code></li> <li><code>ne_10m_admin_0_countries_swe</code></li> <li><code>ne_10m_admin_0_countries_tur</code></li> <li><code>ne_10m_admin_0_countries_twn</code></li> <li><code>ne_10m_admin_0_countries_ukr</code></li> <li><code>ne_10m_admin_0_countries_usa</code></li> <li><code>ne_10m_admin_0_countries_vnm</code></li> <li><code>ne_10m_admin_0_disputed_areas</code></li> <li><code>ne_10m_admin_0_disputed_areas_scale_rank_minor_islands</code></li> <li><code>ne_10m_admin_0_label_points</code></li> <li><code>ne_10m_admin_0_map_subunits</code></li> <li><code>ne_10m_admin_0_map_units</code></li> <li><code>ne_10m_admin_0_names</code></li> <li><code>ne_10m_admin_0_pacific_groupings</code></li> <li><code>ne_10m_admin_0_scale_rank</code></li> <li><code>ne_10m_admin_0_scale_rank_minor_islands</code></li> <li><code>ne_10m_admin_0_seams</code></li> <li><code>ne_10m_admin_0_sovereignty</code></li> <li><code>ne_10m_admin_1_label_points</code></li> <li><code>ne_10m_admin_1_label_points_details</code></li> <li><code>ne_10m_admin_1_seams</code></li> <li><code>ne_10m_admin_1_sel</code></li> <li><code>ne_10m_admin_1_states_provinces</code></li> <li><code>ne_10m_admin_1_states_provinces_lakes</code></li> <li><code>ne_10m_admin_1_states_provinces_lines</code></li> <li><code>ne_10m_admin_1_states_provinces_scale_rank</code></li> <li><code>ne_10m_admin_1_states_provinces_scale_rank_minor_islands</code></li> <li><code>ne_10m_admin_2_counties</code></li> <li><code>ne_10m_admin_2_counties_lakes</code></li> <li><code>ne_10m_admin_2_counties_lines</code></li> <li><code>ne_10m_admin_2_counties_scale_rank</code></li> <li><code>ne_10m_admin_2_counties_scale_rank_minor_islands</code></li> <li><code>ne_10m_admin_2_counties_to_match</code></li> <li><code>ne_10m_admin_2_label_points</code></li> <li><code>ne_10m_admin_2_label_points_details</code></li> <li><code>ne_10m_airports</code></li> <li><code>ne_10m_antarctic_ice_shelves_lines</code></li> <li><code>ne_10m_antarctic_ice_shelves_polys</code></li> <li><code>ne_10m_coastline</code></li> <li><code>ne_10m_geographic_lines</code></li> <li><code>ne_10m_geography_marine_polys</code></li> <li><code>ne_10m_geography_regions_elevation_points</code></li> <li><code>ne_10m_geography_regions_points</code></li> <li><code>ne_10m_geography_regions_polys</code></li> <li><code>ne_10m_glaciated_areas</code></li> <li><code>ne_10m_lakes</code></li> <li><code>ne_10m_lakes_australia</code></li> <li><code>ne_10m_lakes_europe</code></li> <li><code>ne_10m_lakes_historic</code></li> <li><code>ne_10m_lakes_north_america</code></li> <li><code>ne_10m_lakes_pluvial</code></li> <li><code>ne_10m_land</code></li> <li><code>ne_10m_land_ocean_label_points</code></li> <li><code>ne_10m_land_ocean_seams</code></li> <li><code>ne_10m_land_scale_rank</code></li> <li><code>ne_10m_minor_islands</code></li> <li><code>ne_10m_minor_islands_coastline</code></li> <li><code>ne_10m_minor_islands_label_points</code></li> <li><code>ne_10m_ocean</code></li> <li><code>ne_10m_ocean_scale_rank</code></li> <li><code>ne_10m_parks_and_protected_lands_area</code></li> <li><code>ne_10m_parks_and_protected_lands_line</code></li> <li><code>ne_10m_parks_and_protected_lands_point</code></li> <li><code>ne_10m_parks_and_protected_lands_scale_rank</code></li> <li><code>ne_10m_playas</code></li> <li><code>ne_10m_populated_places</code></li> <li><code>ne_10m_populated_places_simple</code></li> <li><code>ne_10m_ports</code></li> <li><code>ne_10m_railroads</code></li> <li><code>ne_10m_railroads_north_america</code></li> <li><code>ne_10m_reefs</code></li> <li><code>ne_10m_rivers_australia</code></li> <li><code>ne_10m_rivers_europe</code></li> <li><code>ne_10m_rivers_lake_centerlines</code></li> <li><code>ne_10m_rivers_lake_centerlines_scale_rank</code></li> <li><code>ne_10m_rivers_north_america</code></li> <li><code>ne_10m_roads</code></li> <li><code>ne_10m_roads_north_america</code></li> <li><code>ne_10m_time_zones</code></li> <li><code>ne_10m_urban_areas</code></li> <li><code>ne_10m_urban_areas_landscan</code></li> <li><code>ne_110m_admin_0_boundary_lines_land</code></li> <li><code>ne_110m_admin_0_countries</code></li> <li><code>ne_110m_admin_0_countries_lakes</code></li> <li><code>ne_110m_admin_0_map_units</code></li> <li><code>ne_110m_admin_0_pacific_groupings</code></li> <li><code>ne_110m_admin_0_scale_rank</code></li> <li><code>ne_110m_admin_0_sovereignty</code></li> <li><code>ne_110m_admin_0_tiny_countries</code></li> <li><code>ne_110m_admin_1_states_provinces</code></li> <li><code>ne_110m_admin_1_states_provinces_lakes</code></li> <li><code>ne_110m_admin_1_states_provinces_lines</code></li> <li><code>ne_110m_admin_1_states_provinces_scale_rank</code></li> <li><code>ne_110m_coastline</code></li> <li><code>ne_110m_geographic_lines</code></li> <li><code>ne_110m_geography_marine_polys</code></li> <li><code>ne_110m_geography_regions_elevation_points</code></li> <li><code>ne_110m_geography_regions_points</code></li> <li><code>ne_110m_geography_regions_polys</code></li> <li><code>ne_110m_glaciated_areas</code></li> <li><code>ne_110m_lakes</code></li> <li><code>ne_110m_land</code></li> <li><code>ne_110m_ocean</code></li> <li><code>ne_110m_populated_places</code></li> <li><code>ne_110m_populated_places_simple</code></li> <li><code>ne_110m_rivers_lake_centerlines</code></li> <li><code>ne_50m_admin_0_boundary_lines_disputed_areas</code></li> <li><code>ne_50m_admin_0_boundary_lines_land</code></li> <li><code>ne_50m_admin_0_boundary_lines_maritime_indicator</code></li> <li><code>ne_50m_admin_0_boundary_lines_maritime_indicator_chn</code></li> <li><code>ne_50m_admin_0_boundary_map_units</code></li> <li><code>ne_50m_admin_0_breakaway_disputed_areas</code></li> <li><code>ne_50m_admin_0_breakaway_disputed_areas_scale_rank</code></li> <li><code>ne_50m_admin_0_countries</code></li> <li><code>ne_50m_admin_0_countries_lakes</code></li> <li><code>ne_50m_admin_0_map_subunits</code></li> <li><code>ne_50m_admin_0_map_units</code></li> <li><code>ne_50m_admin_0_pacific_groupings</code></li> <li><code>ne_50m_admin_0_scale_rank</code></li> <li><code>ne_50m_admin_0_sovereignty</code></li> <li><code>ne_50m_admin_0_tiny_countries</code></li> <li><code>ne_50m_admin_0_tiny_countries_scale_rank</code></li> <li><code>ne_50m_admin_1_seams</code></li> <li><code>ne_50m_admin_1_states_provinces</code></li> <li><code>ne_50m_admin_1_states_provinces_lakes</code></li> <li><code>ne_50m_admin_1_states_provinces_lines</code></li> <li><code>ne_50m_admin_1_states_provinces_scale_rank</code></li> <li><code>ne_50m_airports</code></li> <li><code>ne_50m_antarctic_ice_shelves_lines</code></li> <li><code>ne_50m_antarctic_ice_shelves_polys</code></li> <li><code>ne_50m_coastline</code></li> <li><code>ne_50m_geographic_lines</code></li> <li><code>ne_50m_geography_marine_polys</code></li> <li><code>ne_50m_geography_regions_elevation_points</code></li> <li><code>ne_50m_geography_regions_points</code></li> <li><code>ne_50m_geography_regions_polys</code></li> <li><code>ne_50m_glaciated_areas</code></li> <li><code>ne_50m_lakes</code></li> <li><code>ne_50m_lakes_historic</code></li> <li><code>ne_50m_land</code></li> <li><code>ne_50m_ocean</code></li> <li><code>ne_50m_playas</code></li> <li><code>ne_50m_populated_places</code></li> <li><code>ne_50m_populated_places_simple</code></li> <li><code>ne_50m_ports</code></li> <li><code>ne_50m_rivers_lake_centerlines</code></li> <li><code>ne_50m_rivers_lake_centerlines_scale_rank</code></li> <li><code>ne_50m_urban_areas</code></li> </ul> <Binary: 67,288 bytes> 2022-03-04T11:11:55-08:00 2022-03-04T19:11:55+00:00 2022-03-04T16:10:50-08:00 2022-03-05T00:10:50+00:00 5d119fc759211694df235623daa93943 natural-earth-in-spatialite-and-datasette
Powered by Datasette · How this site works · Code of conduct