diff --git a/hermesv3_gr/modules/emision_inventories/emission_inventory.py b/hermesv3_gr/modules/emision_inventories/emission_inventory.py index 0eb2d625a19a7fd34554fe8323f82a4b95c620de..987ef7a98faf78c3da19194b46240a99174d38c5 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 fe2f35d4cb115516f8122e1355b47b3eb08a23b0..01a4e550546cb271997f160e110c8e1bcc9a2c31 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 124d1c71a6ce85e799607182aacbb17a44050f37..639f09a5ff58c0ce3933242b3c75be33d783adfb 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')