Files
libpostal/scripts/geodata/openaddresses/download_openaddresses.py
2016-08-29 00:40:11 -04:00

45 lines
1.3 KiB
Python

import os
import six
import sys
import requests
import subprocess
import yaml
from six.moves.urllib_parse import urljoin
this_dir = os.path.realpath(os.path.dirname(__file__))
sys.path.append(os.path.realpath(os.path.join(os.pardir, os.pardir)))
from geodata.openaddresses.config import openaddresses_config
from geodata.file_utils import ensure_dir, download_file, cd, remove_file
BASE_OPENADDRESSES_DATA_URL = 'http://results.openaddresses.io'
OPENADDRESSES_LATEST_URL = BASE_OPENADDRESSES_DATA_URL + '/latest/run/'
OPENADDRESSES_EXTENSION = '.zip'
def main(out_dir):
ensure_dir(out_dir)
with cd(out_dir):
for path in openaddresses_config.sources:
source = '/'.join(path)
zip_file = path[-1] + OPENADDRESSES_EXTENSION
zip_url = source + OPENADDRESSES_EXTENSION
url = OPENADDRESSES_LATEST_URL + zip_url
zip_path = os.path.join(out_dir, zip_file)
print('downloading: {}'.format(source))
if download_file(url, zip_path):
subprocess.check_call(['unzip', '-o', zip_path])
remove_file(zip_path)
if __name__ == '__main__':
if len(sys.argv) < 2:
print('Usage: python download_openaddresses.py out_dir')
sys.exit(1)
main(sys.argv[1])