ColorScale: Add magma and inferno colormaps
This commit is contained in:
@@ -872,20 +872,27 @@ PlotType ConvertPlotType(const std::optional<std::string>& input) {
|
||||
"Plot type not recognized");
|
||||
}
|
||||
|
||||
ColorScaleEnum ConvertColorScale(const std::optional<std::string>& input) {
|
||||
std::string color = input.value_or("indigo");
|
||||
ColorScaleEnum ConvertColorScale(const std::optional<std::string> &input) {
|
||||
std::string color = input.value_or("indigo");
|
||||
|
||||
if (color == "viridis")
|
||||
return ColorScaleEnum::Viridis;
|
||||
else if (color == "bw")
|
||||
if (color == "bw")
|
||||
return ColorScaleEnum::BW;
|
||||
else if (color == "heat")
|
||||
return ColorScaleEnum::Heat;
|
||||
else if (color == "indigo")
|
||||
if (color == "wb")
|
||||
return ColorScaleEnum::WB;
|
||||
if (color == "green")
|
||||
return ColorScaleEnum::Green3;
|
||||
if (color == "heat")
|
||||
return ColorScaleEnum::Heat;
|
||||
if (color == "indigo")
|
||||
return ColorScaleEnum::Indigo;
|
||||
else
|
||||
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
|
||||
"Color scale unknown");
|
||||
if (color == "magma")
|
||||
return ColorScaleEnum::Magma;
|
||||
if (color == "inferno")
|
||||
return ColorScaleEnum::Inferno;
|
||||
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
|
||||
"Color scale unknown");
|
||||
}
|
||||
|
||||
IndexingSettings Convert(const org::openapitools::server::model::Indexing_settings &input) {
|
||||
|
||||
@@ -221,14 +221,18 @@ components:
|
||||
color_scale:
|
||||
in: query
|
||||
name: color
|
||||
description: "Color scale for preview image: 0 - indigo, 1 - viridis, 2 - B/W, 3 - heat"
|
||||
description: "Color scale for preview image"
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- "indigo"
|
||||
- "viridis"
|
||||
- "bw"
|
||||
- "wb"
|
||||
- "green"
|
||||
- "heat"
|
||||
- "magma"
|
||||
- "inferno"
|
||||
default: "indigo"
|
||||
schemas:
|
||||
grid_scan:
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -61,6 +61,10 @@ void ColorScale::CalcLUT() const {
|
||||
case ColorScaleEnum::Green3:
|
||||
map = &green_colormap;
|
||||
break;
|
||||
case ColorScaleEnum::Magma:
|
||||
map = &magma_colormap; break;
|
||||
case ColorScaleEnum::Inferno:
|
||||
map = &inferno_colormap; break;
|
||||
default:
|
||||
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
|
||||
"Color scale unknown");
|
||||
|
||||
+20
-8
@@ -18,14 +18,16 @@ struct rgb {
|
||||
float luminance(rgb input);
|
||||
|
||||
enum class ColorScaleEnum : int {
|
||||
Viridis = 0,
|
||||
Heat = 1,
|
||||
Indigo = 2,
|
||||
BW = 3,
|
||||
WB = 4,
|
||||
Green1 = 5,
|
||||
Green2 = 6,
|
||||
Green3 = 7
|
||||
Indigo = 0,
|
||||
Viridis = 1,
|
||||
Magma = 2,
|
||||
Inferno = 3,
|
||||
Heat = 4,
|
||||
BW = 5,
|
||||
WB = 6,
|
||||
Green1 = 7,
|
||||
Green2 = 8,
|
||||
Green3 = 9
|
||||
};
|
||||
|
||||
enum class ColorScaleSpecial {
|
||||
@@ -59,6 +61,16 @@ class ColorScale {
|
||||
{0, 0, 0}, {0, 255, 0}
|
||||
};
|
||||
|
||||
const std::vector<rgb> magma_colormap = {
|
||||
{0, 0, 4}, {28, 16, 68}, {79, 18, 123}, {129, 37, 129},
|
||||
{181, 54, 122}, {229, 80, 100}, {251, 135, 97}, {252, 191, 125}, {252, 253, 191}
|
||||
};
|
||||
|
||||
const std::vector<rgb> inferno_colormap = {
|
||||
{0, 0, 4}, {31, 12, 72}, {85, 15, 109}, {136, 34, 106},
|
||||
{186, 54, 85}, {227, 89, 51}, {249, 140, 10}, {252, 195, 63}, {252, 255, 164}
|
||||
};
|
||||
|
||||
ColorScaleEnum current = ColorScaleEnum::Indigo;
|
||||
|
||||
rgb gap = {.r = 190, .g = 190, .b = 190}; // Gray
|
||||
|
||||
@@ -7,4 +7,4 @@ The project is supported by :
|
||||
* ETH Domain via Open Research Data Contribute project (Jan - Dec 2023)
|
||||
* AMD University Program with donation of licenses of Ethernet IP cores and Vivado software
|
||||
|
||||
This software uses Viridis colormap from Matplotlib under its BSD-compatible license
|
||||
This software uses Viridis, Magma and Inferno colormaps from Matplotlib under its BSD-compatible license
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "jungfraujoch-frontend",
|
||||
"version": "1.0.0-rc.122",
|
||||
"version": "1.0.0-rc.123",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "jungfraujoch-frontend",
|
||||
"version": "1.0.0-rc.122",
|
||||
"version": "1.0.0-rc.123",
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.10.4",
|
||||
|
||||
@@ -405,7 +405,11 @@ class PreviewImage extends Component<MyProps, MyState> {
|
||||
<MenuItem value={color_scale.INDIGO}>Indigo/white</MenuItem>
|
||||
<MenuItem value={color_scale.HEAT}>Heat</MenuItem>
|
||||
<MenuItem value={color_scale.VIRIDIS}>Viridis</MenuItem>
|
||||
<MenuItem value={color_scale.MAGMA}>Magma</MenuItem>
|
||||
<MenuItem value={color_scale.INFERNO}>Inferno</MenuItem>
|
||||
<MenuItem value={color_scale.BW}>Black/white</MenuItem>
|
||||
<MenuItem value={color_scale.WB}>White/black</MenuItem>
|
||||
<MenuItem value={color_scale.GREEN}>Green</MenuItem>
|
||||
</Select>
|
||||
</FormControl>
|
||||
<Stack spacing={3} direction="row" sx={{width:"83%"}}>
|
||||
|
||||
@@ -10,5 +10,9 @@ export enum color_scale {
|
||||
INDIGO = 'indigo',
|
||||
VIRIDIS = 'viridis',
|
||||
BW = 'bw',
|
||||
WB = 'wb',
|
||||
GREEN = 'green',
|
||||
HEAT = 'heat',
|
||||
MAGMA = 'magma',
|
||||
INFERNO = 'inferno',
|
||||
}
|
||||
|
||||
@@ -1122,7 +1122,7 @@ export class DefaultService {
|
||||
saturation?: number,
|
||||
jpegQuality: number = 100,
|
||||
showResRing: number = 0.1,
|
||||
color: 'indigo' | 'viridis' | 'bw' | 'heat' = 'indigo',
|
||||
color: 'indigo' | 'viridis' | 'bw' | 'wb' | 'green' | 'heat' | 'magma' | 'inferno' = 'indigo',
|
||||
showResEst: boolean = false,
|
||||
): CancelablePromise<Blob> {
|
||||
return __request(OpenAPI, {
|
||||
|
||||
@@ -22,9 +22,11 @@ JFJochViewerToolbarDisplay::JFJochViewerToolbarDisplay(QWidget *parent)
|
||||
|
||||
// Initialize QComboBox with the options
|
||||
color_map_select = new QComboBox(this);
|
||||
color_map_select->addItem("Viridis", static_cast<int>(ColorScaleEnum::Viridis));
|
||||
color_map_select->addItem("Heat", static_cast<int>(ColorScaleEnum::Heat));
|
||||
color_map_select->addItem("Indigo", static_cast<int>(ColorScaleEnum::Indigo));
|
||||
color_map_select->addItem("Viridis", static_cast<int>(ColorScaleEnum::Viridis));
|
||||
color_map_select->addItem("Magma", static_cast<int>(ColorScaleEnum::Magma));
|
||||
color_map_select->addItem("Inferno", static_cast<int>(ColorScaleEnum::Inferno));
|
||||
color_map_select->addItem("Heat", static_cast<int>(ColorScaleEnum::Heat));
|
||||
color_map_select->addItem("Black on white", static_cast<int>(ColorScaleEnum::BW));
|
||||
color_map_select->addItem("White on black", static_cast<int>(ColorScaleEnum::WB));
|
||||
color_map_select->addItem("Green (gamma)", static_cast<int>(ColorScaleEnum::Green1));
|
||||
|
||||
Reference in New Issue
Block a user