exupero's blog
RSSApps

Mid-oceanic ridge trace

I haven't found geographic coordinates for the mid-ocean ridge, so I'm going to trace it from this image of seafloor crustal age:

Seafloor crustal age

I want to trace the main loop of the mid-ocean ridge without going off the edges of the map, so let's rotate the map to put Asia in the middle:

There's a repeating a slice of eastern Asia on both sides of the map, so here's a version that removes the overlap, aligning on the mid-ocean ridge in the Indian Ocean as best as possible:

Here's the trace around the main mid-ocean ridge:

I've imagined a link between where the mid-ocean ridge goes under Alaska and where it emerges from eastern Russia in the Arctic Ocean, though I've only seen scant evidence to support such a link. For the moment it makes a convenient connection to complete the loop. I've also omitted several minor spurs, a couple small loops in the eastern Pacific, and a ridge that ducks under South America and reconnects in the south Atlantic.

I traced this line manually on the above image, using essentially the following JavaScript:

function trace(svg) {
  const points = [];

  const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
  path.setAttribute('stroke', 'black');
  path.setAttribute('stroke-width', 1);
  path.setAttribute('fill', 'none');
  svg.appendChild(path);

  svg.addEventListener('click', e => {
    const bbox = svg.getBoundingClientRect();
    points.push([e.clientX - bbox.left, e.clientY - bbox.top]);
    path.setAttribute('d', `M${points.join('L')}`);
  });

  return points;
}

After some trial and error with different projections, this seems to be an equirectangular projection. I found it by browsing d3-geo's catalog of projections and trying different formulas on rough outlines of Africa and Greenland (traced on geojson.io). Here's how they align on the seafloor map under an equirectangular projection:

The equirectangular projection is simplest possible projection, as it just uses longitude as the x-coordinate and latitude as the y-coordinate. Inverting the projection is a no-op, which means we can now render the trace above on a (spinnable) sphere:

It's been said that the mid-ocean ridge wraps around the globe like the seam on a baseball, and if you rotate the sphere above you can see that's not just a metaphor, it really does bear the signature C shape of a baseball seam, something that's much harder to see on flat-map projections.

I've posted the GeoJSON data in this Gist. If you have improvements to suggest, or you know where I can find better data, please email me.