Reproducing chlor_a from oc3m and CI

Use this Forum to find information on, or ask a question about, NASA Earth Science data.
Post Reply
daurin
Posts: 42
Joined: Thu Apr 22, 2010 8:06 am America/New_York
Answers: 0
Has thanked: 1 time

Reproducing chlor_a from oc3m and CI

by daurin » Wed Jun 17, 2020 6:13 pm America/New_York

In the algorithm description (https://oceancolor.gsfc.nasa.gov/atbd/chlor_a/) it says simply, "In between these values, the CI and OCx algorithm are blended using a weighted approach." In another post here (https://oceancolor.gsfc.nasa.gov/forum/oceancolor/topic_show.pl?pid=34869;hl=oc3m) Chris says, "A slightly *modified* version of Hu et al. 2012 is used where those algorithms are blended between chlorophyll concentrations of 0.15 to 0.2 mg m^-3."

Equation 5 in Hu et al. 2012 uses a set of coefficients for alpha and beta in the blended algorithm (different range: 0.25 to 0.3 mg m^-3). So, what coefficients does SeaDAS 7.5.3 use for alpha and beta to blend oc3m and CI in the 0.15 to 0.2 range?

I looked in seadas-7.5.3/ocssw/share/modis/msl12_defaults.par, but while the basic ocX coefficients and bands are lists, I don't see CI's alpha and beta coefficients.

Cheers

Tags:

gnwiii
Posts: 713
Joined: Fri Jan 29, 2021 5:51 pm America/New_York
Answers: 2
Has thanked: 1 time

Reproducing chlor_a from oc3m and CI

by gnwiii » Thu Jun 18, 2020 5:23 am America/New_York

(I try to resist the urge to say "use the source")

The "blending" is simply linear interpolation.   Look in get_chl.c for the definition of chl_oci (also in $OCSSWROOT/ocssw-src/src/l2gen/get_chl.c):

float chl_oci(l2str *l2rec, float Rrs[]) {
    static float t1 = 0.15;
    static float t2 = 0.20;

    float chl1 = chlbad;
    float chl2 = chlbad;
    float chl = chlbad;

    chl1 = chl_hu(l2rec, Rrs);
    if (chl1 <= t1)
        chl = chl1;
    else {
        chl2 = get_chl_ocx(l2rec, Rrs);
        if (chl2 > 0.0) {
            if (chl1 >= t2)
                chl = chl2;
            else {
                chl = chl1 * (t2 - chl1) / (t2 - t1)
                        + chl2 * (chl1 - t1) / (t2 - t1);
            }
        }
    }

    return (chl);
}

daurin
Posts: 42
Joined: Thu Apr 22, 2010 8:06 am America/New_York
Answers: 0
Has thanked: 1 time

Reproducing chlor_a from oc3m and CI

by daurin » Thu Jun 18, 2020 8:58 am America/New_York

Oh, of course. The parameters used in the blending are not arbitrary, they are the thresholds again.
Thanks, and may the source be with you.

gfireman
Posts: 64
Joined: Thu Jan 07, 2010 2:59 pm America/New_York
Answers: 0

Reproducing chlor_a from oc3m and CI

by gfireman » Thu Jun 18, 2020 12:03 pm America/New_York

Dirk -

On the command line, you can run
install_ocssw.py --src
to install source code in your SeaDAS directory (install_ocssw.py --help to see all options).

I'm sure there's a GUI way to do this too, but I don't use the GUI much :)

- Gwyn

daurin
Posts: 42
Joined: Thu Apr 22, 2010 8:06 am America/New_York
Answers: 0
Has thanked: 1 time

Reproducing chlor_a from oc3m and CI

by daurin » Thu Jun 18, 2020 5:08 pm America/New_York

Thanks, Gwynn.

Post Reply