wiki:HowML

Introduction


The Multi layer cloud and aerosol model is applicable to instruments such MODIS and SEVIRI. The key requirement is that the instrument has enough independent channel (information content) to retrieve information form both layers.

Information on the cloud model which was originally developed for EUMETSAT and has been extended and improved during the ESA Cloud CCI can be found here Cloud Model for Operational Retrievals from MSG SEVIRI Final Report Eumetsat Contract EUM/CO/07/4600000463/PDW

and an updated ATBD here TBD

The code is extremely flexible and can run in many combinations e.g:

1) Ice Cloud over Water Cloud --> most common scenario

2) Aerosol over cloud

3) Volcanic Ash over cloud

The model has the following limitations:

1) The model only provides information on the lower layer when the upper layer is thin typically < 5 optical depths.

2) The 2 layer model works optimally when apriori and accurate FG information is available. This information can be provided via

a) a previous retrieval e.g of a geostationary instrument

b) a surrounding retrieval

c) a collocated active instrument e.g. Calipso/Earthcare?

d) The current model accepts a single apriori/FG value however this could be easily adapted to accept an array (contact developers for advice)

3) The retrievals are sensitive to the instrument uncertainty i.e. measurement errors. Please define these with care.

4) Information on the cloud type e.g. cost and Pavolonis mask should be used to discriminate multi layer and single layer cloud However analysis has shown that the Pavolonis flag under flags multi layer cloud and has a high false alarm rate this false alarm rate is significantly reduced when a post cost test is applied i.e. ML cost is less than SL cost.

5) The model only currently runs with the BRDF surface modelling

6) Note the retrieval needs special ice LUTs. The reason is that we include Rayleigh scattering in the LUTs (we remove it from the RTTOV computations). But, with two layers we would be including Rayleigh scattering twice so it should only be included in the lower layer LUTs which means the upper layer LUTS should not have it included.

7) We recommend using the latest RTTOV for optimal results

8) The model is optimised for daylight retrievals the performance will be much degraded at night.

WE STRONGLY RECCOMEND THAT THE USER READ THE GENERAL IINSTALLTION AND RUNNING INSTRUCTIONS FOR THE SINGLE LAYER MODEL AND TEST THIS BEFORE ATTEMPTING A MULTI LAYER RETRIEVAL. THE MULTI LATYER RETRIEVAL ONLY REQUIRES A DIFFERENT DRIVER FILE TO THE SINGLE LAYER CODE.

Detailed running Instructions


The following channel selection is suggested for the instruments currently investigated.

MODIS: 1,2,4,5,6,7,20,26,27,28,29,31,32,33,34,35,36
Nb. 36 can make the retrieval noisy so could be left out.

In this setup it is the MODIS water vapour/cirrus channels (26-28) and the CO2 channels (33-36) that will help separate the effects from the upper and lower layers.

SEVIRI and Himawari AHI: use everything except for 8. (everything except the ozone channel).

Preprocessing

The multi layer cloud uses the same pre processing files as for the single layer, i.e. no extra steps are required at this point.

Retrieval/ORAC step

The ML driver file require 2 LUTs to a single layer, if running on CEMs the LUTS are in:

For the ice cloud over water cloud example the following LUTs must be specified in the driver file.

sad_dir=/group_workspaces/cems/cloud_ecv/data_in/sad_dir/modis-aqua_ICE_baum_imager_no_ray/

setting sad_dir will set to the ICE with no ray will perform an ice over liquid retrieval. Note that the code will look for LUT files which have 'MUL rather than 'ICE@ in the file name so they may need to be renamed.

set sad_dir2=/group_workspaces/cems/cloud_ecv/data_in/sad_dir/modis_WAT/

This directory will be for the lower layer of cloud

Also set the following control variables:

Ctrl%Approach=AppCLd2L : runs ML cloud
Ctrl%LUTClass2=WAT : sets the lower layer of cloud

See how these are set in the example driver file below

The above setting will prodice primary and secondary files with MUL in file name

Example LUT to run multi layer cloud retrieval code

'/home/matin/eodg/users/mcgarragh/data/orac_testing2/preproc'

'round_robin-L2-CLOUD-CLD-MODIS_ORAC_AQUA_200812202355_V1.0'

'/home/matin/eodg/users/mcgarragh/data/orac_testing2/orac'

'/home/jupiter/eodg2/mcgarragh/orac_luts/luts/modis_ICE_baum_no_ray'

MODIS-AQUA

17

1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1

MUL

Ctrl%NTypes_to_process=9

Ctrl%Types_to_process=1,2,3,4,5,6,7,8,9

Ctrl%Approach=AppCld2L

Ctrl%SAD_Dir2=/home/jupiter/eodg2/mcgarragh/orac_luts/luts/modis_WAT/

Ctrl%LUTClass=MUL
Ctrl%LUTClass2=WAT

Post processing step

This part of the code combines the 3 primary files created in the previous step i.e ICE WAT and MUL. Currently the code will include the MUL when the Pavolonis flag is set AND when the cost of the multi layer retrieval is less than the single layer retrieval. Note the Pavolonis ML flag significantly underestimates ML cloud cases.

The post processor also requires a driver file typically named XXX postprocessing.dat

The first line of the diver file is a logical flag:

T = multi layer or F = single layer

The code then looks for the primary and secondary files to read in

dir+ *WAT*.primary.nc

dir+ *ICE*.primary.nc

dir+ *MUL*.primary.nc

dir+ *WAT*.secondary.nc

dir+ *ICE*.secondary.nc

dir+ *MUL*.secondary.nc

F ( where false is the default for no phase switching)

The driver file for post processing is now complete remember to set in script the environment variable for the driver file i.e. ORAC_TEXTIN

Where Pavolonis and cost criteria are met the MUL retrieval will be used and the phase set to 3

Details for the expert user on what ORAC is selecting when you run a ML retrieval

Information on approach selection

If the "approach" is AppCld2L (I.e Multi layer cloud model) it will use the two layer channel selection which is basically just all the available channels you tell it to use with he diver file channel mask - so it will use both 2.2 and 3.7 with the mask in my ML driver file.

If the approach is AppCld1L (i.e. single layer cloud model), which is the default if no approach is given, it goes in to CC4CL mode and chooses one CER channel based on the priority given in ReadDriver?.F90. For MODIS this is (20, 6, 7, 5). For the other instruments it is similar: 3.7 always gets priority over 1.6 or 2.1. 1.24 (MODIS channel



Improvements we are currently working on, check with us for the latest updates:

We are currently investigating improvements regarding the water vapour and 15-um CO2 channels which will be important for providing sensitivity to cirrus independent of liquid clouds.

1) Ctrl%FID%SAD_Dir2 is not defined. I know that I mentioned that Ctrl%FID%SAD_Dir2 defaults to Ctrl%FID%SAD_Dir but that is currently only with the old driver format. I was gonna deal with this in the new parsing next week as I have a list of several things I want to do/fix in the new parser. So for now explicitly defining Ctrl%FID%SAD_Dir2 should fix your problem.

2) Ctrl%RS%Use_Full_BRDF=False. I should have mentioned this but the multilayer retrieval is currently only implemented for the the BRDF FM path. My next step is to implement it for the Lambertian path which only requires a few small modifications. Currently Read_Driver() does not catch the error of running the multilayer retrieval with Ctrl%RS%Use_Full_BRDF=False like it doesn't catch a lot of errors. Putting these kinds of checks in is on my list. The new parser is way to flexible allowing lots of stuff that it should not. Why are you not using the BRDF anyways?

3) The parser is broken such that you have to list Ctrl%Class before Ctrl%Class2. Same with Ctrl%FID%SAD_Dir/Ctrl%FID%SAD_Dir2 and Ctrl%LUTClass/Ctrl%LUTClass2. Again, something that is on my list.

4) BTW: Both CTRL%DO_NEW_NIGHT_RETRIEVAL and CTRL%DO_CTX_CORRECTION are true by default.