[GIS] How to properly convert landmass NaturalEarth data into GeoJSON

d3geojsontopojson

100% Newbie. I've been following Mike's d3 Map Tutorial and I've come up against a challenge. I guess my question essentially boils down to: how does one generate the proper GeoJSON/TopoJSON files which allow one to combine the Natural Earth data from ne_110m_land along with Admin 0 – Boundary Lines and Admin 1 – States, Provinces?

I think there's some sort of trick I'm missing for thematic maps. (I guess that's also why Mike may have not covered that in the intro article).?

Thanks!

Seemant

Best Answer

The short answer to your question is:

topojson \
    -o world-110m.json \
    -- \
    land=ne_110m_land.shp \
    states=ne_110m_admin_1_states_provinces.shp

This will produce a topology with "land" and "states" objects. You can omit the land= and states= if you'd prefer the objects to have the file names instead.

However, a couple gotchas to be aware of:

  • The Natural Earth 1:110M dataset for only includes the United States in the Admin 1 — States, Provinces download. The 1:50M resolution download adds Canada to this set, and the highest-resolution 1:10M download includes the entire world. So, if you want to make a world map, you’ll currently need the 1:10M dataset, which you can then simplify as desired. (Though the automatic simplification provided by topojson won’t be as good as the hand-tweaked simplification done by Kelso et al. at Natural Earth.)

  • Only the 1:10M Natural Earth dataset is currently topologically-consistent. This means that there will be some cases where the borders won’t match up exactly between adjacent features in the 1:50M and 1:110M datasets. In practice, this usually isn’t a big problem, but it can prevent some topological algorithms from working perfectly, such as simplification and map coloring. So again, you may need to start with the 1:10M dataset and simplify.

Use additional options to topojson to customize the generated TopoJSON file, such as including properties, increasing the quantization factor to improve accuracy, and enable simplification. There are many examples of converting Natural Earth data to TopoJSON in the world-atlas repository. See the Makefile for details if you want to customize how the TopoJSON is generated (e.g., combine different files, modify properties, change simplification thresholds). And lastly see the topojson command-line reference for an overview of all the available options.