import tempfile
from pathlib import Path
from emodpy_malaria.weather import generate_weather
# ---| Request weather files |---
# Request weather time series, for nodes listed in a .csv file ('example_site.csv' here)
= generate_weather(platform="Calculon",
wr ="./inputs/example_site.csv",
site_file=2019001, #YYYYddd
start_date=2019365, #YYYYddd
end_date="nodes",
node_column="./inputs/example_weather/",
local_dir="Gridded world grump2.5arcmin",
id_reference=True)
forceprint("\n".join(wr.files))
Get Climate
Request weather files from the climate API
Create climate files
Once we have generated a demographics file describing the nodes for a simulation, we can request and download weather files using the idmtools API for COMPS SSMT. The simplest way to do this is to provide your script with a csv containing the basics of the site request, including site name, latitude, longitude, and node ID, such as in the “example_site.csv” here:
name | lat | lon | nodes |
---|---|---|---|
example_site | 1.00 | 1.00 | 1 |
This csv is passed as the site_file
to emodpy-malaria's
generate_weather()
function along with the node_column
that provides the name of our node ID column in the csv and local_dir
which specifies that output directory. From there we can also specify things like: - platform
: where the request work item will run (Calculon if associated with IDM) - start_date
and end_dates
: identify the period of time we are interested in requesting weather for - id_reference
: specify the IDReference attribute for the weather metadata - force
: flag ensuring that a new request is submitted even if the files exist in the local_dir
After completing these steps, there should be climate files for air_temperature, rainfall, and relative_humidity in your inputs folder. To reference these when running a simulation, update the configuration parameters to reflect the name and location of your climate files:
def set_param_fn(config):
import emodpy_malaria.malaria_config as conf
= conf.set_team_defaults(config, manifest)
config
#Add climate files
= os.path.join('climate','example_air_temperature_daily.bin')
config.parameters.Air_Temperature_Filename = os.path.join('climate','example_air_temperature_daily.bin')
config.parameters.Land_Temperature_Filename = os.path.join('climate','example_rainfall_daily.bin')
config.parameters.Rainfall_Filename = os.path.join('climate', 'example_relative_humidity_daily.bin')
config.parameters.Relative_Humidity_Filename return config
Additional “getting started” instructions are available in the emodpy-malaria repository, including information on converting weather files to a csv for modification (such as increasing temperature) and then back to a weather file.