Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
fimex:todo:parameterfunction [2014-04-23 13:12:11] heikok created |
fimex:todo:parameterfunction [2022-05-31 09:29:32] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Project-Plan: | + | ====== Project-Plan: |
| + | |||
| + | ** currently moved to interal wiki for discussion | ||
| ===== Problem ===== | ===== Problem ===== | ||
| Line 5: | Line 7: | ||
| Meteo. input data does not allways contain all parameters since gridded data usually is huge, while it is relatively easy to calculate them from other parameters, e.g. relative humidity <-> specific humidity. An end user just want to have ' | Meteo. input data does not allways contain all parameters since gridded data usually is huge, while it is relatively easy to calculate them from other parameters, e.g. relative humidity <-> specific humidity. An end user just want to have ' | ||
| - | [[http:// | + | [[http:// |
| ===== Hard Requirements ===== | ===== Hard Requirements ===== | ||
| Line 15: | Line 17: | ||
| * Users shall be able to switch on and off on demand parameters. | * Users shall be able to switch on and off on demand parameters. | ||
| * It shall be possilbe to create an on-demand parameter from multiple CDMReader sources (as long as the data has the same grid) | * It shall be possilbe to create an on-demand parameter from multiple CDMReader sources (as long as the data has the same grid) | ||
| - | * The system | + | * The system |
| + | * The system shall be aware of units, both on input-data, as well as when requested for output. | ||
| ===== Soft Requirements ===== | ===== Soft Requirements ===== | ||
| Line 22: | Line 25: | ||
| * The software should have a clear separation from other fimex functionality, | * The software should have a clear separation from other fimex functionality, | ||
| + | ===== List over functions ===== | ||
| + | |||
| + | ==== Constants ==== | ||
| + | |||
| + | * PI | ||
| + | FIXME | ||
| + | |||
| + | ==== Basic functions ==== | ||
| + | |||
| + | * plus | ||
| + | * minus | ||
| + | * multiply | ||
| + | * devide | ||
| + | * exp | ||
| + | * log | ||
| + | * ln | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | ==== Meteorological functions ==== | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | ==== Data representation ==== | ||
| + | |||
| + | * vertical interpolation? | ||
| + | * column (sum over levels) | ||
| + | * accumulation (time) | ||
| + | * deaccumulation (time) | ||
| + | FIXME | ||
| + | |||
| + | ===== Additional Information ===== | ||
| + | |||
| + | Diana field compute: | ||
| + | < | ||
| + | < | ||
| + | |||
| + | # See diFieldFunctions.h or other documnetation | ||
| + | |||
| + | geopotential_height_pl=divide(geopotential_pl, | ||
| + | |||
| + | # computations in pressure levels (" | ||
| + | air_temperature_pl=tk.plevel_th(air_potential_temperature_pl) | ||
| + | air_potential_temperature_pl=th.plevel_tk(air_temperature_pl: | ||
| + | the_pl=the.plevel_tk_rh(air_temperature_pl: | ||
| + | the_pl=the.plevel_th_rh(air_potential_temperature_pl, | ||
| + | |||
| + | thesat_pl=thesat.plevel_th(air_potential_temperature_pl) | ||
| + | thesat_pl=thesat.plevel_tk(air_temperature_pl: | ||
| + | |||
| + | relative_humidity_pl=rh.plevel_tk_q(air_temperature_pl: | ||
| + | relative_humidity_pl=rh.plevel_th_q(air_potential_temperature_pl, | ||
| + | |||
| + | dew_point_temperature_pl=tdc.plevel_th_q(air_potential_temperature_pl, | ||
| + | dew_point_temperature_pl=tdc.plevel_tk_q(air_temperature_pl, | ||
| + | dew_point_temperature_pl=tdc.plevel_th_rh(air_potential_temperature_pl, | ||
| + | dew_point_temperature_pl=tdc.plevel_tk_rh(air_temperature_pl, | ||
| + | |||
| + | specific_humidity_pl=q.plevel_tk_rh(air_temperature_pl: | ||
| + | specific_humidity_pl=q.plevel_th_rh(air_potential_temperature_pl, | ||
| + | qvx_pl=qvector.plevel_z_th_xcomp(geopotential_height_pl, | ||
| + | qvy_pl=qvector.plevel_z_th_ycomp(geopotential_height_pl, | ||
| + | qvx_pl=qvector.plevel_z_tk_xcomp(geopotential_height_pl, | ||
| + | qvy_pl=qvector.plevel_z_tk_ycomp(geopotential_height_pl, | ||
| + | qvectorx_pl=multiply(qvx_pl, | ||
| + | qvectory_pl=multiply(qvy_pl, | ||
| + | qvector.divergence_pl=divergence(qvectorx_pl, | ||
| + | ug_pl=geostrophic.wind.plevel_z_xcomp(geopotential_height_pl) | ||
| + | vg_pl=geostrophic.wind.plevel_z_ycomp(geopotential_height_pl) | ||
| + | uag_pl=subtract(x_wind_pl, | ||
| + | vag_pl=subtract(y_wind_pl, | ||
| + | </ | ||
| + | </ | ||