Skip to content

Commit dbed4aa

Browse files
authored
Merge pull request #414 from MetOffice/nearcast-color-mapper
Nearcast color mapper
2 parents e7af999 + a7ab788 commit dbed4aa

File tree

4 files changed

+15
-57
lines changed

4 files changed

+15
-57
lines changed

forest/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
.. automodule:: forest.services
2929
3030
"""
31-
__version__ = '0.20.0'
31+
__version__ = '0.20.1'
3232

3333
from .config import *
3434
from . import (

forest/drivers/nearcast.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,15 @@
2626
class Dataset:
2727
def __init__(self, pattern=None, **kwargs):
2828
self.pattern = pattern
29+
self.loader = NearCast(self.pattern)
2930

3031
def navigator(self):
3132
return Navigator(self.pattern)
3233

3334
def map_view(self, color_mapper):
34-
view = forest.map_view.NearCast(NearCast(self.pattern), color_mapper)
35-
view.set_hover_properties(NEARCAST_TOOLTIPS)
36-
return view
35+
return forest.map_view.map_view(self.loader,
36+
color_mapper,
37+
tooltips=NEARCAST_TOOLTIPS)
3738

3839

3940
class NearCast(object):

forest/map_view.py

Lines changed: 10 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,25 @@
88
from forest.exceptions import FileNotFound, IndexNotFound
99

1010

11-
def map_view(loader, color_mapper, use_hover_tool=True):
11+
def map_view(loader, color_mapper, use_hover_tool=True, tooltips=None):
1212
"""Convenient method to simplify MapView construction"""
1313
if forest.data.FEATURE_FLAGS["multiple_colorbars"]:
1414
color_mapper = bokeh.models.LinearColorMapper(
1515
palette="Greys256",
1616
low=0,
1717
high=1)
1818
color_view = ColorView(color_mapper)
19-
um_view = ImageView(loader, color_mapper,
20-
use_hover_tool=use_hover_tool)
21-
return MapView(um_view, color_view)
19+
image_view = ImageView(loader, color_mapper,
20+
use_hover_tool=use_hover_tool)
21+
if tooltips is not None:
22+
image_view.tooltips = tooltips
23+
return MapView(image_view, color_view)
2224
else:
23-
return ImageView(loader, color_mapper,
25+
view = ImageView(loader, color_mapper,
2426
use_hover_tool=use_hover_tool)
27+
if tooltips is not None:
28+
view.tooltips = tooltips
29+
return view
2530

2631

2732
class AbstractMapView(ABC):
@@ -115,50 +120,3 @@ def add_figure(self, figure):
115120
formatters=self.formatters)
116121
figure.add_tools(tool)
117122
return renderer
118-
119-
120-
class Image(object):
121-
pass
122-
123-
124-
class Barbs(object):
125-
pass
126-
127-
128-
class NearCast(object):
129-
def __init__(self, loader, color_mapper):
130-
self.loader = loader
131-
self.color_mapper = color_mapper
132-
self.color_mapper.nan_color = bokeh.colors.RGB(0, 0, 0, a=0)
133-
self.source = bokeh.models.ColumnDataSource({
134-
"x": [],
135-
"y": [],
136-
"dw": [],
137-
"dh": [],
138-
"image": []})
139-
self.image_sources = [self.source]
140-
141-
@old_state
142-
@unique
143-
def render(self, state):
144-
self.source.data = self.loader.image(state)
145-
146-
def set_hover_properties(self, tooltips):
147-
self.tooltips = tooltips
148-
149-
def add_figure(self, figure):
150-
renderer = figure.image(
151-
x="x",
152-
y="y",
153-
dw="dw",
154-
dh="dh",
155-
image="image",
156-
source=self.source,
157-
color_mapper=self.color_mapper)
158-
159-
tool = bokeh.models.HoverTool(
160-
renderers=[renderer],
161-
tooltips=self.tooltips)
162-
163-
figure.add_tools(tool)
164-
return renderer

test/test_drivers_nearcast.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ def test_dataset_map_view():
2121
color_mapper = bokeh.models.ColorMapper()
2222
dataset = forest.drivers.get_dataset("nearcast")
2323
map_view = dataset.map_view(color_mapper)
24-
assert isinstance(map_view, forest.map_view.NearCast)
2524
assert map_view.tooltips == forest.drivers.nearcast.NEARCAST_TOOLTIPS
2625

2726

0 commit comments

Comments
 (0)