Comments (14)
I think I've narrowed it down to the Scarpelli CH4 emissions. I wonder if the double precision lon/lats are causing the code to take much longer to regrid than usual:
netcdf MEX_Tia2020_coal_2015 {
dimensions:
time = UNLIMITED ; // (1 currently)
lat = 250 ;
lon = 350 ;
variables:
float emis_ch4(time, lat, lon) ;
emis_ch4:long_name = "coal" ;
emis_ch4:units = "molec/cm2/s" ;
emis_ch4:_Storage = "chunked" ;
emis_ch4:_ChunkSizes = 1, 250, 350 ;
emis_ch4:_DeflateLevel = 1 ;
emis_ch4:_Endianness = "little" ;
emis_ch4:_NoFill = "true" ;
double lat(lat) ;
lat:long_name = "latitude" ;
lat:units = "degrees_north" ;
lat:axis = "Y" ;
lat:_Storage = "chunked" ;
lat:_ChunkSizes = 250 ;
lat:_DeflateLevel = 1 ;
lat:_Endianness = "little" ;
lat:_NoFill = "true" ;
double lon(lon) ;
lon:long_name = "longitude" ;
lon:units = "degrees_east" ;
lon:axis = "X" ;
lon:_Storage = "chunked" ;
lon:_ChunkSizes = 350 ;
lon:_DeflateLevel = 1 ;
lon:_Endianness = "little" ;
lon:_NoFill = "true" ;
double time(time) ;
time:axis = "T" ;
time:calendar = "standard" ;
time:long_name = "time" ;
time:units = "days since 2015-01-01 00:00:00" ;
time:_Storage = "chunked" ;
time:_ChunkSizes = 1 ;
time:_DeflateLevel = 1 ;
time:_Endianness = "little" ;
time:_NoFill = "true" ;
// global attributes:
:history = "Tue Nov 29 12:52:21 2022: ncatted -a title,global,o,c,CH4 emissions for Mexico (Scarpelli et al., 2020) tmp1.nc\n",
"Tue Nov 29 12:52:21 2022: ncatted -a conventions,global,o,c,COARDS tmp1.nc\n",
"Tue Nov 29 12:52:21 2022: ncatted -a axis,lon,o,c,X tmp1.nc\n",
"Tue Nov 29 12:52:20 2022: ncatted -a axis,lat,o,c,Y tmp1.nc\n",
"Tue Nov 29 12:52:20 2022: ncks --mk_rec_dmn time tmp0.nc tmp1.nc" ;
:NCO = "netCDF Operators version 5.0.1 (Homepage = http://nco.sf.net, Code = http://github.com/nco/nco)" ;
:conventions = "COARDS" ;
:title = "CH4 emissions for Mexico (Scarpelli et al., 2020)" ;
:_NCProperties = "version=2,netcdf=4.8.1,hdf5=1.10.7" ;
:_SuperblockVersion = 2 ;
:_IsNetcdf4 = 0 ;
:_Format = "netCDF-4 classic model" ;
data:
lat = 10.0500001907349, 10.1499996185303, 10.25, 10.3500003814697,
10.4499998092651, 10.5500001907349, 10.6499996185303, 10.75,
10.8500003814697, 10.9499998092651, 11.0500001907349, 11.1499996185303,
11.25, 11.3500003814697, 11.4499998092651, 11.5500001907349,
11.6499996185303, 11.75, 11.8500003814697, 11.9499998092651,
12.0500001907349, 12.1499996185303, 12.25, 12.3500003814697,
12.4499998092651, 12.5500001907349, 12.6499996185303, 12.75,
12.8500003814697, 12.9499998092651, 13.0500001907349, 13.1499996185303,
13.25, 13.3500003814697, 13.4499998092651, 13.5500001907349,
13.6499996185303, 13.75, 13.8500003814697, 13.9499998092651,
14.0500001907349, 14.1499996185303, 14.25, 14.3500003814697,
14.4499998092651, 14.5500001907349, 14.6499996185303, 14.75,
14.8500003814697, 14.9499998092651, 15.0500001907349, 15.1499996185303,
15.25, 15.3500003814697, 15.4499998092651, 15.5500001907349,
15.6499996185303, 15.75, 15.8500003814697, 15.9499998092651,
16.0499992370605, 16.1499996185303, 16.25, 16.3500003814697,
16.4500007629395, 16.5499992370605, 16.6499996185303, 16.75,
16.8500003814697, 16.9500007629395, 17.0499992370605, 17.1499996185303,
17.25, 17.3500003814697, 17.4500007629395, 17.5499992370605,
17.6499996185303, 17.75, 17.8500003814697, 17.9500007629395,
18.0499992370605, 18.1499996185303, 18.25, 18.3500003814697,
18.4500007629395, 18.5499992370605, 18.6499996185303, 18.75,
18.8500003814697, 18.9500007629395, 19.0499992370605, 19.1499996185303,
19.25, 19.3500003814697, 19.4500007629395, 19.5499992370605,
19.6499996185303, 19.75, 19.8500003814697, 19.9500007629395,
20.0499992370605, 20.1499996185303, 20.25, 20.3500003814697,
20.4500007629395, 20.5499992370605, 20.6499996185303, 20.75,
20.8500003814697, 20.9500007629395, 21.0499992370605, 21.1499996185303,
21.25, 21.3500003814697, 21.4500007629395, 21.5499992370605,
21.6499996185303, 21.75, 21.8500003814697, 21.9500007629395,
22.0499992370605, 22.1499996185303, 22.25, 22.3500003814697,
22.4500007629395, 22.5499992370605, 22.6499996185303, 22.75,
22.8500003814697, 22.9500007629395, 23.0499992370605, 23.1499996185303,
23.25, 23.3500003814697, 23.4500007629395, 23.5499992370605,
23.6499996185303, 23.75, 23.8500003814697, 23.9500007629395,
24.0499992370605, 24.1499996185303, 24.25, 24.3500003814697,
24.4500007629395, 24.5499992370605, 24.6499996185303, 24.75,
24.8500003814697, 24.9500007629395, 25.0499992370605, 25.1499996185303,
25.25, 25.3500003814697, 25.4500007629395, 25.5499992370605,
25.6499996185303, 25.75, 25.8500003814697, 25.9500007629395,
26.0499992370605, 26.1499996185303, 26.25, 26.3500003814697,
26.4500007629395, 26.5499992370605, 26.6499996185303, 26.75,
26.8500003814697, 26.9500007629395, 27.0499992370605, 27.1499996185303,
27.25, 27.3500003814697, 27.4500007629395, 27.5499992370605,
27.6499996185303, 27.75, 27.8500003814697, 27.9500007629395,
28.0499992370605, 28.1499996185303, 28.25, 28.3500003814697,
28.4500007629395, 28.5499992370605, 28.6499996185303, 28.75,
28.8500003814697, 28.9500007629395, 29.0499992370605, 29.1499996185303,
29.25, 29.3500003814697, 29.4500007629395, 29.5499992370605,
29.6499996185303, 29.75, 29.8500003814697, 29.9500007629395,
30.0499992370605, 30.1499996185303, 30.25, 30.3500003814697,
30.4500007629395, 30.5499992370605, 30.6499996185303, 30.75,
30.8500003814697, 30.9500007629395, 31.0499992370605, 31.1499996185303,
31.25, 31.3500003814697, 31.4500007629395, 31.5499992370605,
31.6499996185303, 31.75, 31.8500003814697, 31.9500007629395,
32.0499992370605, 32.1500015258789, 32.25, 32.3499984741211,
32.4500007629395, 32.5499992370605, 32.6500015258789, 32.75,
32.8499984741211, 32.9500007629395, 33.0499992370605, 33.1500015258789,
33.25, 33.3499984741211, 33.4500007629395, 33.5499992370605,
33.6500015258789, 33.75, 33.8499984741211, 33.9500007629395,
34.0499992370605, 34.1500015258789, 34.25, 34.3499984741211,
34.4500007629395, 34.5499992370605, 34.6500015258789, 34.75,
34.8499984741211, 34.9500007629395 ;
lon = -119.949996948242, -119.849998474121, -119.75, -119.650001525879,
-119.550003051758, -119.449996948242, -119.349998474121, -119.25,
-119.150001525879, -119.050003051758, -118.949996948242,
-118.849998474121, -118.75, -118.650001525879, -118.550003051758,
-118.449996948242, -118.349998474121, -118.25, -118.150001525879,
-118.050003051758, -117.949996948242, -117.849998474121, -117.75,
-117.650001525879, -117.550003051758, -117.449996948242,
-117.349998474121, -117.25, -117.150001525879, -117.050003051758,
-116.949996948242, -116.849998474121, -116.75, -116.650001525879,
-116.550003051758, -116.449996948242, -116.349998474121, -116.25,
-116.150001525879, -116.050003051758, -115.949996948242,
-115.849998474121, -115.75, -115.650001525879, -115.550003051758,
-115.449996948242, -115.349998474121, -115.25, -115.150001525879,
-115.050003051758, -114.949996948242, -114.849998474121, -114.75,
-114.650001525879, -114.550003051758, -114.449996948242,
-114.349998474121, -114.25, -114.150001525879, -114.050003051758,
-113.949996948242, -113.849998474121, -113.75, -113.650001525879,
-113.550003051758, -113.449996948242, -113.349998474121, -113.25,
-113.150001525879, -113.050003051758, -112.949996948242,
-112.849998474121, -112.75, -112.650001525879, -112.550003051758,
-112.449996948242, -112.349998474121, -112.25, -112.150001525879,
-112.050003051758, -111.949996948242, -111.849998474121, -111.75,
-111.650001525879, -111.550003051758, -111.449996948242,
-111.349998474121, -111.25, -111.150001525879, -111.050003051758,
-110.949996948242, -110.849998474121, -110.75, -110.650001525879,
-110.550003051758, -110.449996948242, -110.349998474121, -110.25,
-110.150001525879, -110.050003051758, -109.949996948242,
-109.849998474121, -109.75, -109.650001525879, -109.550003051758,
-109.449996948242, -109.349998474121, -109.25, -109.150001525879,
-109.050003051758, -108.949996948242, -108.849998474121, -108.75,
-108.650001525879, -108.550003051758, -108.449996948242,
-108.349998474121, -108.25, -108.150001525879, -108.050003051758,
-107.949996948242, -107.849998474121, -107.75, -107.650001525879,
-107.550003051758, -107.449996948242, -107.349998474121, -107.25,
-107.150001525879, -107.050003051758, -106.949996948242,
-106.849998474121, -106.75, -106.650001525879, -106.550003051758,
-106.449996948242, -106.349998474121, -106.25, -106.150001525879,
-106.050003051758, -105.949996948242, -105.849998474121, -105.75,
-105.650001525879, -105.550003051758, -105.449996948242,
-105.349998474121, -105.25, -105.150001525879, -105.050003051758,
-104.949996948242, -104.849998474121, -104.75, -104.650001525879,
-104.550003051758, -104.449996948242, -104.349998474121, -104.25,
-104.150001525879, -104.050003051758, -103.949996948242,
-103.849998474121, -103.75, -103.650001525879, -103.550003051758,
-103.449996948242, -103.349998474121, -103.25, -103.150001525879,
-103.050003051758, -102.949996948242, -102.849998474121, -102.75,
-102.650001525879, -102.550003051758, -102.449996948242,
-102.349998474121, -102.25, -102.150001525879, -102.050003051758,
-101.949996948242, -101.849998474121, -101.75, -101.650001525879,
-101.550003051758, -101.449996948242, -101.349998474121, -101.25,
-101.150001525879, -101.050003051758, -100.949996948242,
-100.849998474121, -100.75, -100.650001525879, -100.550003051758,
-100.449996948242, -100.349998474121, -100.25, -100.150001525879,
-100.050003051758, -99.9499969482422, -99.8499984741211, -99.75,
-99.6500015258789, -99.5500030517578, -99.4499969482422,
-99.3499984741211, -99.25, -99.1500015258789, -99.0500030517578,
-98.9499969482422, -98.8499984741211, -98.75, -98.6500015258789,
-98.5500030517578, -98.4499969482422, -98.3499984741211, -98.25,
-98.1500015258789, -98.0500030517578, -97.9499969482422,
-97.8499984741211, -97.75, -97.6500015258789, -97.5500030517578,
-97.4499969482422, -97.3499984741211, -97.25, -97.1500015258789,
-97.0500030517578, -96.9499969482422, -96.8499984741211, -96.75,
-96.6500015258789, -96.5500030517578, -96.4499969482422,
-96.3499984741211, -96.25, -96.1500015258789, -96.0500030517578,
-95.9499969482422, -95.8499984741211, -95.75, -95.6500015258789,
-95.5500030517578, -95.4499969482422, -95.3499984741211, -95.25,
-95.1500015258789, -95.0500030517578, -94.9499969482422,
-94.8499984741211, -94.75, -94.6500015258789, -94.5500030517578,
-94.4499969482422, -94.3499984741211, -94.25, -94.1500015258789,
-94.0500030517578, -93.9499969482422, -93.8499984741211, -93.75,
-93.6500015258789, -93.5500030517578, -93.4499969482422,
-93.3499984741211, -93.25, -93.1500015258789, -93.0500030517578,
-92.9499969482422, -92.8499984741211, -92.75, -92.6500015258789,
-92.5500030517578, -92.4499969482422, -92.3499984741211, -92.25,
-92.1500015258789, -92.0500030517578, -91.9499969482422,
-91.8499984741211, -91.75, -91.6500015258789, -91.5500030517578,
-91.4499969482422, -91.3499984741211, -91.25, -91.1500015258789,
-91.0500030517578, -90.9499969482422, -90.8499984741211, -90.75,
-90.6500015258789, -90.5500030517578, -90.4499969482422,
-90.3499984741211, -90.25, -90.1500015258789, -90.0500030517578,
-89.9499969482422, -89.8499984741211, -89.75, -89.6500015258789,
-89.5500030517578, -89.4499969482422, -89.3499984741211, -89.25,
-89.1500015258789, -89.0500030517578, -88.9499969482422,
-88.8499984741211, -88.75, -88.6500015258789, -88.5500030517578,
-88.4499969482422, -88.3499984741211, -88.25, -88.1500015258789,
-88.0500030517578, -87.9499969482422, -87.8499984741211, -87.75,
-87.6500015258789, -87.5500030517578, -87.4499969482422,
-87.3499984741211, -87.25, -87.1500015258789, -87.0500030517578,
-86.9499969482422, -86.8499984741211, -86.75, -86.6500015258789,
-86.5500030517578, -86.4499969482422, -86.3499984741211, -86.25,
-86.1500015258789, -86.0500030517578, -85.9499969482422,
-85.8499984741211, -85.75, -85.6500015258789, -85.5500030517578,
-85.4499969482422, -85.3499984741211, -85.25, -85.1500015258789,
-85.0500030517578 ;
time = "2015-01-01" ;
}
from gchp.
@lizziel @tclune: Are you aware of an issue like this? My guess is that the inconsistent delta-lat and delta-lon (due to roundoff, see above comment) may be causing ESMF to think it's an irregular grid, which may be incurring extra CPU cycles. I am going to fix the files (rounding to 5 decimal places) and see if that makes a difference in the run time.
from gchp.
Adding @bena-nasa It will be useful if he can reproduce the expense in a standalone extdata driver.
I doubt that this is due to whether or not ESMF sees it as a regular grid. MAPL itself has a heuristic to determine the grid and if within tolerances we define our own lat-lon grid and then "ignore" the actual lats and lons in the files. The reason that we do this is that if we have all-but-identical emissions files that just differ in the low end bits, we save a lot of computations on the regrid weights. There is an option to override this an force ExtData to create a grid that uses the values provided.
Then ... so long as lat and lon are specified as separate 1D axes, I'm fairly confident that ESMF uses the same algorithms regardless of spacing.
from gchp.
Could the issue be the time in the file? The unit of time is days since 2015-01-01 00:00:00
but the value is listed as this:
time = "2015-01-01" ;
from gchp.
@lizziel: That is the output of ncdump -cts
, The -t
converts the time from a number to a string.
from gchp.
@tclune @bena-nasa @lizziel: I've looked at the metadata of the offending files and I'm not sure I see anything out of the ordinary:
netcdf can_emis_oil_gas_combustion_2018 {
dimensions:
time = UNLIMITED ; // (1 currently)
lon = 3600 ;
lat = 1800 ;
variables:
double time(time) ;
time:standard_name = "time" ;
time:long_name = "Time" ;
time:units = "hours since 2018-01-01 00:00:00" ;
time:calendar = "standard" ;
time:axis = "T" ;
time:_Storage = "chunked" ;
time:_ChunkSizes = 1 ;
time:_DeflateLevel = 1 ;
time:_Endianness = "little" ;
float lon(lon) ;
lon:standard_name = "longitude" ;
lon:long_name = "Longitude of grid cell center" ;
lon:units = "degrees_east" ;
lon:axis = "X" ;
lon:_Storage = "chunked" ;
lon:_ChunkSizes = 3600 ;
lon:_DeflateLevel = 1 ;
lon:_Endianness = "little" ;
float lat(lat) ;
lat:standard_name = "latitude" ;
lat:long_name = "Latitude of grid cell center" ;
lat:units = "degrees_north" ;
lat:axis = "Y" ;
lat:_Storage = "chunked" ;
lat:_ChunkSizes = 1800 ;
lat:_DeflateLevel = 1 ;
lat:_Endianness = "little" ;
float IPCC_1A1b_oil_refining(time, lat, lon) ;
IPCC_1A1b_oil_refining:long_name = "Methane emissions from IPCC 1A1b (oil refining)" ;
IPCC_1A1b_oil_refining:units = "kg/m2/s" ;
IPCC_1A1b_oil_refining:_FillValue = 1.e+14f ;
IPCC_1A1b_oil_refining:missing_value = 1.e+14f ;
IPCC_1A1b_oil_refining:_Storage = "chunked" ;
IPCC_1A1b_oil_refining:_ChunkSizes = 1, 1800, 3600 ;
IPCC_1A1b_oil_refining:_DeflateLevel = 1 ;
IPCC_1A1b_oil_refining:_Endianness = "little" ;
float IPCC_1A3ei_oil_and_gas_transport(time, lat, lon) ;
IPCC_1A3ei_oil_and_gas_transport:long_name = "Methane emissions from IPCC 1A3ei (oil and gas transport)" ;
IPCC_1A3ei_oil_and_gas_transport:units = "kg/m2/s" ;
IPCC_1A3ei_oil_and_gas_transport:_FillValue = 1.e+14f ;
IPCC_1A3ei_oil_and_gas_transport:missing_value = 1.e+14f ;
IPCC_1A3ei_oil_and_gas_transport:_Storage = "chunked" ;
IPCC_1A3ei_oil_and_gas_transport:_ChunkSizes = 1, 1800, 3600 ;
IPCC_1A3ei_oil_and_gas_transport:_DeflateLevel = 1 ;
IPCC_1A3ei_oil_and_gas_transport:_Endianness = "little" ;
float IPCC_1A1cii_oil_sands(time, lat, lon) ;
IPCC_1A1cii_oil_sands:long_name = "Methane emissions from IPCC 1A1cii (oil sands)" ;
IPCC_1A1cii_oil_sands:units = "kg/m2/s" ;
IPCC_1A1cii_oil_sands:_FillValue = 1.e+14f ;
IPCC_1A1cii_oil_sands:missing_value = 1.e+14f ;
IPCC_1A1cii_oil_sands:_Storage = "chunked" ;
IPCC_1A1cii_oil_sands:_ChunkSizes = 1, 1800, 3600 ;
IPCC_1A1cii_oil_sands:_DeflateLevel = 1 ;
IPCC_1A1cii_oil_sands:_Endianness = "little" ;
float IPCC_1A1cii_gas_production(time, lat, lon) ;
IPCC_1A1cii_gas_production:long_name = "Methane emissions from IPCC 1A1cii (gas production)" ;
IPCC_1A1cii_gas_production:units = "kg/m2/s" ;
IPCC_1A1cii_gas_production:_FillValue = 1.e+14f ;
IPCC_1A1cii_gas_production:missing_value = 1.e+14f ;
IPCC_1A1cii_gas_production:_Storage = "chunked" ;
IPCC_1A1cii_gas_production:_ChunkSizes = 1, 1800, 3600 ;
IPCC_1A1cii_gas_production:_DeflateLevel = 1 ;
IPCC_1A1cii_gas_production:_Endianness = "little" ;
float IPCC_1A1cii_gas_processing(time, lat, lon) ;
IPCC_1A1cii_gas_processing:long_name = "Methane emissions from IPCC 1A1cii (gas processing)" ;
IPCC_1A1cii_gas_processing:units = "kg/m2/s" ;
IPCC_1A1cii_gas_processing:_FillValue = 1.e+14f ;
IPCC_1A1cii_gas_processing:missing_value = 1.e+14f ;
IPCC_1A1cii_gas_processing:_Storage = "chunked" ;
IPCC_1A1cii_gas_processing:_ChunkSizes = 1, 1800, 3600 ;
IPCC_1A1cii_gas_processing:_DeflateLevel = 1 ;
IPCC_1A1cii_gas_processing:_Endianness = "little" ;
float IPCC_1A1cii_oil_production(time, lat, lon) ;
IPCC_1A1cii_oil_production:long_name = "Methane emissions from IPCC 1A1cii (oil production)" ;
IPCC_1A1cii_oil_production:units = "kg/m2/s" ;
IPCC_1A1cii_oil_production:_FillValue = 1.e+14f ;
IPCC_1A1cii_oil_production:missing_value = 1.e+14f ;
IPCC_1A1cii_oil_production:_Storage = "chunked" ;
IPCC_1A1cii_oil_production:_ChunkSizes = 1, 1800, 3600 ;
IPCC_1A1cii_oil_production:_DeflateLevel = 1 ;
IPCC_1A1cii_oil_production:_Endianness = "little" ;
float IPCC_1A1cii_offshore(time, lat, lon) ;
IPCC_1A1cii_offshore:long_name = "Methane emissions from IPCC 1A1cii (offshore)" ;
IPCC_1A1cii_offshore:units = "kg/m2/s" ;
IPCC_1A1cii_offshore:_FillValue = 1.e+14f ;
IPCC_1A1cii_offshore:missing_value = 1.e+14f ;
IPCC_1A1cii_offshore:_Storage = "chunked" ;
IPCC_1A1cii_offshore:_ChunkSizes = 1, 1800, 3600 ;
IPCC_1A1cii_offshore:_DeflateLevel = 1 ;
IPCC_1A1cii_offshore:_Endianness = "little" ;
float oil_gas_combustion_total(time, lat, lon) ;
oil_gas_combustion_total:long_name = "Methane emissions from IPCC oil gas combustion (total)" ;
oil_gas_combustion_total:units = "kg/m2/s" ;
oil_gas_combustion_total:_FillValue = 1.e+14f ;
oil_gas_combustion_total:missing_value = 1.e+14f ;
oil_gas_combustion_total:_Storage = "chunked" ;
oil_gas_combustion_total:_ChunkSizes = 1, 1800, 3600 ;
oil_gas_combustion_total:_DeflateLevel = 1 ;
oil_gas_combustion_total:_Endianness = "little" ;
float area(time, lat, lon) ;
area:long_name = "Area per grid cell" ;
area:units = "square meters" ;
area:_FillValue = 1.e+14f ;
area:missing_value = 1.e+14f ;
area:_Storage = "chunked" ;
area:_ChunkSizes = 1, 1800, 3600 ;
area:_DeflateLevel = 1 ;
area:_Endianness = "little" ;
// global attributes:
:CDI = "Climate Data Interface version 1.9.4 (http://mpimet.mpg.de/cdi)" ;
:history = "Thu Jan 13 14:19:49 2022: cdo divc,365 temp.kgm2day.nc temp.kgm2s.nc\n",
"Thu Jan 13 14:19:47 2022: cdo divc,86400 temp.kgm2yr.nc temp.kgm2day.nc\n",
"Thu Jan 13 14:19:45 2022: cdo divc,1000000 temp.Mgm2yr.nc temp.kgm2yr.nc\n",
"Thu Jan 13 14:19:43 2022: cdo mulc,1000 can_emis_oil_gas_combustion_2018.nc temp.Mgm2yr.nc\n",
"Thu Jan 13 14:19:41 2022: ncecat -u time can_emis_oil_gas_combustion_2018.nc temp.nc\n",
"Thu Jan 13 14:19:39 2022: ncwa -a time can_emis_oil_gas_combustion_2018.nc temp.nc" ;
:Conventions = "CF-1.6" ;
:Description = "This is a gridded inventory of Canadian methane emissions for the oilgascombustion sector in 2018. Emission grids are at 0.1 x 0.1 degree resolution. National and provincial emissions are based on the 2020 National Inventory Report (NIR). Subsector grid titles include the emission category code as defined by the NIR." ;
:time_coverage_start = "2018-01-01" ;
:time_coverage_end = "2018-12-31" ;
:LongName = "Gridded Inventory of Canada\'s Anthropogenic Methane Emissions" ;
:geospatial_bounds = "POLYGON (-90 -180, 90 -180, 90 180, -90 180, -90 -180)" ;
:References = "Methods described in Scarpelli et al. [2021] with sector/subsector emissions provided in Table 1 and 2. Data available at Harvard Dataverse (https://doi.org/10.7910/DVN/CC3KLO)." ;
:NCO = "netCDF Operators version 4.7.4 (http://nco.sf.net)" ;
:nco_openmp_thread_number = 1 ;
:CDO = "Climate Data Operators version 1.9.4 (http://mpimet.mpg.de/cdo)" ;
:_NCProperties = "version=1|netcdflibversion=4.5.0|hdf5libversion=1.10.1" ;
:_SuperblockVersion = 2 ;
:_IsNetcdf4 = 0 ;
:_Format = "netCDF-4 classic model" ;
data:
time = "2018-01-01" ;
lon = -179.95, -179.85, -179.75, -179.65, -179.55, -179.45, -179.35, ... etc ... ;
lat = -89.95, -89.85, -89.75, -89.65, -89.55, -89.45, -89.35, -89.25, ... etc ... ;
}
The horizontal grid is 3600x1800 but we have other files with the same grid and they are read & regridded more quickly. Any ideas as to what else to look into?
from gchp.
I need more information.
What version of MAPL is this?
Is this the current 2G version (that uses the yaml input) or the old version that uses the rc input?
Have you narrowed this down to a particular file, you mentioned multiple files in the thread?
How many processors are you running this on when you see this slowdown?
Is this reproducible? Does it depend on the file system you are on?
What is the grid GHCP is running on (i.e. what is ExtData regridding to)?
Internally the coordinates in the grid are always stored double precision so that is a non-issue. I also doubt it's any sort of issue with the coordinate being evenly or unevenly spaced.
We certainly have inputs that are also 3600x1800, they are even chunked the same way, if I know the target grid and the number of cores I could give you reference numbers that I see on the system here.
Or if you could provide me with the offending file(s) if there's a way to get it onto Discover.
from gchp.
Thanks @bena-nasa. This is our fork of MAPL, and I think it is 2.26 (@lizziel correct me if I'm wrong). This is in the gchp-dev branch.
The file in question is: https://gcgrid.s3.amazonaws.com/HEMCO/CH4/v2022-01/Scarpelli_Canada/can_emis_oil_gas_combustion_2018.nc
from gchp.
Target grid was c24, with 24 cores.
from gchp.
On discover, using 24 processors, latest MAPL version, it took 5 seconds to read that file, regrid to a c24 grid, and write the resulting file back out on the c24 grid using https://github.com/GEOS-ESM/MAPL/wiki/Regrid_Util.x-User-Guide which uses the same IO layer as ExtData to read things and regrid.
Nothing has really changed with IO and regridding in any substantive way. I can try running that exact version of MAPL and running it through ExtDataDriver.x (which actually exercises ExtData) via the old ExtData but I'm very skeptical I would see much difference in the performance since it all using the same IO and regridding framework.
from gchp.
I figured out the slow-down is due to use of very high resolution region masks in the CH4 simulation. They are the following files (see more info in the mask README):
MEX_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2024-01/Mexico_Mask.001x001.nc
MEX_MASK_MIRROR 1 N Y - none none MASK ./HcoDir/MASKS/v2024-01/Mexico_Mask_Mirror.001x001.nc
CAN_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2024-01/Canada_Mask.001x001.nc
CAN_MASK_MIRROR 1 N Y - none none MASK ./HcoDir/MASKS/v2024-01/Canada_Mask_Mirror.001x001.nc
CHINA_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/China_mask.generic.1x1.nc
CONUS_MASK 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/CONUS_Mask.001x001.nc
CONUS_MASK_MIRROR 1 N Y - none none MASK ./HcoDir/MASKS/v2018-09/CONUS_Mask_Mirror.001x001.nc
from gchp.
@bena-nasa, to figure this out I added a logger debug line within prefetch and then tailed the file while it was running. Do you want me to submit that as a MAPL PR?
--- a/gridcomps/ExtData/ExtDataGridCompMod.F90
+++ b/gridcomps/ExtData/ExtDataGridCompMod.F90
@@ -4701,6 +4701,8 @@ CONTAINS
do n = 1, nfiles
io_bundle => IOBundles%at(n)
+ call lgr%debug("ewl: file number %i0.4 : time index = %i0.4 : filename = %a",n, io_bundle%time_index, trim(io_bund>
call io_bundle%cfio%request_data_from_file(io_bundle%file_name,io_bundle%time_index,rc=status)
_VERIFY(status)
enddo
from gchp.
@lizziel @yantosca am I reading this right when I looked at the readme, are you reading these 0.001x0.001 files that are 36000x18000? Those are massive! If that's what you have extdata reading in and trying to regrid or do some other operation that would explain the slowdown, but there's really nothing you can do, that is an insane grid size and just too big for practical use in something like this that's running in a simulation (as opposed to a one-off operation). The latest MAPL did add the ability to use pre-computed route handles, even with that. I don't know that this would be fast enough especially a on a small number of cores, but I could experiment.
CONUS_Mask.001x001.global.nc
CONUS_Mask_Mirror.001x001.global.nc
-- Mask file (and its mirror-image) for the contiguous US for use with
the gridded EPA CH4 emissions from Maasakkers et al.(2016)
**************************************************************************
** These global mask files were created for GCHP, but cause a drastic ***
** slowdown and memory increase in GCC runs, so we will use the ***
** regional 0.01x0.01 masks for now (mps,9/20/18) ***
**************************************************************************
Resolution : GENERIC 0.01 x 0.01 grid (36000 x 18000 boxes)
Timestamp : 2016/01
Compression : Level 1 (e.g. nccopy -d1)
Chunking : nccopy -c lon/36000,lat/18000
from gchp.
Thanks @lizziel @bena-nasa. We are going to look at using masks that are 0.1 x 0.1. We can close out this issue now. Thanks again for your help!
from gchp.
Related Issues (20)
- Error with CMIP6 file HOT 26
- ERROR during 'Initialize' stage of the gridded component 'EXTDATA' HOT 6
- Transport Budget Diagnostics at surface level for GCHP14.3.1 C180 simulation are all zero HOT 7
- error running carbon simulation HOT 16
- Segmentation fault - invalid memory reference in mapl_capmod_MOD_run_model HOT 2
- GCHP Carbon and CO2 simulations HOT 3
- MAPL submodule updates HOT 1
- GCHP Aerosol Mass Cannot Simulate own Emission Inventories HOT 18
- Transporting species initialized in a gridded component outside GeosChem HOT 3
- ERROR: cannot find export DryPLEPut a one-line description here HOT 5
- Use of bashdatacatalog to find invalid files HOT 4
- Requested sample not found in file HOT 5
- Retire simulation type "CO2 w/ CMS-Flux emissions" from GCHP run directory creation
- Carbon simulation - new restart files needed for GCHP HOT 13
- country mask file not working for masking emissions in gchp HOT 11
- Regarding the issue of Track File in HISTORY.rc
- Regarding the issue of Track File in HISTORY.rc HOT 4
- esmf information in the environment file HOT 1
- Turning on UVFlux diagnostic collection results in a floating point error
- GCHP run provides unreasonable CO2 values HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gchp.