def series_params(self): """ Params for series """ params = {} if self.location is not None: ident = self.location.ident # location_postpend if self.location_postpend: ident += self.location_postpend if self.related_location: # Fetch related location ident instead of own location ident source = self.fews_norm_source fews_location = Location.from_raw( schema_prefix=source.database_schema_name, ident=ident, related_location=self.related_location).using( source.database_name)[0] params['location'] = fews_location.related_location else: # Default params['location'] = ident if self.parameter is not None: params['parameter'] = self.parameter.ident if self.module is not None: params['moduleinstance'] = self.module.ident if self.time_step is not None: params['timestep'] = self.time_step.ident if self.qualifierset is not None: params['qualifierset'] = self.qualifierset.ident return params
def get_related_location(self, ident, related_location_field): """Retrieve id of related location from fews db.""" locations = GeoLocationCache.objects.filter(ident=ident) if locations.exists(): location = locations[0] source = self.fews_norm_source(location) fews_location = Location.from_raw( schema_prefix=source.database_schema_name, ident=location.ident, related_location=related_location_field).using( source.database_name)[0] return fews_location.related_location