Daily changes of Arctic sea ice concentration in shades of green and red

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Daily changes of Arctic sea ice concentration in shades of green and red

arcticio
Hi,

I want to visualize and animate daily changes of Arctic sea ice concentration as measured by satellites, losses should appear as shades of red, growth of green. I tried image calcuator/subtract with 32bit target, reducing to 8bit and applying a custom LUT. Result looks promising (see below), however this approach centers the histogram of the resulting image on the most common value, which depends on chosen dates.

So either I need to create a custom LUT for each pair of days (very time consuming) or a possibility (unknown so far) to detect this value and let a script shift the LUT by an offset or try a completely different approach (hopefully exists).

It would be great if someone could point to next step.

Any feedback is welcome.

-- Torsten


Reply | Threaded
Open this post in threaded view
|

Re: Daily changes of Arctic sea ice concentration in shades of green and red

dscho
Hi Torsten Arcticio,

On Mon, 25 Jul 2011, arcticio wrote:

> I want to visualize and animate daily changes of Arctic sea ice
> concentration as measured by satellites, losses should appear as shades
> of red, growth of green. I tried image calcuator/subtract with 32bit
> target, reducing to 8bit and applying a custom LUT. Result looks
> promising (see below), however this approach centers the histogram of
> the resulting image on the most common value, which depends on chosen
> dates.
>
> So either I need to create a custom LUT for each pair of days (very time
> consuming) or a possibility (unknown so far) to detect this value and
> let a script shift the LUT by an offset or try a completely different
> approach (hopefully exists).

I guess you are using a macro?

In any case, I would do this as a macro that has two loops:

The first loop duplicates the current slice and the previous slice, uses
Image Calculator to create a 32-bit output via "Subtract..." (32-bit so we
also get negative values), and adds that output to the (newly
created) result stack.

The second loop would determine the global min and max of said stack,
and set the display range to -y to +y, where y is the maximum of the
absolute values of min anx max.

Then you just need one color map that goes from dark red via light red via
light green to dark green. You could use code like this for this purpose:

-- snip --
reds = newArray(256);
greens = newArray(256);
blues = newArray(256);

for (i = 0; i < 128; i++) {
        reds[i] = 255;
        greens[i] = i * 2 + 1;
        blues[i] = greens[i];

        greens[255 - i] = reds[i];
        reds[255 - i] = greens[i];
        blues[255 - i] = blues[i];
}

setLut(reds, greens, blues);
-- snap --

HOWEVER.

I would _strongly_ advise against using red/green. Just think about it: if
I asked you to choose two colors so as to maximize the number of people
who _cannot_ see the difference, which two colors would you choose?
Exactly, red and green, without fail. Because 8% of the male population
(which is not exactly a tiny minority of human beings) cannot see it, and
even 0.5% of the female population.

Yes, many scientists are familiar with red vs green images. That does not
make them right, though. Nobody walks long distances anymore, even if that
was the most familiar method of travel for a long time. We should learn,
and strike red vs green images from our publications.

One easy way to accomplish that is to use magenta instead of red. That
means that you should set blues[i] = reds[i] and blues[255 - i] = reds[255
- i] in the above macro instead.

Ciao,
Johannes
Reply | Threaded
Open this post in threaded view
|

Re: Daily changes of Arctic sea ice concentration in shades of green and red

arcticio
In reply to this post by arcticio
Thanks to Chris and Johannes,

I'll try to combine both approaches (magenta, double loop and analyzing LUT).

--Torsten