Skip to content

Commit 7d39129

Browse files
committed
Add ODB plotting to Metview mode ecmwf#41
1 parent 7b0deb2 commit 7d39129

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

skinnywms/data/mvfs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ class MvDataLayer(MvLayer):
108108

109109
def __init__(self, loader, context, name, title, zindex, conf):
110110
super().__init__(loader, name, title, zindex, conf)
111+
self.conf = conf
111112
index = conf.get('index')
112113
if type(index) == int:
113114
index = [index]

skinnywms/fields/mvfield.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,38 @@ def __repr__(self):
168168
self.path, self.index, self.data_index)
169169

170170

171+
class MvOdbField(MvField):
172+
def __init__(self, *args, **kwargs):
173+
super().__init__(*args, **kwargs)
174+
175+
def render(self, context, driver, style, legend={}):
176+
data = []
177+
params = {
178+
'odb_filename': self.path,
179+
'odb_latitude_variable': self.layer.conf.get('latitude',''),
180+
'odb_longitude_variable': self.layer.conf.get('longitude', ''),
181+
'odb_value_variable': self.layer.conf.get('value', '')
182+
}
183+
184+
data.append(driver.odb_geopoints(**params))
185+
data.extend(self.render_style(driver, style))
186+
return data
187+
188+
def as_dict(self):
189+
return dict(_class=self.__class__.__module__ +
190+
'.' + self.__class__.__name__,
191+
name=self.name,
192+
title=self.title,
193+
path=self.path,
194+
index=self.index,
195+
data_index=self.data_index,
196+
styles=[s.as_dict() for s in self.styles])
197+
198+
def __repr__(self):
199+
return 'MvOdbField[{},{},{}]'.format(
200+
self.path, self.index, self.data_index)
201+
202+
171203
class MvBufrField(MvField):
172204
def __init__(self, *args, **kwargs):
173205
super().__init__(*args, **kwargs)
@@ -201,5 +233,6 @@ def __repr__(self):
201233
'grib_vector': MvGribField,
202234
'geopoints': MvGeopointsField,
203235
'geopoints_vector': MvGeopointsVectorField,
204-
'bufr': MvBufrField
236+
'bufr': MvBufrField,
237+
'odb': MvOdbField
205238
}

0 commit comments

Comments
 (0)