Observed TOA Radiation Flux Data and CRE (on TROPOS altair)

TOA allsky Radiation Fluxes

TOA Radiation fluxes have been provided by Nicola Clerbaux (Belgium) as hdf5 files. The data are saved as H5T_STD_I16BE which means signed 16-bit integer (big endian). On TROPOS altair, TOA radiation data are saved under

/vols/talos/home/fabian/data/gerb-like

A NaN values seems to be set to -32767 (and need to be masked) and all other values have to be multiplied by 0.25 get to radiation fluxes with unit Wm**(-2).

Input of Data

Functions to read and cutout TOA radiation flux data are available under pyhton package nawdex_analysis.io.input_obs.

The calls

>>>import nawdex_analysis.io.input_obs as ioobs
>>>lwf, swf_net = ioobs.read_radiation_fluxes( t )

read observed long-wave fluxes (lwf) and net short-wave flux (swf_net) scaled to SEVIRI grid.

Cutout of data

We only use a certain SEVIRI cutout for data analysis. This variable is saved under nawdex_analysis.config. An option to input cutted data on-the-fly is incorporated into ioobs.read_radiation_fluxes( t ).

Output daily stacks to netcdf

To ease later analysis, daily stacks of TOA radiation flux data have been saved into netcdf format using

>>>import nawdex_analysis.io.output_obs as oobs
>>>oobs.save_radflux_tstack( date )

Run Script for Regridding and NetCDF Output

A python script on TROPOS is used for regridding and output of observed radiation fluxes:

cd /pf/b/b380352/proj/2017-07_nawdex_analysis/inout/
./save_toa_radflux4nawdex.py 20160930

Final Allsky Radiation Data

These daily data stacks are saved under:

ls -1 /vols/talos/home/fabian/data/icon/nawdex/gerb-like/
toa_radflux-nawdex-20160915.nc
toa_radflux-nawdex-20160916.nc
toa_radflux-nawdex-20160917.nc
toa_radflux-nawdex-20160918.nc
toa_radflux-nawdex-20160919.nc
toa_radflux-nawdex-20160920.nc
toa_radflux-nawdex-20160921.nc
toa_radflux-nawdex-20160922.nc
toa_radflux-nawdex-20160923.nc
toa_radflux-nawdex-20160924.nc
toa_radflux-nawdex-20160925.nc
toa_radflux-nawdex-20160926.nc
toa_radflux-nawdex-20160927.nc
toa_radflux-nawdex-20160928.nc
toa_radflux-nawdex-20160929.nc
toa_radflux-nawdex-20160930.nc
toa_radflux-nawdex-20161001.nc
toa_radflux-nawdex-20161002.nc
toa_radflux-nawdex-20161003.nc
toa_radflux-nawdex-20161004.nc
toa_radflux-nawdex-20161005.nc
toa_radflux-nawdex-20161006.nc
toa_radflux-nawdex-20161007.nc
toa_radflux-nawdex-20161008.nc
toa_radflux-nawdex-20161009.nc
toa_radflux-nawdex-20161010.nc
toa_radflux-nawdex-20161011.nc
toa_radflux-nawdex-20161012.nc
toa_radflux-nawdex-20161013.nc
toa_radflux-nawdex-20161014.nc

An example is

ncdump -h /vols/talos/home/fabian/data/icon/nawdex/gerb-like/toa_radflux-nawdex-20160930.nc
netcdf toa_radflux-nawdex-20160930 {
dimensions:
    rows = 1004 ;
    cols = 2776 ;
    time = 24 ;
variables:
    short swf_up(time, rows, cols) ;
        swf_up:_FillValue = 0s ;
        swf_up:units = "W m**(-2)" ;
        swf_up:long_name = "TOA short-wave upwelling radiation flux" ;
        swf_up:coordinates = "lat lon" ;
        swf_up:scale_factor = 0.25 ;
    short swf_net(time, rows, cols) ;
        swf_net:_FillValue = 0s ;
        swf_net:units = "W m**(-2)" ;
        swf_net:long_name = "TOA short-wave net radiation flux" ;
        swf_net:coordinates = "lat lon" ;
        swf_net:scale_factor = 0.25 ;
    short lwf(time, rows, cols) ;
        lwf:_FillValue = 0s ;
        lwf:units = "W m**(-2)" ;
        lwf:long_name = "TOA long-wave radiation flux" ;
        lwf:coordinates = "lat lon" ;
        lwf:scale_factor = 0.25 ;
    float lat(rows, cols) ;
        lat:_FillValue = NaNf ;
        lat:units = "degrees_north" ;
        lat:long_name = "latitude" ;
    float lon(rows, cols) ;
        lon:_FillValue = NaNf ;
        lon:units = "degrees_east" ;
        lon:long_name = "longitude" ;
    double time(time) ;
        time:_FillValue = NaN ;
        time:units = "day as %Y%m%d.%f" ;
        time:long_name = "Time" ;
        time:calendar = "proleptic_gregorian" ;

// global attributes:
        :description = "GERB-like TOA radiation flux derived from Meteosat SEVIRI and obtained from Nicolas Clerbaux" ;
        :title = "TOA Radiation Fluxes" ;
        :institution = "Leibniz Institute for Tropospheric Research" ;
        :author = "Fabian Senf (senf@tropos.de)" ;
}

TOA clearsky Radiation Fluxes

Clearsky is challenging for the observation because the investigation area is a very cloudy place and the time record (~one month) is rather short. Hence, methods that rely on temporal stacking and finding a close clearsky pixel are rather inaccurate!

We are going top use simulated clearsky instead (chosen the 10km grid spacing runs) with the drawback that bias corrections have to be applied.

Bias Correction for Shortwave (on Mistral)

Two important points

  • It seems to be that the simulated clearsky ocean is too bright, i.e. outgoing SWF is too large for the simulations. Therefore, we apply a scale factor to reduce the bias.
  • The incoming SWF sensitively depends on the accurate time. The model time is exactly at 0 UTC, but the observational time is delayed by ~12 minutes due to the scanning strategy (from South to North). Therefore, the incoming flux is taken from the observational data (luckily included) and used as net incoming flux.

A general function exists that inputs simulated clearsky fluxes:

import nawdex_analysis.io.input_sim as isim
isim.read_simulated_clearsky_flux??

Python scripts are located on mistral and can be run via

cd /pf/b/b380352/proj/2017-07_nawdex_analysis/inout
./save_retrieved_clearsky_SWF.py $EXPNAME

Bias Correction for Longwave

Bias correction for the longwave is done on the fly (at the moment - for simplicity). An offset of-2 W/m**2 is substracted from the simulation bases estimate. That is, simulaiton is slightly too warm.

Calculation of Average CRE

A general script exists to calculate the average CRE depending on cloud type (hence cloud type has be input as well). It can be run at TROPOS via

cd /vols/talos/home/fabian/proj/2017-07_icon-nawdex/inout
./save_ave_cre.py /vols/talos/home/fabian/data/icon/nawdex/gerb-like/toa_radflux-nawdex-20160922.nc -scaled

The script generates netcdf files which are stored under

ls -1 /vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled*nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160915.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160916.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160917.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160918.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160919.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160920.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160921.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160922.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160923.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160924.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160925.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160926.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160927.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160928.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160929.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160930.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161001.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161002.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161003.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161004.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161005.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161006.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161007.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161008.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161009.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161010.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161011.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161012.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161013.nc
/vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20161014.nc

Example content:

ncdump -h /vols/talos/home/fabian/data/icon/nawdex/statistics/ave_cre-scaled_meteosat-nawdex-20160922.nc
netcdf ave_cre-scaled_meteosat-nawdex-20160922 {
dimensions:
    time = 24 ;
    ct = 11 ;
    string18 = 18 ;
variables:
    int64 time(time) ;
        time:units = "hours since 2016-09-22 00:00:00" ;
        time:calendar = "proleptic_gregorian" ;
    double lcre_ave(time, ct) ;
        lcre_ave:_FillValue = NaN ;
        lcre_ave:units = "W m^{-2}" ;
        lcre_ave:longname = "area-average longwave CRE " ;
    double afrac(time, ct) ;
        afrac:_FillValue = NaN ;
        afrac:units = "%" ;
        afrac:longname = "relative area fractions per cloud type" ;
    double scre_ave(time, ct) ;
        scre_ave:_FillValue = NaN ;
        scre_ave:units = "W m^{-2}" ;
        scre_ave:longname = "area-average shortwave CRE " ;
    char ct(ct, string18) ;
}