def get_parameter_values(self, param_name, tdoa=None, sdoa=None, return_value=None): """ Retrieve the value for a parameter Returns the value from param_name. Temporal and spatial DomainOfApplication objects can be used to constrain the response. See DomainOfApplication for details. @param param_name The name of the parameter @param tdoa The temporal DomainOfApplication @param sdoa The spatial DomainOfApplication @param return_value If supplied, filled with response value - currently via OVERWRITE @throws KeyError The coverage does not contain a parameter with name 'param_name' """ if not param_name in self._range_value: raise KeyError('Parameter \'{0}\' not found in coverage'.format(param_name)) if return_value is not None: log.warn('Provided \'return_value\' will be OVERWRITTEN') slice_ = [] tdoa = get_valid_DomainOfApplication(tdoa, self.temporal_domain.shape.extents) log.debug('Temporal doa: %s', tdoa.slices) slice_.extend(tdoa.slices) if self.spatial_domain is not None: sdoa = get_valid_DomainOfApplication(sdoa, self.spatial_domain.shape.extents) log.debug('Spatial doa: %s', sdoa.slices) slice_.extend(sdoa.slices) log.debug('Getting slice: %s', slice_) return_value = self._range_value[param_name][slice_] return return_value
def set_parameter_values(self, param_name, value, tdoa=None, sdoa=None): """ Assign value to the specified parameter Assigns the value to param_name within the coverage. Temporal and spatial DomainOfApplication objects can be applied to constrain the assignment. See DomainOfApplication for details @param param_name The name of the parameter @param value The value to set @param tdoa The temporal DomainOfApplication @param sdoa The spatial DomainOfApplication @throws KeyError The coverage does not contain a parameter with name 'param_name' """ if not param_name in self._range_value: raise KeyError('Parameter \'{0}\' not found in coverage_model'.format(param_name)) slice_ = [] tdoa = get_valid_DomainOfApplication(tdoa, self.temporal_domain.shape.extents) log.debug('Temporal doa: %s', tdoa.slices) slice_.extend(tdoa.slices) if self.spatial_domain is not None: sdoa = get_valid_DomainOfApplication(sdoa, self.spatial_domain.shape.extents) log.debug('Spatial doa: %s', sdoa.slices) slice_.extend(sdoa.slices) log.debug('Setting slice: %s', slice_) self._range_value[param_name][slice_] = value