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 [2014-04-24 08:14:54] heikok |
||
---|---|---|---|
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, | ||
+ | </ | ||
+ | </ | ||