pythontimezonelatitude-longitudegeonames

Getting Time Zone from Lat Long Coordinates?


I am trying to get the time zones for latitude and longitude coordinates but am having a few problems The mistakes are probably very basic

I have a table in a database with around 600 rows. Each row contains a lat long coordinate for somewhere in the world I want to feed these co-ordinates into a function and then retrieve the time zone. The aim being to convert events which have a local time stamp within each of these 600 places into UTC time

I found a blog post which uses a piece of code to derive timezones from geographical coordinates.

When I try to run the code, I get the error geonames is not defined. I have applied for an account with geonames.

I think I have just saved the function file in the wrong directory or something simple. Can anyone help

#-------------------------------------------------------------------------------
# Converts latitude longitude into a time zone
# REF: https://gist.github.com/pamelafox/2288222
# REF: http://blog.pamelafox.org/2012/04/converting-addresses-to-timezones-in.html
#-------------------------------------------------------------------------------

geonames_client = geonames.GeonamesClient('Username_alpha')
geonames_result = geonames_client.find_timezone({'lat': 48.871236, 'lng': 2.77928})
user.timezone = geonames_result['timezoneId']

Solution

  • This works as expected:

    import geonames
    geonames_client = geonames.GeonamesClient('demo')
    geonames_result = geonames_client.find_timezone({'lat': 48.871236, 'lng': 2.77928})
    print geonames_result['timezoneId']
    

    Output:

    'Europe/Paris'