Giter Club home page Giter Club logo

Comments (14)

yantosca avatar yantosca commented on August 23, 2024

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.

yantosca avatar yantosca commented on August 23, 2024

@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.

tclune avatar tclune commented on August 23, 2024

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.

lizziel avatar lizziel commented on August 23, 2024

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.

yantosca avatar yantosca commented on August 23, 2024

@lizziel: That is the output of ncdump -cts, The -t converts the time from a number to a string.

from gchp.

yantosca avatar yantosca commented on August 23, 2024

@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.

bena-nasa avatar bena-nasa commented on August 23, 2024

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.

yantosca avatar yantosca commented on August 23, 2024

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.

yantosca avatar yantosca commented on August 23, 2024

Target grid was c24, with 24 cores.

from gchp.

bena-nasa avatar bena-nasa commented on August 23, 2024

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.

lizziel avatar lizziel commented on August 23, 2024

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.

lizziel avatar lizziel commented on August 23, 2024

@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.

bena-nasa avatar bena-nasa commented on August 23, 2024

@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.

yantosca avatar yantosca commented on August 23, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.