from get_location import get_lat_lon


with open('sample_locations') as input_file:
    for line in input_file:
        line = line.strip()
        values = line.split(':')
        id, location, short_location = values[:3]
        if len(values) > 3:
            other = ':'.join(values[3:])
            latlon = None
        else: 
            other = None
            latlon = get_lat_lon(location)

        if not other and latlon:
            lat1, lon1, lat2, lon2 = latlon
            lat = round((lat1+lat2)/2, 2)
            lon = round((lon1+lon2)/2, 2)
            print ':'.join((id, location, short_location, str(lat), str(lon)))
        else:
            print ':'.join((id, location, short_location) + ((other,) if other else ()))
    (17, 47.14, 3.26),
]
lats, means, sds = [[p[n] for p in body_size_data] for n in range(3)]
mean_m, mean_b, r, p, se = s.linregress(lats, means)
sd_m, sd_b, r, p, se = s.linregress(lats, sds)
    
with open('data/samples.csv', 'w') as output_file:
    writer = csv.writer(output_file)
    writer.writerow(('id','species','location','lat','lon','body_size'))
    for key, value in accessions.items():
        accession, (location, species) = key, value
        species = species.strip()
        location = location.replace('.', ', ')
        row = (accession, species, location)
        try:
            lat1, lon1, lat2, lon2 = get_lat_lon(location)
        except IndexError: 
            print location
            continue
        except Exception as e:
            print location
            raise
            
        lat = round((lat1+lat2)/2, 2)
        lon = round((lon1+lon2)/2, 2)
        
        size = round(s.norm.rvs(mean_b + mean_m*lat, sd_b + sd_m*lat), 2)
        
        row += (lat, lon, size)
        
        writer.writerow(row)
Beispiel #3
0
    (17, 47.14, 3.26),
]
lats, means, sds = [[p[n] for p in body_size_data] for n in range(3)]
mean_m, mean_b, r, p, se = s.linregress(lats, means)
sd_m, sd_b, r, p, se = s.linregress(lats, sds)

with open('data/samples.csv', 'w') as output_file:
    writer = csv.writer(output_file)
    writer.writerow(('id', 'species', 'location', 'lat', 'lon', 'body_size'))
    for key, value in accessions.items():
        accession, (location, species) = key, value
        species = species.strip()
        location = location.replace('.', ', ')
        row = (accession, species, location)
        try:
            lat1, lon1, lat2, lon2 = get_lat_lon(location)
        except IndexError:
            print location
            continue
        except Exception as e:
            print location
            raise

        lat = round((lat1 + lat2) / 2, 2)
        lon = round((lon1 + lon2) / 2, 2)

        size = round(s.norm.rvs(mean_b + mean_m * lat, sd_b + sd_m * lat), 2)

        row += (lat, lon, size)

        writer.writerow(row)