Skip to content

Commit 89c26de

Browse files
committed
fix: update color bars to use latest quickview
1 parent f3785fa commit 89c26de

File tree

3 files changed

+37
-13
lines changed

3 files changed

+37
-13
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ dependencies = [
3232
"trame-components",
3333
"trame-tauri>=0.6.2",
3434
"Pillow",
35-
"e3sm-quickview",
35+
"e3sm-quickview>=1.3.5",
3636
]
3737

3838
[project.optional-dependencies]

src/e3sm_compareview/components/view.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from trame.widgets import html, vuetify3 as v3
1+
from trame.widgets import html
2+
from trame.widgets import vuetify3 as v3
23

34

45
def create_size_menu(name, config):
@@ -173,6 +174,7 @@ def create_bottom_bar(config, update_color_preset):
173174
text="Use data range",
174175
variant="text",
175176
)
177+
176178
v3.VTextField(
177179
v_model="config.search",
178180
clearable=True,
@@ -194,7 +196,22 @@ def create_bottom_bar(config, update_color_preset):
194196
click="config.menu=false",
195197
)
196198

197-
with v3.VCardItem(v_show="config.override_range", classes="py-0"):
199+
with v3.VCardItem(classes="py-0 mb-2"):
200+
v3.VNumberInput(
201+
v_model="config.n_colors",
202+
hide_details=True,
203+
density="compact",
204+
variant="outlined",
205+
flat=True,
206+
label="Number of colors",
207+
classes="mt-2",
208+
step=[1],
209+
min=[2],
210+
max=[255],
211+
)
212+
with v3.VCardItem(
213+
v_show="config.override_range", classes="py-0 mb-2"
214+
):
198215
v3.VTextField(
199216
v_model="config.color_value_min",
200217
hide_details=True,
@@ -224,7 +241,7 @@ def create_bottom_bar(config, update_color_preset):
224241
subtitle=("entry.name",),
225242
click=(
226243
update_color_preset,
227-
"[entry.name, config.invert, config.use_log_scale]",
244+
"[entry.name, config.invert, config.use_log_scale, config.n_colors]",
228245
),
229246
active=("config.preset === entry.name",),
230247
):
@@ -239,7 +256,7 @@ def create_bottom_bar(config, update_color_preset):
239256
)
240257
with html.Div(classes="overflow-hidden rounded w-100", style="height:70%;"):
241258
html.Img(
242-
src=("config.preset_img",),
259+
src=("config.lut_img",),
243260
style="width:100%;height:2rem;",
244261
draggable=False,
245262
)

src/e3sm_compareview/view_manager.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
from e3sm_compareview.components import view as tview
1313
from e3sm_quickview.presets import COLOR_BLIND_SAFE
14-
from e3sm_quickview.utils.color import COLORBAR_CACHE, get_cached_colorbar_image
14+
from e3sm_quickview.utils.color import COLORBAR_CACHE, lut_to_img
1515

1616

1717
def auto_size_to_col(size):
@@ -50,7 +50,6 @@ class ViewConfiguration(StateDataModel):
5050
variable: str
5151
label: str = ""
5252
preset: str = "Inferno (matplotlib)"
53-
preset_img: str
5453
invert: bool = False
5554
color_blind: bool = False
5655
use_log_scale: bool = False
@@ -67,6 +66,8 @@ class ViewConfiguration(StateDataModel):
6766
menu: bool = False
6867
swap_group: list[str]
6968
search: str | None
69+
n_colors: int = 255
70+
lut_img: str
7071

7172

7273
class VariableView(TrameComponent):
@@ -147,7 +148,9 @@ def __init__(self, server, source, view_spec, variable_type):
147148
["override_range", "color_range"], self.update_color_range, eager=True
148149
)
149150
self.config.watch(
150-
["preset", "invert", "use_log_scale"], self.update_color_preset, eager=True
151+
["preset", "invert", "use_log_scale", "n_colors"],
152+
self.update_color_preset,
153+
eager=True,
151154
)
152155

153156
# GUI
@@ -180,18 +183,22 @@ def reset_camera(self):
180183
self.view.ResetCamera(True, 0.9)
181184
self.ctx[self.name].update()
182185

183-
def update_color_preset(self, name, invert, log_scale):
186+
def update_color_preset(self, name, invert, log_scale, n_colors=255):
184187
self.config.preset = name
185-
self.config.preset_img = get_cached_colorbar_image(
186-
self.config.preset,
187-
self.config.invert,
188-
)
188+
self.lut.UseLogScale = 0
189189
self.lut.ApplyPreset(self.config.preset, True)
190190
if invert:
191191
self.lut.InvertTransferFunction()
192+
192193
if log_scale:
193194
self.lut.MapControlPointsToLogSpace()
194195
self.lut.UseLogScale = 1
196+
197+
if n_colors is not None:
198+
self.lut.NumberOfTableValues = n_colors
199+
200+
self.config.lut_img = lut_to_img(self.lut)
201+
195202
self.render()
196203

197204
def color_range_str_to_float(self, color_value_min, color_value_max):

0 commit comments

Comments
 (0)