improver.generate_ancillaries.generate_ancillary module
Module containing ancillary generation utilities for Improver
- class CorrectLandSeaMask[source]
Bases:
BasePlugin
Round landsea mask to binary values
Corrects interpolated land sea masks to boolean values of False [sea] and True [land].
- _abc_impl = <_abc_data object>
- class GenerateOrographyBandAncils[source]
Bases:
BasePlugin
Generate topographic band ancillaries for the standard grids.
Reads orography files, then generates binary mask of land points within the orography band specified.
- _abc_impl = <_abc_data object>
- gen_orography_masks(standard_orography, standard_landmask, thresholds, units='m')[source]
Function to generate topographical band masks.
For each threshold defined in ‘thresholds’, a cube with 0 over sea points and 1 for land points within the topography band will be generated. The lower threshold is exclusive to the band whilst the upper threshold is inclusive i.e: lower_threshold < band <= upper_threshold
For example, for threshold pair [1,3] with orography:
[[0 0 2] and sea mask: [[0 0 1] [2 2 3] [1 1 1] [0 1 4]] [0 1 1]]
the resultant array will be:
[[0 0 1] [0 1 1] [0 0 0]]
- Parameters:
standard_orography (
Cube
) – The standard orography.standard_landmask (
Optional
[Cube
]) – The landmask generated by gen_landmask.thresholds (
List
[float
]) – Upper and/or lower thresholds of the current topographical band.units (
str
) – Units to be fed to CF_units to create a unit for the cube. The unit must be convertable to meters. If no unit is given this will default to meters.
- Return type:
- Returns:
Cube containing topographical band mask.
- Raises:
KeyError – if the key does not match any in THRESHOLD_DICT.
- process(orography, thresholds_dict, landmask=None)[source]
- Loops over the supplied orographic bands, adding a cube
for each band to the mask cubelist.
- Parameters:
orography (
Cube
) – orography on standard grid.thresholds_dict (
Dict
[str
,Any
]) –Definition of orography bands required. Has key-value pairs of “bounds”: list of list of pairs of bounds for each band and “units”:”string containing units of bounds”, for example:
{'bounds':[[0,100], [100,200]], 'units': "m"}
landmask (
Optional
[Cube
]) – land mask on standard grid, with land points set to one and sea points set to zero. If provided sea points are set to zero in every band.
- Return type:
- Returns:
list of orographic band mask cubes.
- static sea_mask(landmask, orog_band, sea_fill_value=None)[source]
Function to mask sea points and substitute the default numpy fill value behind this mask_cube.
- Parameters:
landmask (
ndarray
) – The landmask generated by gen_landmask.orog_band (
ndarray
) – The binary array to which the landmask will be applied.sea_fill_value (
Optional
[int
]) – A fill value to set sea points to and leave the output unmasked, rather than the default behaviour of returning a masked array with a default fill value.
- Return type:
- Returns:
An array where the sea points have been masked out and filled with a default fill value, or just filled with the given sea_fill_value and not masked.
- _make_mask_cube(mask_data, coords, topographic_bounds, topographic_units, sea_points_included=False)[source]
Makes cube from numpy masked array generated from orography fields.
- Parameters:
mask_data (
MaskedArray
) – The numpy array to make a cube from.coords (
List
) – Dictionary of coordinate on the model ancillary file.topographic_bounds (
List
[float
]) – List containing the lower and upper thresholds defining the masktopographic_units (
str
) – Name of the units of the topographic zone coordinate of the output cube.sea_points_included (
bool
) – Default is False. Value for the output cube attribute ‘topographic_zones_include_seapoints’, signifying whether sea points have been included when the ancillary is generated.
- Return type:
- Returns:
Cube containing the mask_data array, with appropriate coordinate and attribute information.