From b67be5f73fb89a80e5308626d06e313884976f18 Mon Sep 17 00:00:00 2001 From: ctena Date: Thu, 23 Dec 2021 09:10:22 +0100 Subject: [PATCH] GFAS Hourly working in the ftp folder --- .../emision_inventories/emission_inventory.py | 4 +-- .../gfas_emission_inventory.py | 2 +- .../point_gfas_hourly_emission_inventory.py | 28 +++++++++++++------ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/hermesv3_gr/modules/emision_inventories/emission_inventory.py b/hermesv3_gr/modules/emision_inventories/emission_inventory.py index 0eb2d62..987ef7a 100755 --- a/hermesv3_gr/modules/emision_inventories/emission_inventory.py +++ b/hermesv3_gr/modules/emision_inventories/emission_inventory.py @@ -389,7 +389,7 @@ class EmissionInventory(object): reference_year=emission_inventory.ref_year, factors=emission_inventory.factor_mask, regrid_mask=emission_inventory.regrid_mask, p_vertical=emission_inventory.p_vertical, p_month=p_month, p_week=p_week, p_day=p_day, p_hour=p_hour, - p_speciation=emission_inventory.p_speciation)) + p_speciation=emission_inventory.p_speciation, countries_shapefile=countries_shapefile)) elif emission_inventory.frequency == 'hourly': emission_inventory_list.append( PointGfasHourlyEmissionInventory( @@ -398,7 +398,7 @@ class EmissionInventory(object): emission_inventory.frequency, vertical_levels, reference_year=emission_inventory.ref_year, factors=emission_inventory.factor_mask, regrid_mask=emission_inventory.regrid_mask, p_vertical=emission_inventory.p_vertical, - p_speciation=emission_inventory.p_speciation)) + p_speciation=emission_inventory.p_speciation, countries_shapefile=countries_shapefile)) else: raise NotImplementedError("ERROR: {0} frequency are not implemented, use 'daily' or 'hourly.") else: diff --git a/hermesv3_gr/modules/emision_inventories/gfas_emission_inventory.py b/hermesv3_gr/modules/emision_inventories/gfas_emission_inventory.py index fe2f35d..01a4e55 100755 --- a/hermesv3_gr/modules/emision_inventories/gfas_emission_inventory.py +++ b/hermesv3_gr/modules/emision_inventories/gfas_emission_inventory.py @@ -71,7 +71,7 @@ class GfasEmissionInventory(EmissionInventory): def __init__(self, comm, options, grid, current_date, inventory_name, source_type, sector, pollutants, inputs_path, frequency, vertical_output_profile, reference_year=2010, coverage='global', factors=None, regrid_mask=None, p_vertical=None, p_month=None, - p_week=None, p_day=None, p_hour=None, p_speciation=None): + p_week=None, p_day=None, p_hour=None, p_speciation=None, countries_shapefile=None): from hermesv3_gr.modules.vertical.vertical_gfas import GfasVerticalDistribution st_time = timeit.default_timer() diff --git a/hermesv3_gr/modules/emision_inventories/point_gfas_hourly_emission_inventory.py b/hermesv3_gr/modules/emision_inventories/point_gfas_hourly_emission_inventory.py index 124d1c7..639f09a 100755 --- a/hermesv3_gr/modules/emision_inventories/point_gfas_hourly_emission_inventory.py +++ b/hermesv3_gr/modules/emision_inventories/point_gfas_hourly_emission_inventory.py @@ -70,16 +70,16 @@ class PointGfasHourlyEmissionInventory(EmissionInventory): """ def __init__(self, comm, options, grid, current_date, inventory_name, source_type, sector, pollutants, inputs_path, - frequency, vertical_output_profile, - reference_year=2010, factors=None, regrid_mask=None, p_vertical=None, p_speciation=None): + frequency, vertical_output_profile, reference_year=2010, factors=None, regrid_mask=None, + p_vertical=None, p_speciation=None, countries_shapefile=None): st_time = timeit.default_timer() settings.write_log('\t\tCreating GFAS emission inventory as point source.', level=3) super(PointGfasHourlyEmissionInventory, self).__init__( comm, options, grid, current_date, inventory_name, source_type, sector, pollutants, inputs_path, frequency, vertical_output_profile, - reference_year=reference_year, factors=factors, regrid_mask=regrid_mask, p_vertical=None, - p_month=None, p_week=None, p_day=None, p_hour=None, p_speciation=p_speciation) + reference_year=reference_year, factors=factors, regrid_mask=regrid_mask, p_vertical=None, p_month=None, + p_week=None, p_day=None, p_hour=None, p_speciation=p_speciation, countries_shapefile=countries_shapefile) self.method = self.get_method(p_vertical) self.altitude_name = self.get_altitude_name() @@ -151,9 +151,22 @@ class PointGfasHourlyEmissionInventory(EmissionInventory): settings.write_log('\t\tCreating GFAS coordinates shapefile. It may take a few minutes.', level=3) src_area = get_grid_area(self.get_input_path(date=self.date_array[0])) netcdf = Dataset(self.get_input_path(date=self.date_array[0]), mode='r') - - lats = netcdf.variables['latitude'][:] - lons = netcdf.variables['longitude'][:] + try: + lats = netcdf.variables['latitude'][:] + except KeyError: + try: + lats = netcdf.variables['lat'][:] + except KeyError: + raise KeyError("Neither 'lat' or 'latitude' are present on the {0} file".format( + self.get_input_path(date=self.date_array[0]))) + try: + lons = netcdf.variables['longitude'][:] + except KeyError: + try: + lons = netcdf.variables['lon'][:] + except KeyError: + raise KeyError("Neither 'lon' or 'longitude' are present on the {0} file".format( + self.get_input_path(date=self.date_array[0]))) netcdf.close() lons[lons > 180] = lons[lons > 180] - 360.0 @@ -178,7 +191,6 @@ class PointGfasHourlyEmissionInventory(EmissionInventory): #coordinates.to_file(coordinates_shapefile) settings.write_log('\t\t\tDone!', level=3) - grid = self.grid.to_shapefile(full_grid=True).to_crs(coordinates.crs) temp_coords = Dataset(os.path.join(self.grid.temporal_path, 'temporal_coords.nc'), mode='r') -- GitLab