Philippines/Coastline corrections

From OpenStreetMap Wiki
Jump to navigation Jump to search
Sawtooth coastlines and the fixed version.

Practically all of the coastlines of the Philippines were imported from a crude coastline shapefile generated from SRTM data back in 2007. The problem with SRTM data is that it has a resolution of about 90 meters and since the data is in a raster format (i.e., pixellated), the coastlines therefore appear as jagged "sawtooth" shapes.

In areas that have high-resolution satellite imagery available, such as in Metro Manila and Davao City via Yahoo!, the coastlines have already been refined and corrected to match the imagery. But in other parts of the country, the lack of high-resolution imagery, the generally low priority attached to coastlines (compared to streets and POIs), and the tediousness of correcting them has led to the sawtooth coastlines persisting for years since the initial import. Furthermore, some smaller islands and islets don't have coastlines visible on the SRTM-derived coastlines or are merged with their larger neighbors. There have been sporadic efforts to refine and correct these coastlines in the intervening years but majority of the coastlines remain uncorrected at the start of 2010.

Currently, there is an ongoing collaborative effort, started in June 2010, to finally refine and correct these SRTM-derived coastlines to better match available data. For most of the Philippines, the public domain Landsat imagery, having a low resolution of around 15 meters (much better than SRTM), provides the best freely-available data for correcting the coastlines. The PGS data, which is a software-based extraction of coastlines from Landsat, is also available and has been post-processed and provided by Ian Haylock for the Philippines.

In a related note, Mike Collinson also imported island and islet names as place=island nodes from the public domain GNS database in around April of 2008. These nodes can be used to help identify missing island coastlines.

Correcting the coastlines

Coastlines can be corrected using any general-purpose OSM editor such as Potlatch, JOSM, or Merkaartor. Since there is no good available source of coastline data for the Philippines, OSM contributors are forced to correct the coastlines by tracing available high-resolution satellite imagery or by tracing from the Landsat public domain imagery. Landsat is the default low-resolution imagery appearing in Bing (in areas where higher resolution imagery is not available) and is thus available in all major editors.

Replacing SRTM-based coastlines with PGS

An alternative to manually tracing the Landsat imagery is to import the PGS coastline. This is best for smaller islands.

more elaboration needed...

General tips

  • For very large islands, split coastline ways into manageable chunks (200-300 nodes per way), this way, future users can easily move them when a more accurate GPS trace or imagery becomes available.
  • If in doubt, map as land.
  • The Landsat image may show varying stages of tide marks. In some cases, the high tide mark is visible while in others, it is the low tide. Try to approximate the mean tide between the two.
  • Mapping mangroves - Map as land as it is easier. In the field, mangroves can be gradually identified and allow future mappers wiser than me to change that decision.
  • Where do coastline and large rivers converge? - I try to imagine what a large scale silhouette map of just coastline would look like. Would I be able to tell that there is a small, large river or delta there rather than a smooth coastline? I then extend the coastline just enough inland to answer that question. A tiny nick for a small river. A kilometre or so for a big estuarine one. For deltas, not easy. I pick one large channel at each side and map the coastline as that with anything in between as islands or islands with rivers, and anything "inland" as rivers.
  • Sand bars/siltation areas - If in doubt, map as land.
  • Always update the source tag. For example, existing coastlines tagged like this are worth inspecting and perhaps improvement to match aerial imagery.

When you improve some coastline, remember to update the source tag.

source=Yahoo or Landsat
  • Take note of way direction! Left-side of the way direction should be land (or counterclockwise around the island)
  • In your changeset comment, add the words:
 coastline correction

Sawtooth Coastlines webmap

Screenshot of the Sawtooth coastlines webmap.

There is an available webmap highlighting the locations of the detected sawtooth coastlines. These sawtooth coastlines are almost certainly due to the imported SRTM-based coastlines. Each sawtooth coastline is shown as a translucent red circle centered at the starting node of the series of nodes that form a sawtooth coastline. The size of the circles is roughly proportional to the number of nodes in the corresponding sawtooth coastline. The data for the webmap is updated on a near-daily basis.

The data for the webmap is generated via a detection script. The script basically takes an .osm input file then outputs a CSV-formatted text containing the coordinates and the number of "steps" of each detected sawtooth coastline. This CSV text is the one that the webmap uses as input. The script does this by collecting all the ways tagged as natural=coastline and their nodes, then iterating over each way and looking at each adjacent pair of nodes in turn. If there are three or more nodes in a series where each adjacent pair of nodes have the same exact longitude or latitude, then the script flags the series of nodes as a sawtooth coastline and stores the location of the first node in the series and the number of "steps" (essentially the number of nodes in the series minus 1) for later output.

The webmap is written using OpenLayers while the script is written in Perl. Both were created by seav. The script is integrated into maning's automatic workflow for updating the OSM-PH Garmin Map. The script is run on each downloaded Philippine OSM extract and the script's CSV output is stored in maning's public file sharing account. The webmap is currently hard-coded to fetch data from the file sharing service.


The Philippines have 7,107 islands in all! (Though it is unlikely that all of them would have visible coastlines that can be detected using available sources.) This is a daunting task to complete, hence, we should divide them in order of priorities.

For the ongoing coastlines correction effort, the most important islands to correct are the largest ones. The islands listed below refer to the main islands themselves, not to the surrounding smaller islands.

Top 10 largest islands

Deadline: July 31, 2010

No. Island Progress (rough estimate) Notes
1 Luzon
99 %
Complete except for portions with extensive cloud cover
2 Mindanao
100 %
3 Negros
99 %
Some islands lacking. Few sections need more accurate edits (no Landsat tag). Cloud covered areas marked with FIXME.
4 Samar
100 %
5 Palawan
100 %
Complete, smaller islands surrounding the mainland needs more work
6 Panay
100 %
7 Mindoro
100 %
Mostly complete except for some cloud-covered (?) areas
8 Leyte
100 %
9 Cebu
100 %
10 Bohol
100 %

Top 11-30 largest islands

Deadline: August 15, 2010

No. Island Progress (rough estimate) Notes
11 Masbate
100 %
12 Catanduanes
100 %
13 Basilan
100 %
14 Busuanga
90 %
15 Marinduque
100 %
16 Jolo
100 %
17 Dinagat
99 %
Major islands complete, adjacent islands needs more work
18 Tablas
100 %
19 Polillo
98 %
Mostly complete
20 Tawi-Tawi
100 %
21 Guimaras
99 %
Complete, clouded areas estimated
22 Biliran
100 %
23 Sibuyan
100 %
24 Siargao
99 %
Cloud covered areas estimated only.
25 Burias
100 %
26 Culion
95 %
Almost done
27 Dumaran
100 %
28 Ticao
100 %
29 Siquijor
100 %
30 Balabac
100 %

Other progress

todo: think of a better way to present this information

Other islands corrected so far:

  • Batan
  • Boracay
  • Cabalete
  • Caluya
  • Camiguin
  • Candolu
  • Corregidor
  • Hundred Islands
  • Limasawa
  • Lubang
  • Maripipi
  • Palasan
  • Panglao
  • Patnanongan
  • Pilas (Sulu)
  • Romblon
  • Sabtang
  • Semirara
  • Sibay
  • Talim
  • Tubattaha
  • Ylin
ADM1 Name Lat/Long
Batanes Balintang Islands 19.959444 122.143333
Batanes Diogo Island 20.704444 121.929722
Batanes Itbayat Island 20.762778 121.837778
Batanes Mabudis Island 20.931111 121.920833
Batanes Maysanga Island 20.925 121.9075
Batanes North Island 21.065556 121.933333
Batanes Siayan Island 20.904167 121.903333
Cagayan Babuyan Island 19.524444 121.954167
Cagayan Barit Island 18.864167 121.2525
Cagayan Calayan Island 19.327222 121.466111
Cagayan Camiguin Island 18.926667 121.91
Cagayan Dalupiri Island 19.088611 121.226667
Cagayan Fuga Island 18.876389 121.3875
Cagayan Irao Island 18.984444 121.217222
Cagayan Mabaag Island 18.881667 121.264444
Cagayan Pamoctan Island 18.903611 121.835556
Cagayan Panuitan Island 19.436389 121.512222
Davao del Sur Balut Island 5.4 125.383333
Davao del Sur Sarangani Island 5.416667 125.433333
Eastern Samar Leleboon Island 10.9383 125.83305
Eastern Samar Manicani Island 10.9936 125.6394
Eastern Samar Tubabao Island 11.045 125.69277
Mindoro Apo Island 10.5520 119.2267
Palawan Albay Island 8.0734 117.0407
Palawan Alcisiras Island 11.4223 120.8123
Palawan Arorunga Island 11.4257 120.8196
Palawan Bancalan Island 8.229346 117.100893
Palawan Bintut Island 7.0992 118.4211
Palawan Bisu Bintut Island 7.0988 118.4252
Palawan Bohan Island 7.0858 118.4381
Palawan Bulissuan Island 7.0223 118.4116
Palawan Cagayan Sulu Island 7.0107 118.4804
Palawan Calumpin Island 11.4319 120.8223
Palawan Candaraman Island 8.082 117.1047
Palawan Caxisigan Island 8.086 117.0765
Palawan Mandah Island 7.0794 118.4572
Palawan Nasubata Islands 8.0228 117.1657
Palawan Patawan Island 8.234446 117.139393
Palawan Pez Island 8.0866 116.9867
Palawan Ramos Island 8.1008 117.0252
Palawan Roughton Island 8.0177 117.2108
Palawan Secam Island 8.17465 117.018993
Palawan Silad Island 11.4553 120.8063