def _get_color_mappings(ml_dataset: MultiLevelDataset, var_name: str, config: Mapping[str, Any], style_id: str): cmap_name = None cmap_range = None, None if config: style_id = style_id or 'default' styles = config.get('Styles') if styles: color_mappings = None for style in styles: if style.get('Identifier') == style_id: color_mappings = style.get('ColorMappings') break if color_mappings: color_mapping = color_mappings.get(var_name) if color_mapping: cmap_name = color_mapping.get('ColorBar') cmap_vmin, cmap_vmax = color_mapping.get('ValueRange', (None, None)) cmap_range = cmap_vmin, cmap_vmax if cmap_name is not None and None not in cmap_range: return cmap_name, cmap_range var = ml_dataset.base_dataset[var_name] valid_range = get_var_valid_range(var) return get_var_cmap_params(var, cmap_name, cmap_range, valid_range)
def get_color_mapping(self, ds_id: str, var_name: str) -> Tuple[str, Tuple[float, float]]: cmap_name = None cmap_vmin, cmap_vmax = None, None color_mappings = self.get_color_mappings(ds_id) if color_mappings: color_mapping = color_mappings.get(var_name) if color_mapping: cmap_vmin, cmap_vmax = color_mapping.get( 'ValueRange', (None, None)) if color_mapping.get('ColorFile') is not None: cmap_name = color_mapping.get('ColorFile', cmap_name) else: cmap_name = color_mapping.get('ColorBar', cmap_name) cmap_name, _ = get_cmap(cmap_name) cmap_range = cmap_vmin, cmap_vmax if cmap_name is not None and None not in cmap_range: # noinspection PyTypeChecker return cmap_name, cmap_range ds = self.get_dataset(ds_id, expected_var_names=[var_name]) var = ds[var_name] valid_range = get_var_valid_range(var) return get_var_cmap_params(var, cmap_name, cmap_range, valid_range)
def get_color_mapping(self, ds_id: str, var_name: str): cmap_name = None cmap_vmin, cmap_vmax = None, None dataset_descriptor = self.get_dataset_descriptor(ds_id) style_name = dataset_descriptor.get('Style', 'default') styles = self._config.get('Styles') if styles: style = None for s in styles: if style_name == s['Identifier']: style = s break if style: color_mappings = style.get('ColorMappings') if color_mappings: color_mapping = color_mappings.get(var_name) if color_mapping: cmap_vmin, cmap_vmax = color_mapping.get('ValueRange', (None, None)) if color_mapping.get('ColorFile') is not None: cmap_name = color_mapping.get('ColorFile', cmap_name) else: cmap_name = color_mapping.get('ColorBar', cmap_name) cmap_name, _ = get_cmap(cmap_name) cmap_params = cmap_name, cmap_vmin, cmap_vmax if None not in cmap_params: return cmap_params ds = self.get_dataset(ds_id, expected_var_names=[var_name]) var = ds[var_name] valid_range = get_var_valid_range(var) return get_var_cmap_params(var, cmap_name, cmap_vmin, cmap_vmax, valid_range)