I’m trying to isolate the SeaWiFS trace gas absorption for water vapour as a sanity check on something. The calculation for two-way transmittance is a fairly simple expression in water_vapor.c within l2gen:

*/* Returns SeaWiFS water-vapor transmittance */*

float water_vapor (int iband, float uH2O, float airmass)

{

static float a[4] = {-8.62884,-6.94310,-5.81033,-5.51066};

static float b[4] = {0.766159,0.813607,0.617758,0.678041};

int i = iband - 4;

if (i < 0 || i > 3)

return(1.0);

else

return(exp(-exp(a[ i ]+b[ i ]*log(airmass*uH2O))));

}

float water_vapor (int iband, float uH2O, float airmass)

{

static float a[4] = {-8.62884,-6.94310,-5.81033,-5.51066};

static float b[4] = {0.766159,0.813607,0.617758,0.678041};

int i = iband - 4;

if (i < 0 || i > 3)

return(1.0);

else

return(exp(-exp(a[ i ]+b[ i ]*log(airmass*uH2O))));

}

Here airmass is 1/mu0 + 1/mu and the code comments indicate that uH2O is expected in units of g/cm2 (which is equivalent to cm); log is natural logarithm. setanc.c also notes units of g/cm2.

So if I take band 8 (865 nm), which has the strongest absorption, for an example airmass of 2.5 (just off-nadir, high sun) and uH2O = 1 then I get:

*exp(-1*exp(-5.51066+0.678041*log(2.5*1)))=0.992501*

So that’s less than 0.1% absorption, which is somewhat less than I expected. If we take a somewhat more oblique observation geometry and more water (e.g. air mass 4, UH20=3) then I get:

*exp(-1*exp(-5.51066+0.678041*log(4*4)))=0.973851*

Which also seems like not a lot of absorption to me, compared to my experience with e.g. MODIS and VIIRS bands centred near 870 nm (where water vapour absorption is definitely not negligible).

I went to Howard Gordon’s 1995 paper (Remote sensing of ocean color: a methodology for dealing with broad spectral bands and significant out-of-band response, Appl Opt. 1995 Dec 20;34(36):8363-74. doi: 10.1364/AO.34.008363.) since that’s got a plot of spectral response function and gas absorption (Figure 3) but from the scale it’s a bit hard to eyeball an expected number.

Is SeaWiFS really that much less sensitive to atmospheric water vapour absorption than MODIS or VIIRS? Or have I got the units or something else wrong? If I assume it is expecting water vapour in mm (equivalent to kg/m2) rather than cm (equivalent to g/cm2) then my transmittances look more similar to what I’d expect from e.g. MODIS/VIIRS:

*exp(-1*exp(-5.51066+0.678041*log(2.5*10)))=0.964775*(for the drier, near-nadir high sun case)

*exp(-1*exp(-5.51066+0.678041*log(4*40))) =0.881394*(for the more extreme case)

I am assuming I am doing something wrong in the above, because if typical transmittances are 0.97-0.99 or so at 865 nm (and much closer to 1 at 550/670/760 nm bands) then it seems like it wouldn’t be a correction one needs to bother with?

Thanks,

Andy