Skip to main content

Library for working with GeoNames dump

Project description

Library to query places from GeoName dumps (


geonames requires Python 2.7 or 3.5+ as well as numpy and pandas packages. It can be installed with,

pip install geonames


The best way to search for a specific location is to have a “filter” value and then the place’s name. The filter will reduce the number of rows to check considerably. For example, when searching for a location in the US there are (currently) 2237584 entries. However, once a state is specified (e.g. West Virigina) the number drops down to 35932; 1/60th of the original number of rows.

import geonames
import io
import urllib.request as request
import zipfile

name = 'Bath(Berkeley Springs)'  # (Berkeley Springs, West Virgina)

# Download US geonames dataset
US = request.urlopen('')
zipfile = zipfile.ZipFile(io.BytesIO(

# Load data
geo = geonames.GeoNames('US.txt'))

# Search with state specified (`admin1code` filters by state)
location = next(, admin1code='WV'))

Which (if all goes well) should output:

geonameid                                              4.7987e+06
name                                             Berkeley Springs
asciiname                                        Berkeley Springs
alternatenames      Berkeley Spring,Berkeley Springs,Warm Springs
latitude                                                  39.6264
longitude                                                -78.2292
featureclass                                                    H
featurecode                                                  SPNG
countrycode                                                    US
countrycode2                                                  NaN
admin1code                                                     WV
admin2code                                                    065
admin3code                                                    NaN
admin4code                                                    NaN
population                                                      0
elevation                                                     185
dem                                                           194
timezone                                         America/New_York
modificationdate                                       2011-12-12
certainty                                                      86
Name: 741633, dtype: object

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

geonames_lib-0.4.1-py3-none-any.whl (4.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page