Source code for energy_demand.geography.weather_station_location

"""Weather Station location
"""
from haversine import haversine

[docs]def calc_distance_two_points(lat_from, long_from, lat_to, long_to): """Calculate distance between two points https://pypi.org/project/haversine/#description Arguments ---------- long_from : float Longitute coordinate from point lat_from : float Latitute coordinate from point long_to : float Longitute coordinate to point lat_to : float Latitue coordinate to point Return ------ distance : float Distance """ distance_in_km = haversine( (lat_from, long_from), (lat_to, long_to), unit='km') return distance_in_km
[docs]def get_closest_station( latitude_reg, longitude_reg, weather_stations ): """Search ID of closest weater station Arguments ---------- longitude_reg : float Longitute coordinate of Region Object latitude_reg : float Latitute coordinate of Region Object weather_stations : dict Weater station data Return ------ closest_id : int ID of closest weather station """ closest_dist = 99999999999 for station_id in weather_stations: try: lat_to = weather_stations[station_id].latitude long_to = weather_stations[station_id].longitude except AttributeError: lat_to = weather_stations[station_id]["latitude"] long_to = weather_stations[station_id]["longitude"] dist_to_station = calc_distance_two_points( lat_from=latitude_reg, long_from=longitude_reg, lat_to=lat_to, long_to=long_to) if dist_to_station < closest_dist: closest_dist = dist_to_station closest_id = station_id return closest_id