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)
(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)