[GIS] Looking for Shapefile of Island Names

asiadatashapefile

A lot of Island nations, like Japan and Indonesia, have many islands within the same country. Other islands, like Borneo are part of multiple countries. I am looking for a shapefile that gives the island name, preferably in WGS84. I am only interested in islands in SE Asia and nearby Pacific Islands.

Best Answer

not very helpful

Perhaps you didn't know how to use it.

Go to http://download.geonames.org/export/dump and download : either allCountries.zip [300 MB] (BEWARE, this is not a good idea as there are over 11 million features), or a single country XX.zip where XX is ISO country code.

Unzip to get the text file, which is in tab-separated values (.tsv) format, with encoding UTF-8.

The details of each feature name is on its own line. Each line consists of fields separated by TAB. The fields are: ID, Name, Alt-Name, Alt-Alt-Name, Lat, Long, ?, Field Code, ... doesn't matter

These Field Codes are listed at /featureCodes_en.txt

ISL     island  a tract of land, smaller than a continent, surrounded by water at high water
ISLET   islet   small island, bigger than rock, smaller than island.
ISLF    artificial island   an island created by landfill or diking and filling in a wetland, bay, or lagoon
ISLM    mangrove island a mangrove swamp surrounded by a waterbody
ISLS    islands tracts of land, smaller than a continent, surrounded by water at high water
ISLT    land-tied island    a coastal island connected to the mainland by barrier beaches, levees or dikes
ISLX    section of island   

There are thousands of other Field Codes, far too much stuff to put all the features on one map. So you have to filter it to get what you want, based on the Field Code.

[For filtering, see below]

Load the filtered file into your GIS program. In QGIS: Layer > Add Layer > Add delimited text layer. Point the X at LONG, point the Y at LAT, label with NAME. Modify the labelling settings to show labels for the X,Y points. You will probably want to only show the labels when you are at a large scale, say 5000:1

Filtering

I left the hardest part till last.

One way is to:

  load the XX.txt file into a spreadsheet app, (Excel, LibreOffice Calc)

  delete the columns you don't need, (you need Name, Lat, Long, Field Code)

  delete the rows you don't want (you want only Field Code = ISL)

  save the file as .tsv

A better way is to write a program that does the same thing only quicker.

This is a PHP script to filter /AU.txt for "ISL" and output to /AU.ISL.csv You will need to edit the configuration section to fit your circumstances.

https://palloy.earth/filter.fieldcode.zip

Download the zip file,
unzip it and save the php file somewhere,
edit the configuration and save,
from a command prompt: 

php /path/to/filter.fieldcode.php

204850 features in AU.txt
filtering by Field Code = ISL ...
4347 features output to AU.ISL.csv
in 1.5360379219055 seconds
Related Question