improver.metadata.forecast_times module¶
Utilities to manipulate forecast time coordinates
-
improver.metadata.forecast_times._calculate_forecast_period(time_coord, frt_coord, dim_coord=False)[source]¶ Calculate a forecast period from existing time and forecast reference time coordinates.
- Parameters
time_coord (iris.coords.Coord) – Time coordinate
frt_coord (iris.coords.Coord) – Forecast reference coordinate
dim_coord (bool) – If true, create an iris.coords.DimCoord instance. Default is to create an iris.coords.AuxCoord.
- Returns
Forecast period coordinate corresponding to the input times and forecast reference times specified
- Return type
- Warns
UserWarning – If any calculated forecast periods are negative
-
improver.metadata.forecast_times.find_latest_cycletime(cubelist)[source]¶ Find the latest cycletime from the cubes in a cubelist and convert it into a datetime object.
- Parameters
cubelist (iris.cube.CubeList or list of iris.cube.Cube) – A list of cubes each containing single time step from different forecast cycles.
- Returns
A datetime object corresponding to the latest forecast reference time in the input cubelist.
- Return type
-
improver.metadata.forecast_times.forecast_period_coord(cube, force_lead_time_calculation=False)[source]¶ Return the lead time coordinate (forecast_period) from a cube, either by reading an existing forecast_period coordinate, or by calculating the difference between time and forecast_reference_time.
- Parameters
cube (iris.cube.Cube) – Cube from which the lead times will be determined.
force_lead_time_calculation (bool) – Force the lead time to be calculated from the forecast_reference_time and the time coordinate, even if the forecast_period coordinate exists. Default is False.
- Returns
New forecast_period coord. A DimCoord is returned if the forecast_period coord is already present in the cube as a DimCoord and this coord does not need changing, otherwise it will be an AuxCoord.
- Return type
-
improver.metadata.forecast_times.rebadge_forecasts_as_latest_cycle(cubes, cycletime=None)[source]¶ Function to update the forecast_reference_time and forecast_period on a list of input forecasts to match either a given cycletime, or the most recent forecast in the list (proxy for the current cycle).
- Parameters
cubes (iris.cube.CubeList or list of iris.cube.Cube) – Cubes that will have their forecast_reference_time and forecast_period updated.
cycletime (str or None) – Required forecast reference time in a YYYYMMDDTHHMMZ format e.g. 20171122T0100Z. If None, the latest forecast reference time is used.
- Returns
Updated cubes
- Return type
-
improver.metadata.forecast_times.unify_cycletime(cubes, cycletime)[source]¶ Function to unify the forecast_reference_time and update forecast_period. The cycletime specified is used as the forecast_reference_time, and the forecast_period is recalculated using the time coordinate and updated forecast_reference_time.
- Parameters
cubes (iris.cube.CubeList or list of iris.cube.Cube) – Cubes that will have their forecast_reference_time and forecast_period updated. Any bounds on the forecast_reference_time coordinate will be discarded.
cycletime (datetime.datetime) – Datetime for the cycletime that will be used to replace the forecast_reference_time on the individual cubes.
- Returns
Updated cubes
- Return type
- Raises
ValueError – if forecast_reference_time is a dimension coordinate