Call the RESTful NYC Geoclient API using python.
This library provides a Python interface for using the NYC Geoclient API. It is an updated and maintained fork of nyc_geoclient.
In order to use the library, you must first register an application with the NYC Developer Portal to obtain an application key and ID.
you can install python-geoclient using:
$ pip install python-geoclient
or you can clone this directory and:
$ python setup.py install
Once your app has been registered with DoITT, using the API is simple:
from geoclient import Geoclient
g = Geoclient('my app ID', 'my app key')
You can use any of the available methods documented in the API:
g.address(100, 'Gold st', 'MN')
{u'uspsPreferredCityName': u'NEW YORK',
u'fireCompanyType': u'E',
u'fromLionNodeId': u'0015445',
u'cooperativeIdNumber': u'0000',
u'dotStreetLightContractorArea': u'1',
u'lionBoroughCodeForVanityAddress': u'1',
u'zipCode': u'10038',
u'fireCompanyNumber': u'006',
u'communityDistrict': u'101',
u'firstStreetNameNormalized': u'GOLD STREET',
u'boroughCode1In': u'1',
u'latitude': 40.71035225065372,
u'longitude': -74.00400739046181,
...
}
python-geoclient will raise a GeoclientError
when the Geoclient API returns an error code. Sometimes there is more information returned, in which case the exception will have a result
dictionary.
from geoclient import GeoclientError
try:
g.address(125, 'wort st', 1)
except GeoclientError as e:
print(e) # 'WORT STREET' NOT RECOGNIZED. THERE ARE 010 SIMILAR NAMES.
print(e.result['streetName1']) # WORTH SQUARE
The Python Geoclient documentation details using the library.
The API closely follows the DoITT documentation (requires account/login).
python setup.py test
If you see an issue or would like to contribute, pull requests are welcome.
BSD.