Feb 26 2007 Mon
11:32 pm PHT
Last weekend, I played around with the public domain data obtained by the Shuttle Radar Topography Mission or SRTM. I wanted to use this data to create topographic maps that I can contribute to Wikipedia.
The SRTM data is a digital elevation model or DEM, which is data depicting the surface topography or terrain of a piece of land. The SRTM DEM data has been released in 1° by 1° tiles (of latitude and longitude) at a resolution of 1 arcsecond for U.S. territory (SRTM1) and 3 arcseconds for the rest of the world (from 56°S to 60°N) (SRTM3). 3 arcseconds is about 90 meters at the equator.
I’ve actually played with DEM data before and this is the USGS GTOPO30 data set, which has a resolution of 30 arcseconds (around 1 km). I’ve used this to create my physical map of the Philippines, a general map of Cavite, and a general map of Siquijor. Note that the topography is quite “blurred” already in the Siquijor map.
SRTM3 data, having 100 times more data, can create really beautiful topographic maps. Below is a mock-up showing the area around Manila Bay and Cavite. Observe that the cliffs of the Tagaytay Ridge is much more defined compared to my existing Wikipedia map. You can spot Mt. Makiling off to the east, Taal Volcano just to the south, and Mt. Banahaw (the Mt. Cristobal summit) along the right edge of the image. The Marikina fault line is just visible to the north (beside the La Mesa watershed).
However, there are two problems with the SRTM data. One is that the raw data available has, what are called, void areas. These are spots where no height data has been obtained. In the image above, those are the red spots (e.g., the rim of
Mt. Samat’s Mt. Mariveles’ crater in Bataan). There are some places on the web where you can obtain void-filled data, but I haven’t seen any place yet that has the Philippines covered. Anyway, the voids can be naïvely filled up by interpolating from the surrounding data. The accuracy of this method breaks down when the void covers a large area. So far I haven’t seen any problematic voids, but since I haven’t fully downloaded all the tiles for the Philippines, I’m not yet sure if I can correct the data using this method.
The second, albeit minor, problem is that the SRTM data was obtained using radar technology. This means that opaque objects—like buildings, bridges, and ships—can show up as landforms in the data. While most of these has been corrected, the U.S. National Geospatial-Intelligence Agency, which spearheaded the SRTM project, understandably cannot account for the whole world.
An example of this problem can be seen in Google Earth, which uses SRTM data for its 3D terrain feature. Shown below is a screenshot of the Ortigas area facing northeast in Google Earth. As you can see, there’s a noticeable hill in the Tektite Towers area and elsewhere. As anybody who works in Ortigas can attest, the business district is quite flat. The hills you see are the result of the buildings reflecting added height to the terrain.
Nevertheless, it’s been really fun playing around with this data. (The raw data covering the Philippines is about half a Gig in size.) I’ve already created a Perl script to read the data and produce raw image files that I can manipulate in an image editor. Right now I can take a tile of data and produce a hypsometric-tinted image, and a pair of images depicting shadows and highlights in the terrain, based on a light source coming from the northwest.
Well, the algorithm to generate the lighted images is actually just a delta function of the underlying data. Simply put, if the slope of the terrain going southeast is negative, the place is in “shadow.” The higher the magnitude of the slope, the darker the shade. On the other hand, if the slope is positive and the higher the value, the brighter the spot is.
Some things I still need to do is to download the rest of the data (I currently only have Luzon so far), fill in the voids, and modify the image generator to take in coordinate boundaries of the region I want to render. I also need to obtain updated vector data for the shoreline and water bodies. Right now, the publicly available shoreline data is too outdated—the reclaimed areas are not yet even added.
Okay. Enough geekiness for now.