emodpy_malaria.weather package#

weather is a module providing features for working with EMOD weather files.

Main Features#

Here are main features:

  • Generate EMOD weather files locally from a csv file.

  • Generate EMOD weather files using COMPS SSMT weather service.

  • Convert existing EMOD weather files to csv file or dataframes.

  • Programmatic access to EMOD weather files via weather object model.

emodpy_malaria.weather.generate_weather(platform: str | COMPSPlatform, site_file: str | Path, start_date: int, end_date: int = None, node_column: str = 'nodes', lat_column: str = 'lat', lon_column: str = 'lon', id_reference: str = None, request_name: str = '', local_dir: str | Path = None, data_source: str = None, force: bool = False) WeatherRequest[source]#

Generate weather files by submitting a request and downloading generated weather files to a specified dir.

Args:

platform: Platform name (like “Calculon”) or COMPSPlatform object, where the work item will run. site_file: CSV (.csv) or demographics (.json) file containing a set of sites (points) defined with lat/lon. CSV file must contain columns for: EMOD node ids (node), latitude (lat) and longitude (lon). Demographics file must match EMOD demographics file schema. start_date: Start date, in formats: year (2018), year and day-of-year (2018001) or date (20180101) end_date: (Optional) End date, in formats: year (2018), year and day-of-year (2018365) or date (20181231) node_column: (Optional) Name of a column containing EMOD node ids. The default is “nodes”. lat_column: (Optional) Name of a column containing site (point) latitude. The default is “lat”. lon_column: (Optional) Name of a column containing site (point) longitude. The default is “lon”. id_reference: (Optional) Value of weather metadata IdReference attribute. The default is “Default”. request_name: (Optional) Name to be used for the weather SSMT work item. local_dir: (Optional) Local dir where files will be downloaded. data_source: (Optional) SSMT data source to be used. force: (Optional) Flag ensuring a new weather request is submitted, even if weather files exist in “local_dir”.

Example:

wr: WeatherRequest = generate_weather(platform="Calculon",
                                      site_file="path/to/sites.csv",
                                      start_date=2015,
                                      end_date=2016,
                                      node_column="id",
                                      local_dir="path/to/weather_dir")
Returns:

WeatherRequest object. Can be used to access asset collection id or a local dir (if not given as ) argument or a download report.

emodpy_malaria.weather.csv_to_weather(csv_data: str | Path | DataFrame, node_column: str = 'nodes', step_column: str = 'steps', weather_columns: Dict[WeatherVariable, str] = None, attributes: WeatherAttributes = None, weather_dir: str | Path = None, weather_file_names: Dict[WeatherVariable, str] = None) WeatherSet[source]#

Convert a dataframe or csv file, containing node, step and weather columns, into a weather set and corresponding weather files, if weather dir is specified.

Args:

csv_data: Dataframe or a csv file path, containing weather data. node_column: (Optional) Column containing node ids. The default is “nodes”. The default is “nodes”. step_column: (Optional) Column containing node index for weather time series values. The default is “steps”. weather_columns: (Optional) Dictionary of weather variables (keys) and weather column names (values). Defaults are WeatherVariables values are used: “airtemp”, “humidity”, “rainfall”, “landtemp”. attributes: (Optional) Weather attribute object containing metadata for WeatherMetadata object. weather_dir: (Optional) Directory where weather files are stored. If not specified files are not created. weather_file_names: (Optional) Dictionary of weather variables (keys) and weather .bin file names (values).

Example::

wa = WeatherAttributes(start_year=2001, end_year=2010) ws = csv_to_weather(csv_data=”path/to/data.csv”, attributes=wa, weather_dir=”path/to/weather_dir”)

Returns:

WeatherSet object.

emodpy_malaria.weather.weather_to_csv(weather_dir: str | Path, weather_file_prefix: str = '', weather_file_names: Dict[WeatherVariable, str] = None, csv_file: str | Path = None, node_column: str = 'nodes', step_column: str = 'steps', weather_columns: Dict[WeatherVariable, str] = None) Tuple[DataFrame, WeatherAttributes][source]#

Convert weather files into a dataframe and a .csv file, if csv file path is specified.

Args:

weather_dir: Local dir containing weather files. weather_file_prefix: (Optional) Weather files prefix, e.g. “dtk_15arcmin” weather_file_names: (Optional) Dictionary of weather variables (keys) and weather .bin file names (values). csv_file: (Optional) The path of a csv file to be generated. If not specified csv file is not created. node_column: (Optional) Column containing node ids. The default is “nodes”. step_column: (Optional) Column containing node index for weather time series values. The default is “steps”. weather_columns: (Optional) Dictionary of weather variables (keys) and weather column names (values). Defaults are WeatherVariables values are used: “airtemp”, “humidity”, “rainfall”, “landtemp”.

Example::

df, attributes = weather_to_csv(weather_dir=”path/to/weather_dir”)

Returns:

Dataframe and weather attributes objects.

Submodules#