def main(): # API documentation for downloading a subset: # https://confluence.ecmwf.int/display/CKB/Global+data%3A+Download+data+from+ECMWF+for+a+particular+area+and+resolution # https://retostauffer.org/code/Download-ERA5/ download_dir = create_folder("wind_velocity_usa_era5", prefix=INPUT_DIR) setup_logging() turbines = load_turbines() north, west, south, east = calc_bounding_box_usa(turbines) # Format for downloading ERA5: North/West/South/East bounding_box = "{}/{}/{}/{}".format(north, west, south, east) logging.info( "Downloading bounding_box=%s for years=%s and months=%s", bounding_box, YEARS, MONTHS, ) with Pool(processes=NUM_WORKERS) as pool: for year in YEARS: for month in MONTHS: pool.apply_async( download_one_month, ( bounding_box, download_dir, month, year, ), ) pool.close() pool.join()
from dask.diagnostics import ProgressBar from src.config import MONTHS from src.config import YEARS from src.config import REFERENCE_HUB_HEIGHT_M from src.util import create_folder from src.load_data import ( load_turbines, load_generated_energy_gwh, ) from src.load_data import load_wind_velocity from src.calculations import calc_wind_speed_at_turbines from src.logging_config import setup_logging setup_logging() turbines = load_turbines() generated_energy_gwh = load_generated_energy_gwh() output_folder = create_folder("wind_speed") for height in (None, REFERENCE_HUB_HEIGHT_M): logging.info(f"Calculating wind speed at turbines with height={height}...") height_name = "hubheight" if height is None else height for year in YEARS: logging.info(f"year={year}...") wind_velocity = load_wind_velocity(year, MONTHS) with ProgressBar():