I have a 2D hexagonal grid map. Each hex cell has a height value used to determine if it's water or ocean. I'm trying to think of a good way to determine and label bodies of water. Oceans and inland seas are easy (using a flood fill algorithm).

But what about bodies of water like the Mediterranean? Bodies of water that are attached to larger ones (where "seas" and "gulfs" differ only by the size of the opening)?

Here's an example of what I'm trying to detect (the blue body of water in the middle of the image, which should be labelled differently from the larger body of ocean on the left, despite being technically connected):


Any ideas?


Question: What is an orbital boundary surface?
Answer: It means that the boundary surface is a closed surface or set of closed surfaces, such that there is a 90% chance that an electron is interior of the closed surface and a 10% chance that the electron is exterior of the closed surface.

A better way of specifying how an orbital is represented is "equal probability boundary surface" which further specifies that each point on the surface must have any equal electron probablity density, and the surface must be a closed surface or set of closed surfaces with a 90% (or other percent) chance of containing the electron at a given time.  

Without the "equal probability" statement there are infinite different boundary surfaces for each orbital (infinite different ways to enclose 90% of the probability density).