Skip to Content.

mget-help - RE: [mget-help] Re: Cayula-Cornillon Chlorophyll a fronts

Please Wait...

Subject: Marine Geospatial Ecology Tools (MGET) help

Text archives


From: "Jason Roberts" <>
To: "'Tim White'" <>
Cc: <>
Subject: RE: [mget-help] Re: Cayula-Cornillon Chlorophyll a fronts
Date: Wed, 15 Jul 2009 22:19:11 -0400

Hi Tim,

 

The Cayula-Cornillon algorithm is designed to work with unscaled integers, although the code that MGET's implementation is based on (Cayula's code, modified over the years by Dave Ullman) was specifically designed to detect SST fronts in unsigned 8-bit data from AVHRR on the NOAA POES satellites. I do not recall the original data provider. My guess is that all of the validation papers (e.g. Ullman et al 2000) are based on that code and data source.

 

In principle, the algorithm should work on any kind of image. It is based on a classic edge-detection algorithm. There is at least one publication that applied it to chlorophyll fronts, but I do not recall whether how they parameterized or tweaked the algorithm.

 

I believe the best results will be obtained by applying it to log scaled chlorophyll data, and that the unscaled integers from the original data providers should work well because the data providers presumably think hard about what scaling equation can compactly provide the best image contrast.

 

I am a little confused about what floating-point values you currently have. Do you simply have the log base 10 of the actual chl value? If so, I suggest you convert it back to the actual chl value, and then performing the inverse of function that was presumably used to get the actual chl value from the original integers. In the case of MODIS level 3, those integers were 16-bit unsigned. This page shows the MODIS scaling equation, near the bottom of the page. So, to first get the actual chl value and then perform the inverse function, you'd use a map algebra _expression_ similar to this:

 

int((log10(pow(10, inputRaster)) + 2.0) / 0.000058)

 

That _expression_ can obviously be simplified to:

 

int((inputRaster + 2.0) / 0.000058)

 

I am not sure if the MODIS level 2 data uses this same scaling equation, however. Also, I think SeaWiFS uses a slightly different one. It is probably not critically important to get it exactly right. The main thing is that the integers should provide good visual contrast, so the edge-detection will work.

 

Also, I do not know how much of the 16-bit range (0-65535) is actually used by the chl data you have. The range of values will affect the both the speed and the memory utilization of the tool. If you find that it is too slow or too much memory is used, you could come up with your own scaling equation that gets the values into a smaller range. The unsigned 8-bit range (0-255) should provide good performance.

 

Hope that helps,

 

Jason

 

From: Tim White [mailto:]
Sent: Wednesday, July 15, 2009 9:09 PM
To:
Subject: [mget-help] Re: Cayula-Cornillon Chlorophyll a fronts

 

Hi There,

I'm having a bit of trouble finding chlorophyll a fronts with the Cayula-Cornillon front detection algorithm in the MGET toolbox.  I've processed  level 2 chlr_a data to a 1k m resolution, with flags, and converted to ArcGis raster. At present, the chlr_a data are log scaled floating-point data (geophysical value), and I'm not sure how to rescale the data back to the original 32 bit unsigned integers.  I assume that the unscaled integer data is the best  to use with the Cayula-Cornillon front algorithm.  Do you know of a formula that I can use in the Map Algebra toolbox to convert the floating-point chlr_a data back to 32-bit unsigned integer, unscaled data?  The slope of the data is 1.00 and the intercept is 0.00. 

Thanks for any suggestions.

Best Regards,
Tim

Archives powered by MHonArc.
Top of Page