pro gte_calcrhdac,data,vardesc,result=result minval = -1.0E30 result = 0 ; compute relative humidity for water and ice ; from DACOM water vapor measurement ; and add it to DACOM data set ; NOTE: need to add temperature and pressure to DACOM data first! tempname = 'TSDEGC' ; variable name for temperature pressname = 'PSMB' ; variable name for pressure h2oname = 'Water vapor mixing ratio' ; water vapor mixing ratio ppmv ; New names rhname = 'RH' ; relative humidity (%) -- add 'w' or 'i' selind = make_selection(vardesc.name, $ [tempname,pressname,h2oname],/REQUIRED) if (selind[0] lt 0) then begin message,'Could not find variables needed for RH calculation!',/CONT message,'Did you link the project data first ? (TSDEGC, PSMB)', $ /Cont,/NoName return endif ; extract data temp = data[*,selind[0]] press = data[*,selind[1]] h2o = data[*,selind[2]] ; check if units are valid if (vardesc[selind[0]].unit ne 'K') then $ convert_unit,temp,vardesc[selind[0]].unit,to='K' if (vardesc[selind[1]].unit ne 'hPa') then $ convert_unit,press,vardesc[selind[1]].unit,to='hPa' if (vardesc[selind[2]].unit ne 'v/v') then $ convert_unit,h2o,vardesc[selind[2]].unit,to='v/v' ; calculate air density ok = where(temp gt 0. AND press gt 0.) m = fltarr(n_elements(h2o)) - 9.99E30 m[ok] = 2.69E19 * (273.15/temp[ok]) * (press[ok]/1013.25) ; compute vapor pressure ok = where(press gt 0. AND h2o gt 0.) ph2o = fltarr(n_elements(h2o)) - 9.99E30 ph2o[ok] = h2o[ok] * press[ok] ; calculate saturation vapor pressure ok = where(temp gt 0. AND press gt 0. AND h2o gt 0.) esatw = fltarr(n_elements(h2o)) - 9.99E30 esati = fltarr(n_elements(h2o)) - 9.99E30 esatw[ok] = e_h2o(temp[ok],/WATER) esati[ok] = e_h2o(temp[ok],/ICE) ; compute relative humidity rhw = fltarr(n_elements(h2o)) - 9.99E30 rhi = fltarr(n_elements(h2o)) - 9.99E30 rhw[ok] = 100.*ph2o[ok]/esatw[ok] rhi[ok] = 100.*ph2o[ok]/esati[ok] ; add computed quantities to data set template = gte_vardesc() template.name = rhname+'w_DAC' template.unit = '%' gte_insertvar,data,vardesc,rhw,template template.name = rhname+'i_DAC' gte_insertvar,data,vardesc,rhi,template result = 1 return end