MPAS-Dev / MPAS-Analysis

Provides analysis for the MPAS components of E3SM
Other
55 stars 52 forks source link

Consistent color maps for temperature, salinity, potential density, sea-ice properties #388

Closed xylar closed 6 years ago

xylar commented 6 years ago

We use several color maps for temperature and salinity across different analysis plots. These should be made consistent if possible.

Complaints have been made about inferno for sea-ice properties, so maybe an alternative is needed.

Update: I should also add that any other color maps (those we're using for mixed layer depth, velocity components, velocity magnitude, etc.) are up for discussion as well if there's interest.

xylar commented 6 years ago

Options for Temperature

Examples of thermal: image image image

Example of RdYlBu_r: image

Examples of RdBu_r: image image

Example of WOCE temperature map: image

xylar commented 6 years ago

Options for Salinity

Examples of haline: image image image

Example of RdYlBu_r: image

Examples of BuOr: image image

Example of WOCE salinity: image

xylar commented 6 years ago

Options for Potential Density

Examples of dense: image image

Examples of matter: image image

Examples of Spectral_r: image image

Example of WOCE potential density: image

xylar commented 6 years ago

Options for Sea Ice Concentration and/or Thickness:

Examples of inferno: image image

Examples of ice: image image

In both cases, the areas without sea ice could be made dark instead of light for visual consistency: image

xylar commented 6 years ago

@milenaveneziani, @gstreletz @mark-petersen @akturner @darincomeau @pwolfram @vanroekel @matthewhoffman @stephenprice We will be staring at these plots for many years to come so your input now would be much appreciated. If you have more suggestions, please add them to the list above, including some sort of example plot (doesn't have to be from MPAS-Analysis, of course). Please discuss your preference(s) below.

xylar commented 6 years ago

My general thoughts are that it's best to avoid a dark-light-dark color map unless the middle value has some meaning (e.g. they make sense for biases or velocity components where zero has a clear meaning). So it's probably best to avoid maps like RdBu_r, RdYlBu_r, BuOr and Spectral_r for all the fields listed here for this reason.

I personally find the WOCE color maps to be gawd awful and they seem to all suffer from the dark-light-dark problem (intentionally, it would seem).

My preferences are: Temperature: In general, I'm good with thermal, though I find it a bit aggressive. But I really like RdBu_r for Antarctica in particular (where it has become a standard). This is because there is a clear difference between "warm" and "cold" regions. So I'm inclined to continue to do the Antarctic plots in a non-standard color map.

Salinity: I'm good with haline. I'm not big on either RdYlBu_r or BuOr. I'm definitely open to more suggestions. The WOCE salinity map is the least bad of the WOCE maps and could be worth considering. It is a more aesthetic verson of BuOr in some ways, with he same issue that it is dark-light-dark...

Potential Density: I lean toward matter but I find dense to be reasonable. Spectral_r gives the best contrast of the 3 but it highlights densities in the middle of the range, rather than the extremes, which is odd.

Sea Ice Concentration and Thickness: I lean strongly toward ice, particularly if we let the background be black as in the example from the cmocean page above.

milenaveneziani commented 6 years ago

Here are my thoughts: 1) I am conservative with the temperature colormap, I prefer RdYlBu_r for all plots. I love thermal, which is similar to magma I think, but I use it for MLD in my own scripts to process POP data and I really like it for that. 2) I really like haline. 3) I prefer Spectral_r for density, I don't mind the contrast in the middle, or matter. I am not a fan of dense: too little contrast to my eyes. 4) I am not sure about ice, I tend to like inferno, but I'd be fine with ice. The problem with keeping the no-ice background black is that you waste a lot of color when you print the figures, I tend to avoid the use of dark colors for backgrounds.

xylar commented 6 years ago

The problem with keeping the no-ice background black is that you waste a lot of color when you print the figures, I tend to avoid the use of dark colors for backgrounds.

I guess this is partly a question of what the purpose of these plots is. I tend to think of them as primarily for viewing on the web and only as a distant second for including in papers or other materials that will be printed out. It would be easy enough have a printerFriendly option somewhere in the config file that defaults to False but which would make the background light if set to True.

stephenprice commented 6 years ago

For temperature I like either RdYlBu_r or RdBu_r. I'm not a big fan of thermal.

For salinity, I think haline is ok, especially if we want something quite diff. than for temperature (e.g., so it is easy to differentiate relative to the temperature maps). BuOr is also ok ... but maybe not so easy to quickly differentiate from temperature if that is important.

I agree w/ Milena on both comments for density colormaps.

For sea ice, I guess that "ice" looks a bit more icy, so that might be nice. I don't think it makes sense to blacken the entire background though. So as in the example concentration plots you have up looks good to me.

darincomeau commented 6 years ago

I'll throw my support behind the 'ice' colorbar for sea ice; I think the gradient of a single color makes sense, especially for concentration. It's also close to what NSIDC does in their plots.

milenaveneziani commented 6 years ago

that's a good point, @darincomeau: we can have a different colorbar for ice thickness.

darincomeau commented 6 years ago

@milenaveneziani I'm also not a fan of thermal for ice thickness :/ - I'd vote to keep 'ice' for that as well.

darincomeau commented 6 years ago

@xylar what about colorbars for difference plots? I prefer cmocean's balance to RdBu, and for salinity, I think delta looks nice paired with haline. I can put up a couple sample plots.

For sea ice, I'll also suggest reversing the colorbar on difference plots, so that blue indicates more ice, red indicates less. It seems more intuitive to me, but others please feel free to disagree (@akturner ?).

matthewhoffman commented 6 years ago

Throwing in my two cents:

Temperature: thermal (and inferno): I don’t like colormaps ranging from very light to very dark, especially black. I feel like they look different depending on lighting conditions. RdYlBu_r and RdBu_r: I see these in the class of colormaps that really ought to only be applied to +/- situations. I find myself trying to read something into the warm to cool transition, but it has no meaning as used here. RdYlBu_r is the better of the two, but... I would vote for Spectral_r from your list of choices for Density. It has the red/blue warm/cold connotation, but the yellow in the middle minimizes the tendency to interpret values a positive or negative.

Salinity: Despite what I said above about colormaps with very dark colors, I like haline for salinity. It is distinct from any warm/cool connotations.

Density: dense and matter have a fairly limited perceptual range to me. Spectral_r is very nice, but I would suggest using it for temperature.

Sea ice concentration: Contradicting what I said above, I don’t hate inferno here. ice seems to have too little perceptual range and would be potentially less useful to my eye (though prettier to look at). I like plasma better than inferno - similar but with dark blue instead of black.

On the dark background issue, I'm not a big fan.

vanroekel commented 6 years ago

My votes would be

1) RdBu_r or RdYlBu_r, The others aren't distinct enough in color range to my eye. I also think spectral_r could work here. 2) haline is my definite favorite here 3) spectral_r 4) ice

I would also rather not have dark backgrounds.

pwolfram commented 6 years ago

@xylar, I vote for

1 (temperature). RdYlBu_r 2 (salinity). haline 3 (density). spectral_r 4 (ice). ice

I am opposed to dark backgrounds. Should we discuss velocity and vorticity field colorbars too now?

xylar commented 6 years ago

Okay, I'm seeing:

Temperaute: very few fans of thermal or RdBu_r, so I think those are out. There seems to be roughly equal interest in RdYlBu_r and Spectral_r (with the complication that Spectral_r also seems to be preferred for density)

Salinity: A consensus on haline

Density: A strong preference for Spectral_r (note: spectral_r with lowercase s is a different color map, which I veto!)

Ice: A strong preference for ice but with some concerns that it is single color an therefor has relatively limited perceptual range.

By the way, I think you're all totally wrong about dark backgrounds but I'll defer to the wisdom of the crowd. As a counter example, though, let me present one of my beautiful velocity magnitude plots: image

I believe @mark-petersen is out and will likely not be able to weigh in. So I think for now we'll go with: Temperature: RdYlBu_r Salinity: haline Density: Spectral_r Ice: ice

If new alternatives come up that anyone wants to share here, particularly with example plots, feel free.

xylar commented 6 years ago

@darincomeau wrote:

@xylar what about colorbars for difference plots? I prefer cmocean's balance to RdBu, and for salinity, I think delta looks nice paired with haline. I can put up a couple sample plots.

I'm fine with switching to balance. At a glance, it looks pretty similar to RdBu but maybe a bit darker at the extremes? Anyone else want to weight in on the difference plots?

xylar commented 6 years ago

@pwolfram wrote:

Should we discuss velocity and vorticity field colorbars too now?

I have made unilateral decisions that we will use ice for velocity magnitude and delta for velocity components for now. These are slightly negotiable but I'd at least like to try them out for a bit unless there is strong opposition. I don't think there will be any confusion between using ice for ice fields and for velocity magnitude in the ocean because those plots just look totally different.

Regarding vorticity, it hasn't come up yet but the curl color map looks really nice to me. But that's really something to deal with when we have the need...

milenaveneziani commented 6 years ago

balance looks good to me.

About this:

let me present one of my beautiful velocity magnitude plots

I totally agree that those plots are beautiful, but that's a different situation. I don't like to have dark backgrounds that are meaningless, i.e. just as a solid color background (for example, I even hate the black background terminal windows :).

gstreletz commented 6 years ago

I think the current consensus looks good. My only additional input is that I don't really like thermal, that some diverging colormap (such as balance and delta) should be used for differences, and that existing conventions should at least be considered (I had suggested considering the WOCE colormaps, but there doesn't seem to be much appetite for any of them).

Additionally, I will note that there are several people in CCS-7 who are quite interested in colormaps and who have done a lot of work in this area (as many of you probably know). They have thought a lot about how to select a colormap for a specific dataset and purpose (e.g., see https://sciviscolor.org/home/colormoves/), and I imagine that some of them would be interested in consulting with us about colormaps, should there be any interest in that.

xylar commented 6 years ago

Thanks @gstreletz. I wasn't aware of all this work in CCS-7 and it could, indeed, make sense to get their input, particularly on a good map to use for temperature where I get the sense that we don't have consensus. Many of those color maps on the site you linke to are really beautiful.

pwolfram commented 6 years ago

I agree with @gstreletz, bringing in CCS-7 (particularly Francesca Samsel) would be a great idea as we decide which colormaps become defaults.

milenaveneziani commented 6 years ago

For vorticity, curl is fine, but balance is better to me. My brain doesn't even have to think twice: negative=blue, positive=red :)

xylar commented 6 years ago

These changes are being made in #394. Here's a link to an example analysis with the new, consistent color maps: http://portal.nersc.gov/project/m2833/xylar/new_color_maps/20180209.GMPAS-IAF.T62_oEC60to30v3wLI.cori-knl.afterSalinityFix/