def render_id(self, state, layer_id): print(f"{self.__class__.__name__}.render({layer_id})") lons, lats = geo.plate_carree(state.position.x, state.position.y) lon_0 = lons[0] lat_0 = lats[0] self.source.data = self.loader.profile( state.pattern, state.layers.index[layer_id]["variable"], state.initial_time, state.valid_time, state.pressure, lon_0, lat_0)
def render(self, initial_time, variable, x, y, pressure=None): """Update data for a particular application setting""" assert isinstance(initial_time, dt.datetime), "only support datetime" self.figure.title.text = variable for name, source in self.sources.items(): loader = self.loaders[name] lon, lat = geo.plate_carree(x, y) lon, lat = lon[0], lat[0] # Map to scalar source.data = loader.series(initial_time, variable, lon, lat, pressure)
def render(self): for attr in ["x", "y", "variable", "initial_time"]: if attr not in self.state: return x = self.state["x"] y = self.state["y"] variable = self.state["variable"] initial_time = dt.datetime.strptime(self.state["initial_time"], "%Y-%m-%d %H:%M:%S") pressure = self.state.get("pressure", None) self.figure.title.text = variable for name, source in self.sources.items(): loader = self.loaders[name] lon, lat = geo.plate_carree(x, y) lon, lat = lon[0], lat[0] # Map to scalar source.data = loader.series(initial_time, variable, lon, lat, pressure)