Is there a free csv, xml or in some other format database of all (or least top 20-50 biggest) cities for each country in the world?
5 Answers
My open data project (I am a co-founder) has a free list of all the cities in the world, along with their area centroid (lat/lng), as a CSV file. It is compiled from the USGS/GNIS (US) and NGA/GNS (non-US) databases.
http://www.opengeocode.org/download.php#cities
As an alternate source, the United Nations Statistical Division publishes an annual yearbook on world statistics. Table 8 has the population of cities > 100,000
http://unstats.un.org/unsd/demographic/products/dyb/dyb2012/Table08.xls
We have a version of it converted to ur Linked CSV format/vocabulary:
http://www.opengeocode.org/cude1.1/UN/UNSD/dyb2012-pop100k.zip
METADATA (dyb2012-pop2k)
- (Empty)
- ISO 3166-1 alpha-2 country code (e.g., US => United States)
- National Geospatial Intelligence Agency (NGA) Geographic Name Server (GNS) Feature Code (e.g., P = Populated Place Type Feature)
- NGA/GNS Feature Designation Code (e.g. PPL = Populated Place (incorporated))
- Extended Feature Description (e.g., city, capital)
- Total Area in Square Kilometers
- ISO 639-1 language code for language that name field is in (e.g., lc = local language native to the country)
- Language Script for name fields (e.g., latin, arabic, chinese)
- Short Name (Gazetteer) for City
- Year of Population Statistics
- Total Population (e.g., within city proper)
- Urban Population (e.g., within agglomerated area of city)
- Total Male Population
- Total Female Population
-
-
@alexander - I would use the UN dataset I listed above to identify cities per country > 100K. You can use the ISO 3166-1 alpha-2 code in the UN and my datasets to aggregate records for the same country if you need to. Commented Oct 18, 2014 at 21:06
-
I downloaded opengeocode.org/cude1.1/UN/UNSD/dyb2012-pop100k.zip but I can't get along with it, could you explain how to do that? For instance, this
,EG,P,PPL,city,,lc,latin,Aswan,2010,543,396,277,732,265,664,
doesn't make sense to me. Commented Oct 19, 2014 at 3:49 -
@alexander - I added the metadata to my answer. The line in question is sadly a bad data line. The dataset was generated using an older version of our ETL and did not detect commas in numbers. I regenerated/uploaded the dataset using our newer parser and verified that these lines are correct. I would download the updated version. Commented Oct 19, 2014 at 16:08
-
3Andrew, what happened to opengeocode? I get "account suspended" message when I try to download the file. I am interested in the dataset you point to and describe. Is it still available somewhere?– marfiCommented Feb 19, 2017 at 9:53
Consider geonames, which probably has the largest collection of place names anywhere (excluding street names, which is the purview of openstreetmap.org):
http://download.geonames.org/export/dump/
From the directory above, you can download a list of "large" cities (or every single placename geonames knows about), and "readme.txt" in that directory explains further.
UN/LOCODE includes over 103,034 locations in 249 countries and installations in international waters. It is used by most major shipping companies, by freight forwarders and in the manufacturing industry around the world. It is also applied by national governments and in trade related activities, such as statistics where it is used by the European Union, by the UPU for certain postal services, etc.
You can query the GlobalWeather API at WebserviceX.net, specifically the GetCitiesByCountry call. You would have to input a list of country names, but these are easily obtainable.
The highest quality dataset that I've seen is Natural Earth. About 7,000 cities total so you would need to filter it down if you don't want that many
https://www.naturalearthdata.com/downloads/10m-cultural-vectors/10m-populated-places/