Standard operators and functions¶
CliMAF includes a number of ‘Standard Operators’ and of ‘Object Functions’, which implement more or less basic climate diagnostics or utilities:
- All do return CliMAF objects.
- Operators are implemented as external scripts or binaries, while ‘object functions’ are implemented as python functions.
- operators can be used to define derived variables using function
derive()
, while ‘object functions’ cannot
Other functions exists, which do not return CliMAF objects (and are not called ‘object functions’) - see Available functions
The set of standard operators grows with scientists contributions (see ..contribute a diagnostic module). They are
documented here, through individual documentation files in
REStructured Text format and following
this example
which renders as shows here. For each
operator, the content of the doc file is also made available in the Python on-line help (see
..know which CliMAF operators are available and what they do).
Documented operators and ‘object functions’ as of today:
- arithmetic operations provided as ‘object functions’:
fadd()
fsub()
fmul()
fdiv()
apply_scale_offset()
- climate data operators:
- spatial operations:
- llbox : extract a latitude-longitude box
- space_average : compute space average
- object function
zonmean()
- regridll : regrid an object to a lat-lon box of a CDO regular grid
- object function
lonlatpres_interpolation()
- ml2pl : interpolates a field from model levels to pressure levels
- object functions computing a difference with regridding (typically to compute model biases):
diff_regrid()
diff_regridn()
diff_zonmean()
- temporal operations:
- time_average : compute time average for all time steps
- object function
clim_average()
- object function
annual_cycle()
- statistical operators:
operators for creating figures:
Note
Overview on the output format to be used for ‘plot’ and ‘curves’ operators w.r.t. figure trimming:
- If you want a PNG figure, you just have to call ‘plot’ or ‘curves’, and argument ‘trim’ allows to remove extra white space. Note that resolution unit is in pixels
- If you want a PDF or EPS output figure, you may need a further step to remove extra white space: you have to use ‘cpdfcrop’ or ‘cepscrop’ operator (which are slow) respectively, after the figure plot. Note that resolution unit is in inches or using a standard paper size by name
Note
Overview on method to create a page with several CliMAF figures:
cpage()
: this operator creates a PNG or PDF page of figures array using ‘ImageMagick’, figures adjustment in the page is adapted to figures size. If you use ‘cpage’, you don’t need any pre-processing because:
- 1/ argument ‘fig_trim’ allows to trim extra white space of each figure;
- 2/ argument ‘page_trim’ allows to trim extra white space for the page
cpage_pdf()
: this operator creates a PDF page of figures array using ‘pdfjam’, figures adjustment in each array cell is automatically centered, you can’t adjust figures differently. So if you use ‘cpage_pdf’, you may need to do pre and post-treatment because:- 1/ there is no argument ‘fig_trim’ allowing you to trim extra white space when generating pdf figures, so you must apply ‘cpdfcrop’ before cpage_pdf (on all figures)
- 2/ there is no argument ‘page_trim’ allowing you to trim extra white space when generating the page, so you must use ‘cpdfcrop’ on its output
So, to create an array of figures:
- If you want an PNG output figure: you should use ‘cpage’. If quality is not sufficient, increase resolution of each figure (with argument ‘resolution’ of ‘curves’ or ‘plot’ operator) and also page resolution (with arguments ‘page_width’ and ‘page_height’ of ‘cpage’)
- If you want an PDF output figure: you can use either ‘cpage_pdf’ or ‘cpage’:
- ‘cpage_pdf’ is highly recommended
- if you want to have more control on figures adjustment in the page, use ‘cpage’ and increase resolution of each figure and also of output page
- plot: map, cross-section and profile plot of one or two fields, and vectors plot over a map
plot_params()
- curves : plot multiple profiles (along p, lat, lon, time, …)
- ensemble_ts_plot : plot time series
- :py:func::~climaf.function.ts_plot
- hovm: plot Hovmöller diagrams on a given or global domain (SST/climate boxes, … )
hovm_params()
- cpdfcrop : crop pdf figures to their minimal size
- cepscrop : crop eps figures to their minimal size
- example for two outputs:
Albeit this is not a proper practice, some more operators may exist in your CliMAF release which would not be documented here. Please see ..know which CliMAF operators are available and what they do for such cases
A name-sorted list:
- cLinearRegression : performs a linear regression between X and Y
- ccdfheatc : computes the heat content in the specified area (multi-variable input file)
- ccdfheatcm : computes the heat content in the specified area (mono-variable input file)
- ccdfmean : computes the mean value of the field (on full space domain, weighted)
- ccdfmean_profile : computes the vertical profile of horizontal means for 3D fields
- ccdfmean_profile_box : computes the vertical profile of horizontal means for 3D fields on a given geographical domain
- ccdfmxlheatc : computes the heat content in the mixed layer (multi-variable input file)
- ccdfmxlheatcm : computes the heat content in the mixed layer (mono-variable input file)
- ccdfsaltc : computes the salt content in the specified area
- ccdfsections : computes some variables (Uorth, Utang,…) along a section made of Nsec linear segments (multi-variable input file)
- ccdfsectionsm : computes some variables (Uorth, Utang,…) along a section made of Nsec linear segments (mono-variable input file)
- ccdfstd : computes the standard deviation of any variable
- ccdfstdmoy : computes the standard deviation and mean value of any variable
- ccdftransport : computes the transports accross a section
- ccdfvT : computes the time average values for V.T, V.S, U.T and U.S
- ccdfvar : computes the spatial variance of field (2D or 3D)
- ccdfvar_profile : computes the vertical profile of spatial variance for 3D fields
- ccdfzonalmean : compute the global zonal mean of the given variable
- ccdfzonalmean_bas : compute the zonal mean of the given variable in a specified sub-basin
- ccdo : invoke CDO with a unary operator
- ccdo2 : invoke CDO with a bianry operator (i.e. on two datasets)
- ccdo_ens : invoke CDO with a unary operator on an ensemble of datasets
- cepscrop : crop eps figures to their minimal size
- cpdfcrop : crop pdf figures to their minimal size
- curl_tau_atm : computes wind stress curl on regular grid (usually atmosphere)
- curves : plot multiple profiles (along p, lat, lon, time, …)
- divide : division between two CliMAF objects
- ensemble_ts_plot : plot time series
- hovm: plot Hovmöller diagrams on a given or global domain (SST/climate boxes, … )
- llbox : extract a latitude-longitude box
- mask : set a given value as missing value
- mean_and_std : field mean and standard deviation
- minus : difference of two fields using CDO operator sub
- ml2pl : interpolates a field from model levels to pressure levels
- multiply : multiplication between two CliMAF objects
- ncdump : show only the header information of a netCDF file
- ncpdq: netCDF Permute Dimensions Quickly
- ncview : launch ncview on a dataset
- plot: map, cross-section and profile plot of one or two fields, and vectors plot over a map
- plus : Addition of two fields using CDO operator add
- regrid : regrid an object to the grid of another one
- regridll : regrid an object to a lat-lon box of a CDO regular grid
- regridn : regrid an object to a named grid
- slice : extract a slice at a given dimension’s range
- space_average : compute space average
- time_average : compute time average for all time steps