Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
fimex:todo:parameterfunction [2014-04-23 13:12:11]
heikok created
fimex:todo:parameterfunction [2014-04-23 13:22:52]
heikok
Line 1: Line 1:
-====== Project-Plan: easy function-based parameter selection ======+====== Project-Plan: easy function-based on demand parameter selection ======
  
 ===== Problem ===== ===== Problem =====
Line 15: Line 15:
   * 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 must work with both variable-names and CF standard_names and automatically select the first / best.+  * The system shall work with both variable-names and CF standard_names and automatically select the first / best
 +  * 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 23:
   * The software should have a clear separation from other fimex functionality, e.g. it should create a lib of its own, and it should reside in an own (sub-)catalog. It might be useful to integrate it into the fimex infrastruction, e.g. build / test infrastruction and even the same 'tar'-file (as long as the lib is a //configure// flag.)   * The software should have a clear separation from other fimex functionality, e.g. it should create a lib of its own, and it should reside in an own (sub-)catalog. It might be useful to integrate it into the fimex infrastruction, e.g. build / test infrastruction and even the same 'tar'-file (as long as the lib is a //configure// flag.)
  
 +===== List over functions =====
  
 +==== Constants ====
 +
 +  * PI
 +FIXME
 +
 +==== Basic functions ====
 +
 +  * plus
 +  * minus
 +  * multiply
 +  * devide
 +  * exp
 +  * log
 +  * ln
 +
 +FIXME
 +
 +==== Meteorological functions ====
 +
 +FIXME
 +
 +==== Data representation ====
 +
 +  * vertical interpolation? (10m, 80m)
 +  * column (sum over levels)
 +  * accumulation (time)
 +  * deaccumulation (time)
 +FIXME
 +
 +===== Additional Information =====
 +
 +Diana field compute:
 +<code>
 +<FIELD_COMPUTE>
 +
 +# See diFieldFunctions.h or other documnetation
 +
 +geopotential_height_pl=divide(geopotential_pl,9.81)
 +
 +# computations in pressure levels (".plevel_")
 +air_temperature_pl=tk.plevel_th(air_potential_temperature_pl)
 +air_potential_temperature_pl=th.plevel_tk(air_temperature_pl:unit=kelvin)
 +the_pl=the.plevel_tk_rh(air_temperature_pl:unit=kelvin,relative_humidity_pl:unit=0.01)
 +the_pl=the.plevel_th_rh(air_potential_temperature_pl,relative_humidity_pl:unit=0.01)
 +
 +thesat_pl=thesat.plevel_th(air_potential_temperature_pl)
 +thesat_pl=thesat.plevel_tk(air_temperature_pl:unit=kelvin)
 +
 +relative_humidity_pl=rh.plevel_tk_q(air_temperature_pl:unit=kelvin,specific_humidity_pl:unit=0.01)
 +relative_humidity_pl=rh.plevel_th_q(air_potential_temperature_pl,specific_humidity_pl:unit=0.01)
 +
 +dew_point_temperature_pl=tdc.plevel_th_q(air_potential_temperature_pl,specific_humidity_pl:unit=0.01)
 +dew_point_temperature_pl=tdc.plevel_tk_q(air_temperature_pl,specific_humidity_pl:unit=0.01)
 +dew_point_temperature_pl=tdc.plevel_th_rh(air_potential_temperature_pl,relative_humidity_pl:unit=0.01)
 +dew_point_temperature_pl=tdc.plevel_tk_rh(air_temperature_pl,relative_humidity_pl:unit=0.01)
 +
 +specific_humidity_pl=q.plevel_tk_rh(air_temperature_pl:unit=kelvin,relative_humidity_pl:unit=0.01)
 +specific_humidity_pl=q.plevel_th_rh(air_potential_temperature_pl,relative_humidity_pl:unit=0.01)
 +
 +qvx_pl=qvector.plevel_z_th_xcomp(geopotential_height_pl,air_potential_temperature_pl)
 +qvy_pl=qvector.plevel_z_th_ycomp(geopotential_height_pl,air_potential_temperature_pl)
 +qvx_pl=qvector.plevel_z_tk_xcomp(geopotential_height_pl,air_temperature_pl:unit=kelvin)
 +qvy_pl=qvector.plevel_z_tk_ycomp(geopotential_height_pl,air_temperature_pl:unit=kelvin)
 +qvectorx_pl=multiply(qvx_pl,1.e+11)
 +qvectory_pl=multiply(qvy_pl,1.e+11)
 +qvector.divergence_pl=divergence(qvectorx_pl,qvectory_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,ug_pl)
 +vag_pl=subtract(y_wind_pl,vg_pl)
 +</FIELD_COMPUTE>
 +</code>
  
  • fimex/todo/parameterfunction.txt
  • Last modified: 2022-05-31 09:29:32
  • (external edit)