Instead of using the traditional, historically defined boundaries of the world's oceans, I let a clustering algorithm decide how to partition them purely based on geometry.

The method: I generated ~80,000 points uniformly distributed over the Earth's surface using a Fibonacci spiral (avoiding the polar oversampling you get from a regular lat/lon grid). After filtering out all points on land, about 57,000 ocean points remained. I projected them onto a unit sphere in 3D Cartesian coordinates and ran K-Means clustering with k=7.

The results are interesting to compare with the conventional ocean boundaries. The algorithm splits the Atlantic into two regions (north and south) and the Indian Ocean stays as one cluster. The Pacific, being by far the largest ocean, gets carved into four regions: north, south, east, and west.

Tools used: Python, scikit-learn, cartopy (Robinson projection), global-land-mask, numpy.

Posted by 1000_bucks_a_month

25 Comments

  1. Riuchando420 on

    interesting but you get some oddities where part of the gulf of mexico is apart of a primarily pacific ocean sea

  2. Is it even stable? Like what do you get if you rerun it a few times? How do centroids behave? Do they land in similar points or not really? And how does it depend on the method to choose initial centroids?

    Also what about 4 oceans not 7 seas?

  3. Ignoring sailing distance and just taking pure distance is probably the biggest failure point you have here.

    Suez and Panama should 100% be boundaries of things, and yet they both leak seas.

  4. On one hand the Yellow Sea is in the yellow sea. On the other hand, the Red Sea is not in the red sea.

  5. Why not density based clustering? Partitioning algorithms are good for convex shaped clusters and it shows here.

  6. Atlantic Ocean, Arctic Ocean, Indian Ocean, Pacific, Pacific, Pacific, and Pacific Ocean lol

  7. dylantherabbit2016 on

    Cyan: North Atlantic Ocean

    Blue: South Atlantic Ocean

    Pink: American Ocean

    Red: Hawaiian Ocean

    Brown: Indian Ocean

    Yellow: Asian Ocean

    Orange: Oceanic Ocean (Australian Ocean if that’s too confusing)

  8. Oracle-of-Guelph on

    Yeah, if the points are this equally distributed it follows that the sea points are going to as equidistant from each other as possible.

  9. LanaDelHeeey on

    Isn’t the whole thing about the 7 seas that it was more “7 seas known at the time?” Like I don’t think they would have objected to adding new ones when they were found.

    That feels like doing the same thing for “the 13 Colonies” but using the whole modern US area to spread them across. It’s kinda just like a concept clash.