Mercurial > hg > GlobalNeighbors
view globalneighbors/determine_distances.py @ 3:49aae0c0293b
improved test coverage
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sat, 24 Jun 2017 14:48:31 -0700 |
parents | 5dba84370182 |
children |
line wrap: on
line source
#!/usr/bin/env python """ determine distances from an output of neighbors This takes a JSON input file of the format of {"geoid": [neighborgeoid, neighborgeoid2, ...]} and reduces this to a mapping of {"geoid": [(geoid_remote, distance), (geoid_remote2, distance2), ...] ... } """ import argparse import json import sys from .cli import CitiesParser from .constants import Rearth try: # python 2 string = (str, unicode) except NameError: # python 3 string = (str, ) def geoids2distances(f, locations, r=Rearth): """convert geoidstodistance with locations mapping""" # allow file paths or pointers if isinstance(f, string): with open(f) as f_: return geoids2distances(f_, locations) # load the data data = json.loads(f.read()) def main(args=sys.argv[1:]): """CLI""" # parse command line parser = CitiesParser(description=__doc__) parser.add_argument('neighbors', type=argparse.FileType('r'), help="file of nearest neighrbors") options = parser.parse_args(args) # read data cities = list(read_cities(options.cities, fields=fields)) # get locations city_locations = locations(cities) if __name__ == '__main__': main