Example #1
0
def cli(location, **kwargs):
    "Geocode an arbitrary number of strings from Command Line."

    locations = []

    # Read Standard Input
    # $ cat foo.txt | geocode
    try:
        for line in fileinput.input():
            locations.append(line.strip())
    except:
        pass

    # Read multiple files & user input location
    for item in location:
        if os.path.exists(item):
            with open(item, 'rb') as f:
                locations += f.read().splitlines()
        else:
            locations.append(item)

    # Distance calcuation
    if kwargs['distance']:
        d = geocoder.distance(locations, **kwargs)
        click.echo(d)
        return

    # Geocode results from user input
    for location in locations:
        g = geocoder.get(location.strip(), **kwargs)
        try:
            click.echo(json.dumps(g.__getattribute__(kwargs['output'])))
        except IOError:
            # When invalid command is entered a broken pipe error occurs
            return
Example #2
0
def cli(location, **kwargs):
    "Geocode an arbitrary number of strings from Command Line."

    locations = []

    # Read Standard Input
    # $ cat foo.txt | geocode
    try:
        for line in fileinput.input():
            locations.append(line.strip())
    except:
        pass

    # Read multiple files & user input location
    for item in location:
        if os.path.exists(item):
            with open(item, 'rb') as f:
                locations += f.read().splitlines()
        else:
            locations.append(item)

    # Distance calcuation
    if kwargs['distance']:
        d = geocoder.distance(locations, **kwargs)
        click.echo(d)
        return

    # Geocode results from user input
    for location in locations:
        g = geocoder.get(location.strip(), **kwargs)
        try:
            click.echo(json.dumps(g.__getattribute__(kwargs['output'])))
        except IOError:
            # When invalid command is entered a broken pipe error occurs
            return
def calc_tract_dist(tract_file, facility_file, dist_file):
    """Calculate the distance between tract between every hospital/house"""
    facility = pd.read_csv(facility_file, sep='\t')
    tract = pd.read_csv(tract_file)
    geoid_dist = {}
    for index, row in tract.iterrows():
        id = row['geoid']
        lat = row['lat']
        long = row['lng']
        l1 = (lat, long)
        dist_list = []
        for i, r in facility.iterrows():
            name = r['name']
            lat_f = r['lat']
            long_f = r['lng']
            l2 = (lat_f, long_f)
            dist = geocoder.distance(l1, l2, units='miles')
            dist_list.append((dist, name))
        dist_list.sort(key=lambda x:x[0])
        #print(id)
        #print(dist_list[:10])
        #exit(1)
        geoid_dist[id] = dist_list

    geoid_dist = pd.Series(geoid_dist, name='distance')
    geoid_dist.index = geoid_dist.index.map(lambda x:'%.0f' % x)
    geoid_dist.to_csv(dist_file, sep='\t', index_label='geoid', header=True, float_format='%.3f')    
Example #4
0
def get_distance(location, center):
    try:
        if location.country == center.country and location != center:
            distance = geocoder.distance(center, location)
        else:
            distance = -1
        return distance
    except:
        return -1
Example #5
0
def distance_between_coordinates(coord1, coord2):
    return geocoder.distance(coord1, coord2)  # km
def get_distance(start, destination):
    d = geocoder.distance(start, destination)
    return round(d, 2)
Example #7
0
 def get_distance(self):
     location1 = self.start_location
     location2 = self.end_location
     coord1 = [location1.latitude, location1.longitude]
     coord2 = [location2.latitude, location2.longitude]
     return round(geocoder.distance(coord1, coord2), 1)
Example #8
0
def test_distance():
    for i in xrange(repeat):
        d = geocoder.distance(ottawa, toronto)
        if d.ok:
            return True
    return False
Example #9
0
import re
import geocoder

data = pd.read_csv('resources/Canadian Arctic Archipelago.csv')


def convert_dms(coord):
    match = re.search(r'(\d+)\D+(\d+)\D+([NSWE])', coord)
    if match:
        degree, minutes, direction = match.groups()
        degree, minutes = float(degree), float(minutes)
        dms = degree + minutes / 60.0

        if direction in ['N', 'E']:
            return dms
        elif direction in ['W', 'S']:
            return -1 * dms

print 'name,lat,lng,distance,lat-osm,lng-osm'
for index, row in data.iterrows():
    g = geocoder.osm('{}'.format(row['name']))
    distance = geocoder.distance(g.latlng, [row['lat'], row['lng']])
    print '{},{},{},{},{},{}'.format(
        row['name'],
        row['lat'],
        row['lng'],
        distance,
        g.lat,
        g.lng
    )