diff --git a/services/nox_emissions/serializers.py b/services/nox_emissions/serializers.py index d2cb63d110845bd705a42ba47ec265254e5ffb4b..e29b4c404e96382617e98ab1cd0119b84dabceaf 100644 --- a/services/nox_emissions/serializers.py +++ b/services/nox_emissions/serializers.py @@ -8,5 +8,5 @@ from utils.agg_serializer import GeneralAggSerializer class AggSerializer(GeneralAggSerializer): def __init__(self, instance): - instance['unit'] = 'kg m-2 s-1' + instance['unit'] = 'kg km-2 y-1' super(AggSerializer, self).__init__(instance) diff --git a/utils/geocube_connection.py b/utils/geocube_connection.py index d81e922576e846c75ed08c0ad8babcf1051d4b19..7352e24d291aa06c07e65bf5395f2a05205a54ae 100644 --- a/utils/geocube_connection.py +++ b/utils/geocube_connection.py @@ -13,7 +13,8 @@ from utils.g_c_methods import generate_monthly_timestamps, generate_yearly_times import xarray as xr import nctoolkit as nc import rioxarray as rxr -import os + +import time class GeoCube: @@ -71,6 +72,16 @@ class GeoCube: self.dataset = xr.open_dataset( f"/mnt/geodata/cams_global_emission/CAMS-GLOB-ANT_v4.2_nitrogen-oxides/CAMS-GLOB-ANT_v4.2_nitrogen-oxides_{self.year}.nc", decode_times=False) + self.dataset = self.dataset["sum"].sel(lon=slice(self.lon - 3, self.lon + 3), + lat=slice(self.lat - 3, self.lat + 3)).to_dataset() + self.dataset.load() + + m2_to_km2 = 1e6 + s_to_year = 60 * 60 * 24 * 365.25 + + self.dataset = self.dataset.mean(dim="time") + self.dataset = self.dataset * m2_to_km2 * s_to_year + self.xarray = True lat = self.dataset["lat"][:]