4
$\begingroup$

Anyone know of an existing dataset of areas below sea level? Vector extents would be ideal. Doesn't need to be super detailed for my purposes, but it would be good if it included all areas (e.g. over-estimate is better than under-estimate).

There is a List of places on land with elevations below sea level on Wikipedia, which looks like it's fairly complete, but finding the extents of the below-sea-level area for each of those locations is not likely to be simple.

$\endgroup$
  • $\begingroup$ on the page in your link you can find the sources to all of the places in the article and more.i do not think anybody here can give a better or more detailed answer about this. $\endgroup$ – trond hansen Jan 16 at 6:54
  • $\begingroup$ I've been dabbling with SRTM data with a naive terrain renderer i'm doing. SRTM covers +60°/-56° latitude. Nevertheless, there'll be several 10 GB to comb through (3 arcsec resolution). Generating a polygon along the 0 elevation from the raster data (SRTM or any other) is not a big problem, depends on your GIS system (or a little programming finger exercise). The difficulty will probably be teh georeferencing, if it is not uniform over different sources. $\endgroup$ – user18607 Jan 16 at 11:29
5
$\begingroup$

You could try building one using a global Digital Elevation Model. There are several freely available like TanDEM-X, SRTM, or ASTER GDEM. You'd have to look for all the pixels containing a negative value. Adjacent negative pixels would give you connected regions below sea level, and you could easily estimate their area just by multiplying the number of pixels of a region by the area of one pixel.

I'm not saying it would be easy. The main challenge would probably be that some regions would be split across several tiles.


An update on this. I spent a couple hours trying this as an exercise. I downloaded three tiles from the ASTER global DEM centered around Badwater Basin (Death Valley, USA), one of the regions in the Wikipedia list. I wrote a small (~20 lines) Matlab script that does the following:

  • Binarization of the images, so that every pixel above sea level is set to 0 (black) and every pixel below sea level is set to 1 (white).
  • Concatenation of the three arrays in order to have only one image for the next step (I manually added a fourth, all black array for the sake of dimension consistency).
  • With a binary image, Matlab has a useful function called regionprops that finds all connected regions and returns their properties, such as their area (as a number of pixel).

Here is the result: Badland_Basin_black_and_white I'm pretty happy with it, as it looks very similar to the yellow area labelled "below sea level" on this USGS map. Now, how does it translate in terms of area? According to Matlab, the white region has an area of 1 236 989 pixels. Each pixel being approximately 30x30 meters, it yields a below sea level area of 1 113 km$^2$. The only figure I could find online is 1 425 km$^2$ from Encyclopedia Britannica, with no source. But for me that's close enough to have confidence in my estimate!

Some shortcomings:

  • I knew exactly which tiles contained this particular below sea level region. If you were to go through all tiles (almost 23 000!), you'd have to figure a way to detect when a region is split across multiple tiles in order to reconstruct the region by concatenation. Doesn't seem that hard, but not trivial.
  • I did not take into account the fact that there is a one pixel overlap between adjacent tiles (it should not change change the result much).
  • I did not take into account the fact that pixel size actually vary (the resolution is one arc second, which is ~30 meters at the equator but changes with latitude).
| improve this answer | |
$\endgroup$
  • $\begingroup$ Yeah, this seems fairly straight forward, and in combination with the wiki list above, it's probably doable globally. I figured I might have to end up doing that, but I though it'd be worth asking if something already existed first. $\endgroup$ – naught101 Jan 17 at 23:32
  • 1
    $\begingroup$ If you end up doing it, please share it here as a self answer! :) $\endgroup$ – Jean-Marie Prival Jan 18 at 9:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.