geocode-csv: Geocode a CSV file using libpostal or the Smarty API
(This project is not associated with Smarty.)
WARNING: This project geocodes CSV files thousands of rows per second, which can use up your Smarty quota very quickly. This may cost you money.
If you have a CSV file that appears as follows:
name,street1,street2,city,state,zip
Resident,1600 Pennsylvania Avenue NW,,Washington DC,20500
...and an address_spec.json file that appears as follows:
...then you can geocode it using:
# Set up credentials.
# Geocode the CSV.
This will add a series of columns starting with geocoded_, which will contain various postal delivery information, plus estimated latitude and longitude. If geocoding succeeds, geocode-csv will return 0. If it fails, it will return a non-zero error code and print a human-readable error message to standard error.
You can geocode multiple addresses per row as follows:
This will insert two sets of columns, one beginning with geocoded_shipping_ and the other with geocoded_billing_.
Build
You'll need to run:
...to pull in the C++ source for libpostal.
You will also need to install protoc:
# Linux.
# Mac.
A note about Macs
We provide pre-built Mac binaries for Intel- and M1-based Macs. These binaries use "ad-hoc" signatures, so you may need to set appropriate security settings or run: