Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add BB4CMIP processing #27

Merged
merged 13 commits into from
Jan 14, 2025
Merged

Add BB4CMIP processing #27

merged 13 commits into from
Jan 14, 2025

Conversation

znichollscr
Copy link
Collaborator

@znichollscr znichollscr commented Jan 8, 2025

@znichollscr
Copy link
Collaborator Author

@chrisroadmap first question for you, where did NMVOC come from? There are no NMVOC_bulk files for BB4CMIP (unlike CEDS) on ESGF as far as I can tell, should we be using higher alkenes or something instead or am I missing something?

@znichollscr
Copy link
Collaborator Author

@jkikstra this should at least run for you if you want to test just making it go

@chrisroadmap
Copy link
Collaborator

chrisroadmap commented Jan 9, 2025

@chrisroadmap first question for you, where did NMVOC come from? There are no NMVOC_bulk files for BB4CMIP (unlike CEDS) on ESGF as far as I can tell, should we be using higher alkenes or something instead or am I missing something?

they exist but hard to find, listed under "Multiple" in ESGF

In my PR, hopefully I remembered to stick a note in the README in the GFED BB4CMIP directory instructions for download

@znichollscr
Copy link
Collaborator Author

Legend thanks mate

@znichollscr znichollscr marked this pull request as ready for review January 9, 2025 10:01
@znichollscr
Copy link
Collaborator Author

This one should be ready to go once you're done with #26 @jkikstra

@znichollscr
Copy link
Collaborator Author

Hmm to get the percentage from boreal forest vs. peat vs. temporal forest we'll need to download those files too and process slightly differently. I don't know how much IAM teams care about the breakdown of biomass burning vs. the totals (we don't care for our emulators, at least not to first order).

@znichollscr znichollscr force-pushed the bb4cmip-global-national branch from 3e503b8 to 88e6a2e Compare January 9, 2025 15:28
@znicholls
Copy link

Given updates in #26, don't bother reviewing this until I've had a chance to rebase.

@znichollscr znichollscr force-pushed the bb4cmip-global-national branch from 88e6a2e to 1c8d1ec Compare January 10, 2025 06:38
@znichollscr
Copy link
Collaborator Author

Good to go here @jkikstra

@jkikstra
Copy link
Collaborator

jkikstra commented Jan 12, 2025

Good to go here @jkikstra

Will try to have a look tomorrow.

@znichollscr znichollscr changed the base branch from ceds-global-national to main January 13, 2025 09:05
@jkikstra
Copy link
Collaborator

Alright, been going through this today.

The good & great:

  1. 0101 - CEDS change: Assert unit wishes: nice - good touch to move that into assert_units_match_wishes() in a common place.
  2. README update: thx
  3. 0103 - The chunked processing: ran beautifully on my laptop!
  4. 0104 - Runs like a charm

The things to be added:

  1. I understand that for the emulators, the sectors are not important. But for harmonization, for gridding & consistency with CMIP6, we want 4 sectors, like:
    sector_mapping = {
    "AGRI": "Agricultural Waste Burning",
    "BORF": "Forest Burning",
    "DEFO": "Forest Burning",
    "PEAT": "Peat Burning",
    "SAVA": "Grassland Burning",
    "TEMF": "Forest Burning",
    }
    .
    If it is very easy to add, please add it. Otherwise, I could imagine that we add this in a follow-up PR?

The questions:

  1. Your code finds minor differences between the original data global value and my processed data. Did you also have these outcomes when processing, or do I need to re-download BB4CMIP from ESGF? Details:
NMVOC

NMVOC chunks: 0%| | 0/28 [00:00<?, ?it/s]
NMVOC chunks: 4%|█████▏ | 1/28 [00:05<02:27, 5.46s/it]
NMVOC chunks: 7%|██████████▍ | 2/28 [00:10<02:15, 5.20s/it]
NMVOC chunks: 11%|███████████████▋ | 3/28 [00:15<02:10, 5.22s/it]
NMVOC chunks: 14%|████████████████████▊ | 4/28 [00:20<02:03, 5.14s/it]
NMVOC chunks: 18%|██████████████████████████ | 5/28 [00:25<01:54, 4.99s/it]
NMVOC chunks: 21%|███████████████████████████████▎ | 6/28 [00:30<01:48, 4.92s/it]
NMVOC chunks: 25%|████████████████████████████████████▌ | 7/28 [00:34<01:41, 4.85s/it]
NMVOC chunks: 29%|█████████████████████████████████████████▋ | 8/28 [00:39<01:35, 4.80s/it]
NMVOC chunks: 32%|██████████████████████████████████████████████▉ | 9/28 [00:44<01:31, 4.83s/it]
NMVOC chunks: 36%|███████████████████████████████████████████████████▊ | 10/28 [00:49<01:27, 4.86s/it]
NMVOC chunks: 39%|████████████████████████████████████████████████████████▉ | 11/28 [00:54<01:23, 4.89s/it]
NMVOC chunks: 43%|██████████████████████████████████████████████████████████████▏ | 12/28 [00:59<01:17, 4.84s/it]
NMVOC chunks: 46%|███████████████████████████████████████████████████████████████████▎ | 13/28 [01:04<01:13, 4.87s/it]
NMVOC chunks: 50%|████████████████████████████████████████████████████████████████████████▌ | 14/28 [01:09<01:09, 5.00s/it]
NMVOC chunks: 54%|█████████████████████████████████████████████████████████████████████████████▋ | 15/28 [01:14<01:04, 4.94s/it]
NMVOC chunks: 57%|██████████████████████████████████████████████████████████████████████████████████▊ | 16/28 [01:18<00:58, 4.84s/it]
NMVOC chunks: 61%|████████████████████████████████████████████████████████████████████████████████████████ | 17/28 [01:23<00:52, 4.79s/it]
NMVOC chunks: 64%|█████████████████████████████████████████████████████████████████████████████████████████████▏ | 18/28 [01:28<00:47, 4.75s/it]
NMVOC chunks: 68%|██████████████████████████████████████████████████████████████████████████████████████████████████▍ | 19/28 [01:32<00:42, 4.73s/it]
NMVOC chunks: 71%|███████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 20/28 [01:37<00:37, 4.71s/it]
NMVOC chunks: 75%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 21/28 [01:42<00:33, 4.75s/it]
NMVOC chunks: 79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 22/28 [01:47<00:28, 4.74s/it]
NMVOC chunks: 82%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 23/28 [01:51<00:23, 4.73s/it]
NMVOC chunks: 86%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 24/28 [01:56<00:19, 4.81s/it]
NMVOC chunks: 89%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 25/28 [02:01<00:14, 4.92s/it]
NMVOC chunks: 93%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 26/28 [02:06<00:09, 4.92s/it]
NMVOC chunks: 96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 27/28 [02:11<00:04, 4.92s/it]
NMVOC chunks: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 28/28 [02:13<00:00, 4.76s/it]
Species: 20%|██████████████████████████████ | 2/10 [06:32<25:58, 194.81s/it]

Difference from what the data provider thinks the global value should be in 1750

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.08
Max relative difference among violations: 0.00149254
ACTUAL: array(53.68)
DESIRED: array(53.6)
Difference from what the data provider thinks the global value should be in 1899

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.09
Max relative difference among violations: 0.00161551
ACTUAL: array(55.8)
DESIRED: array(55.71)
Difference from what the data provider thinks the global value should be in 1900

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.09
Max relative difference among violations: 0.00163964
ACTUAL: array(54.98)
DESIRED: array(54.89)
Difference from what the data provider thinks the global value should be in 2022

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.08
Max relative difference among violations: 0.00164305
ACTUAL: array(48.77)
DESIRED: array(48.69)
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\NMVOC_world_0001.csv
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\NMVOC_national_0001.csv

CO2

CO2 chunks: 0%| | 0/28 [00:00<?, ?it/s]
CO2 chunks: 4%|█████▎ | 1/28 [00:05<02:25, 5.38s/it]
CO2 chunks: 7%|██████████▌ | 2/28 [00:10<02:18, 5.31s/it]
CO2 chunks: 11%|███████████████▊ | 3/28 [00:15<02:08, 5.15s/it]
CO2 chunks: 14%|█████████████████████▏ | 4/28 [00:20<02:01, 5.06s/it]
CO2 chunks: 18%|██████████████████████████▍ | 5/28 [00:25<01:56, 5.08s/it]
CO2 chunks: 21%|███████████████████████████████▋ | 6/28 [00:30<01:50, 5.00s/it]
CO2 chunks: 25%|█████████████████████████████████████ | 7/28 [00:35<01:42, 4.89s/it]
CO2 chunks: 29%|██████████████████████████████████████████▎ | 8/28 [00:39<01:36, 4.81s/it]
CO2 chunks: 32%|███████████████████████████████████████████████▌ | 9/28 [00:44<01:30, 4.76s/it]
CO2 chunks: 36%|████████████████████████████████████████████████████▌ | 10/28 [00:49<01:26, 4.80s/it]
CO2 chunks: 39%|█████████████████████████████████████████████████████████▊ | 11/28 [00:53<01:20, 4.74s/it]
CO2 chunks: 43%|███████████████████████████████████████████████████████████████ | 12/28 [00:59<01:17, 4.84s/it]
CO2 chunks: 46%|████████████████████████████████████████████████████████████████████▎ | 13/28 [01:04<01:14, 4.94s/it]
CO2 chunks: 50%|█████████████████████████████████████████████████████████████████████████▌ | 14/28 [01:09<01:10, 5.03s/it]
CO2 chunks: 54%|██████████████████████████████████████████████████████████████████████████████▊ | 15/28 [01:14<01:04, 4.95s/it]
CO2 chunks: 57%|████████████████████████████████████████████████████████████████████████████████████ | 16/28 [01:19<00:59, 4.93s/it]
CO2 chunks: 61%|█████████████████████████████████████████████████████████████████████████████████████████▎ | 17/28 [01:23<00:53, 4.90s/it]
CO2 chunks: 64%|██████████████████████████████████████████████████████████████████████████████████████████████▌ | 18/28 [01:28<00:48, 4.84s/it]
CO2 chunks: 68%|███████████████████████████████████████████████████████████████████████████████████████████████████▊ | 19/28 [01:33<00:42, 4.78s/it]
CO2 chunks: 71%|█████████████████████████████████████████████████████████████████████████████████████████████████████████ | 20/28 [01:37<00:37, 4.71s/it]
CO2 chunks: 75%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 21/28 [01:42<00:33, 4.73s/it]
CO2 chunks: 79%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 22/28 [01:47<00:28, 4.70s/it]
CO2 chunks: 82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 23/28 [01:51<00:23, 4.72s/it]
CO2 chunks: 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 24/28 [01:56<00:19, 4.76s/it]
CO2 chunks: 89%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 25/28 [02:01<00:14, 4.78s/it]
CO2 chunks: 93%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 26/28 [02:06<00:09, 4.89s/it]
CO2 chunks: 96%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 27/28 [02:11<00:04, 4.85s/it]
CO2 chunks: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 28/28 [02:13<00:00, 4.76s/it]
Species: 40%|████████████████████████████████████████████████████████████ | 4/10 [12:50<19:06, 191.06s/it]

Difference from what the data provider thinks the global value should be in 1750

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 9.42
Max relative difference among violations: 0.00153641
ACTUAL: array(6140.61)
DESIRED: array(6131.19)
Difference from what the data provider thinks the global value should be in 1899

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 9.73
Max relative difference among violations: 0.00153653
ACTUAL: array(6342.18)
DESIRED: array(6332.45)
Difference from what the data provider thinks the global value should be in 1900

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 9.57
Max relative difference among violations: 0.00153671
ACTUAL: array(6237.16)
DESIRED: array(6227.59)
Difference from what the data provider thinks the global value should be in 2022

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 8.45
Max relative difference among violations: 0.00153652
ACTUAL: array(5507.9)
DESIRED: array(5499.45)
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\CO2_world_0001.csv
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\CO2_national_0001.csv

CH4 (very minor)

CH4 chunks: 0%| | 0/28 [00:00<?, ?it/s]
CH4 chunks: 4%|█████▎ | 1/28 [00:09<04:19, 9.62s/it]
CH4 chunks: 7%|██████████▌ | 2/28 [00:19<04:14, 9.80s/it]
CH4 chunks: 11%|███████████████▊ | 3/28 [00:26<03:32, 8.48s/it]
CH4 chunks: 14%|█████████████████████▏ | 4/28 [00:32<02:58, 7.46s/it]
CH4 chunks: 18%|██████████████████████████▍ | 5/28 [00:37<02:32, 6.65s/it]
CH4 chunks: 21%|███████████████████████████████▋ | 6/28 [00:42<02:13, 6.07s/it]
CH4 chunks: 25%|█████████████████████████████████████ | 7/28 [00:47<01:59, 5.70s/it]
CH4 chunks: 29%|██████████████████████████████████████████▎ | 8/28 [00:52<01:49, 5.46s/it]
CH4 chunks: 32%|███████████████████████████████████████████████▌ | 9/28 [00:57<01:40, 5.29s/it]
CH4 chunks: 36%|████████████████████████████████████████████████████▌ | 10/28 [01:02<01:32, 5.16s/it]
CH4 chunks: 39%|█████████████████████████████████████████████████████████▊ | 11/28 [01:06<01:25, 5.05s/it]
CH4 chunks: 43%|███████████████████████████████████████████████████████████████ | 12/28 [01:12<01:20, 5.05s/it]
CH4 chunks: 46%|████████████████████████████████████████████████████████████████████▎ | 13/28 [01:16<01:15, 5.01s/it]
CH4 chunks: 50%|█████████████████████████████████████████████████████████████████████████▌ | 14/28 [01:21<01:09, 4.95s/it]
CH4 chunks: 54%|██████████████████████████████████████████████████████████████████████████████▊ | 15/28 [01:26<01:03, 4.88s/it]
CH4 chunks: 57%|████████████████████████████████████████████████████████████████████████████████████ | 16/28 [01:31<00:58, 4.88s/it]
CH4 chunks: 61%|█████████████████████████████████████████████████████████████████████████████████████████▎ | 17/28 [01:36<00:56, 5.10s/it]
CH4 chunks: 64%|██████████████████████████████████████████████████████████████████████████████████████████████▌ | 18/28 [01:42<00:51, 5.20s/it]
CH4 chunks: 68%|███████████████████████████████████████████████████████████████████████████████████████████████████▊ | 19/28 [01:46<00:45, 5.01s/it]
CH4 chunks: 71%|█████████████████████████████████████████████████████████████████████████████████████████████████████████ | 20/28 [01:51<00:39, 4.89s/it]
CH4 chunks: 75%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 21/28 [01:56<00:34, 4.93s/it]
CH4 chunks: 79%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 22/28 [02:02<00:30, 5.10s/it]
CH4 chunks: 82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 23/28 [02:13<00:35, 7.11s/it]
CH4 chunks: 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 24/28 [02:18<00:25, 6.47s/it]
CH4 chunks: 89%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 25/28 [02:23<00:17, 6.00s/it]
CH4 chunks: 93%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 26/28 [02:29<00:11, 6.00s/it]
CH4 chunks: 96%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 27/28 [02:36<00:06, 6.18s/it]
CH4 chunks: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 28/28 [02:37<00:00, 5.64s/it]
Species: 50%|███████████████████████████████████████████████████████████████████████████ | 5/10 [16:21<16:30, 198.12s/it]

Difference from what the data provider thinks the global value should be in 1750

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.01
Max relative difference among violations: 0.00088339
ACTUAL: array(11.33)
DESIRED: array(11.32)
Difference from what the data provider thinks the global value should be in 1899

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.00170068
ACTUAL: array(11.78)
DESIRED: array(11.76)
Difference from what the data provider thinks the global value should be in 1900

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.01
Max relative difference among violations: 0.00086207
ACTUAL: array(11.61)
DESIRED: array(11.6)
Difference from what the data provider thinks the global value should be in 2022

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.00193611
ACTUAL: array(10.35)
DESIRED: array(10.33)
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\CH4_world_0001.csv
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\CH4_national_0001.csv

OC (very minor)

OC chunks: 0%| | 0/28 [00:00<?, ?it/s]
OC chunks: 4%|█████▎ | 1/28 [00:06<03:00, 6.67s/it]
OC chunks: 7%|██████████▋ | 2/28 [00:13<02:49, 6.51s/it]
OC chunks: 11%|███████████████▉ | 3/28 [00:19<02:41, 6.45s/it]
OC chunks: 14%|█████████████████████▎ | 4/28 [00:29<03:05, 7.73s/it]
OC chunks: 18%|██████████████████████████▌ | 5/28 [00:35<02:47, 7.29s/it]
OC chunks: 21%|███████████████████████████████▉ | 6/28 [00:42<02:40, 7.28s/it]
OC chunks: 25%|█████████████████████████████████████▎ | 7/28 [00:49<02:30, 7.15s/it]
OC chunks: 29%|██████████████████████████████████████████▌ | 8/28 [00:56<02:21, 7.05s/it]
OC chunks: 32%|███████████████████████████████████████████████▉ | 9/28 [01:03<02:12, 6.96s/it]
OC chunks: 36%|████████████████████████████████████████████████████▊ | 10/28 [01:08<01:53, 6.30s/it]
OC chunks: 39%|██████████████████████████████████████████████████████████▏ | 11/28 [01:13<01:42, 6.02s/it]
OC chunks: 43%|███████████████████████████████████████████████████████████████▍ | 12/28 [01:19<01:36, 6.06s/it]
OC chunks: 46%|████████████████████████████████████████████████████████████████████▋ | 13/28 [01:25<01:30, 6.02s/it]
OC chunks: 50%|██████████████████████████████████████████████████████████████████████████ | 14/28 [01:30<01:20, 5.75s/it]
OC chunks: 54%|███████████████████████████████████████████████████████████████████████████████▎ | 15/28 [01:36<01:15, 5.79s/it]
OC chunks: 57%|████████████████████████████████████████████████████████████████████████████████████▌ | 16/28 [01:43<01:11, 5.97s/it]
OC chunks: 61%|█████████████████████████████████████████████████████████████████████████████████████████▊ | 17/28 [01:49<01:07, 6.13s/it]
OC chunks: 64%|███████████████████████████████████████████████████████████████████████████████████████████████▏ | 18/28 [01:54<00:57, 5.74s/it]
OC chunks: 68%|████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 19/28 [01:59<00:48, 5.44s/it]
OC chunks: 71%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 20/28 [02:03<00:41, 5.25s/it]
OC chunks: 75%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 21/28 [02:08<00:35, 5.11s/it]
OC chunks: 79%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 22/28 [02:13<00:30, 5.01s/it]
OC chunks: 82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 23/28 [02:18<00:25, 5.05s/it]
OC chunks: 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 24/28 [02:25<00:22, 5.58s/it]
OC chunks: 89%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 25/28 [02:30<00:16, 5.42s/it]
OC chunks: 93%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 26/28 [02:35<00:10, 5.36s/it]
OC chunks: 96%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 27/28 [02:41<00:05, 5.35s/it]
OC chunks: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 28/28 [02:42<00:00, 5.81s/it]
Species: 70%|█████████████████████████████████████████████████████████████████████████████████████████████████████████ | 7/10 [23:19<10:15, 205.19s/it]

Difference from what the data provider thinks the global value should be in 1750

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.00151286
ACTUAL: array(13.24)
DESIRED: array(13.22)
Difference from what the data provider thinks the global value should be in 1899

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.00144928
ACTUAL: array(13.82)
DESIRED: array(13.8)
Difference from what the data provider thinks the global value should be in 1900

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.00146735
ACTUAL: array(13.65)
DESIRED: array(13.63)
Difference from what the data provider thinks the global value should be in 2022

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.00159872
ACTUAL: array(12.53)
DESIRED: array(12.51)
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\OC_world_0001.csv
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\OC_national_0001.csv

NH3

Difference from what the data provider thinks the global value should be in 1899

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.01
Max relative difference among violations: 0.0028169
ACTUAL: array(3.56)
DESIRED: array(3.55)
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\NH3_world_0001.csv
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\NH3_national_0001.csv

NOx (very minor)

NOx chunks: 0%| | 0/28 [00:00<?, ?it/s]
NOx chunks: 4%|█████▎ | 1/28 [00:16<07:26, 16.55s/it]
NOx chunks: 7%|██████████▌ | 2/28 [00:24<04:56, 11.40s/it]
NOx chunks: 11%|███████████████▊ | 3/28 [00:29<03:30, 8.42s/it]
NOx chunks: 14%|█████████████████████▏ | 4/28 [00:34<02:49, 7.05s/it]
NOx chunks: 18%|██████████████████████████▍ | 5/28 [00:41<02:46, 7.23s/it]
NOx chunks: 21%|███████████████████████████████▋ | 6/28 [00:48<02:32, 6.94s/it]
NOx chunks: 25%|█████████████████████████████████████ | 7/28 [00:53<02:12, 6.29s/it]
NOx chunks: 29%|██████████████████████████████████████████▎ | 8/28 [00:58<01:58, 5.90s/it]
NOx chunks: 32%|███████████████████████████████████████████████▌ | 9/28 [01:08<02:16, 7.18s/it]
NOx chunks: 36%|████████████████████████████████████████████████████▌ | 10/28 [01:15<02:10, 7.22s/it]
NOx chunks: 39%|█████████████████████████████████████████████████████████▊ | 11/28 [01:23<02:09, 7.63s/it]
NOx chunks: 43%|███████████████████████████████████████████████████████████████ | 12/28 [01:30<01:54, 7.15s/it]
NOx chunks: 46%|████████████████████████████████████████████████████████████████████▎ | 13/28 [01:35<01:39, 6.61s/it]
NOx chunks: 50%|█████████████████████████████████████████████████████████████████████████▌ | 14/28 [01:40<01:25, 6.08s/it]
NOx chunks: 54%|██████████████████████████████████████████████████████████████████████████████▊ | 15/28 [01:45<01:14, 5.71s/it]
NOx chunks: 57%|████████████████████████████████████████████████████████████████████████████████████ | 16/28 [01:50<01:06, 5.57s/it]
NOx chunks: 61%|█████████████████████████████████████████████████████████████████████████████████████████▎ | 17/28 [01:55<00:59, 5.44s/it]
NOx chunks: 64%|██████████████████████████████████████████████████████████████████████████████████████████████▌ | 18/28 [02:00<00:52, 5.27s/it]
NOx chunks: 68%|███████████████████████████████████████████████████████████████████████████████████████████████████▊ | 19/28 [02:05<00:46, 5.20s/it]
NOx chunks: 71%|█████████████████████████████████████████████████████████████████████████████████████████████████████████ | 20/28 [02:10<00:41, 5.23s/it]
NOx chunks: 75%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 21/28 [02:16<00:36, 5.26s/it]
NOx chunks: 79%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 22/28 [02:21<00:31, 5.20s/it]
NOx chunks: 82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 23/28 [02:26<00:25, 5.17s/it]
NOx chunks: 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 24/28 [02:31<00:20, 5.09s/it]
NOx chunks: 89%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 25/28 [02:36<00:15, 5.04s/it]
NOx chunks: 93%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 26/28 [02:40<00:09, 4.99s/it]
NOx chunks: 96%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 27/28 [02:45<00:04, 4.99s/it]
NOx chunks: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 28/28 [02:47<00:00, 5.98s/it]
Species: 90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 9/10 [30:34<03:32, 212.09s/it]

Difference from what the data provider thinks the global value should be in 1750

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.0015949
ACTUAL: array(12.56)
DESIRED: array(12.54)
Difference from what the data provider thinks the global value should be in 1899

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.00154919
ACTUAL: array(12.93)
DESIRED: array(12.91)
Difference from what the data provider thinks the global value should be in 1900

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.00157729
ACTUAL: array(12.7)
DESIRED: array(12.68)
Difference from what the data provider thinks the global value should be in 2022

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.02
Max relative difference among violations: 0.00181653
ACTUAL: array(11.03)
DESIRED: array(11.01)
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\NOx_world_0001.csv
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\NOx_national_0001.csv

SO2 (very minor)

SO2 chunks: 0%| | 0/28 [00:00<?, ?it/s]
SO2 chunks: 4%|█████▎ | 1/28 [00:11<05:15, 11.70s/it]
SO2 chunks: 7%|██████████▌ | 2/28 [00:17<03:36, 8.33s/it]
SO2 chunks: 11%|███████████████▊ | 3/28 [00:23<02:54, 6.96s/it]
SO2 chunks: 14%|█████████████████████▏ | 4/28 [00:27<02:26, 6.11s/it]
SO2 chunks: 18%|██████████████████████████▍ | 5/28 [00:32<02:09, 5.64s/it]
SO2 chunks: 21%|███████████████████████████████▋ | 6/28 [00:37<01:56, 5.30s/it]
SO2 chunks: 25%|█████████████████████████████████████ | 7/28 [00:41<01:47, 5.11s/it]
SO2 chunks: 29%|██████████████████████████████████████████▎ | 8/28 [00:46<01:40, 5.00s/it]
SO2 chunks: 32%|███████████████████████████████████████████████▌ | 9/28 [00:51<01:34, 4.99s/it]
SO2 chunks: 36%|████████████████████████████████████████████████████▌ | 10/28 [00:56<01:29, 4.96s/it]
SO2 chunks: 39%|█████████████████████████████████████████████████████████▊ | 11/28 [01:01<01:25, 5.01s/it]
SO2 chunks: 43%|███████████████████████████████████████████████████████████████ | 12/28 [01:07<01:24, 5.26s/it]
SO2 chunks: 46%|████████████████████████████████████████████████████████████████████▎ | 13/28 [01:13<01:21, 5.46s/it]
SO2 chunks: 50%|█████████████████████████████████████████████████████████████████████████▌ | 14/28 [01:19<01:19, 5.71s/it]
SO2 chunks: 54%|██████████████████████████████████████████████████████████████████████████████▊ | 15/28 [01:26<01:18, 6.06s/it]
SO2 chunks: 57%|████████████████████████████████████████████████████████████████████████████████████ | 16/28 [01:35<01:21, 6.80s/it]
SO2 chunks: 61%|█████████████████████████████████████████████████████████████████████████████████████████▎ | 17/28 [01:44<01:22, 7.48s/it]
SO2 chunks: 64%|██████████████████████████████████████████████████████████████████████████████████████████████▌ | 18/28 [01:49<01:08, 6.88s/it]
SO2 chunks: 68%|███████████████████████████████████████████████████████████████████████████████████████████████████▊ | 19/28 [01:55<00:59, 6.63s/it]
SO2 chunks: 71%|█████████████████████████████████████████████████████████████████████████████████████████████████████████ | 20/28 [02:01<00:49, 6.23s/it]
SO2 chunks: 75%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 21/28 [02:06<00:41, 5.86s/it]
SO2 chunks: 79%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 22/28 [02:11<00:33, 5.64s/it]
SO2 chunks: 82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 23/28 [02:16<00:27, 5.42s/it]
SO2 chunks: 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 24/28 [02:20<00:21, 5.26s/it]
SO2 chunks: 89%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 25/28 [02:25<00:15, 5.13s/it]
SO2 chunks: 93%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 26/28 [02:31<00:10, 5.21s/it]
SO2 chunks: 96%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 27/28 [02:37<00:05, 5.40s/it]
SO2 chunks: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 28/28 [02:38<00:00, 5.66s/it]
Species: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [34:09<00:00, 204.95s/it]

Difference from what the data provider thinks the global value should be in 1750

Not equal to tolerance rtol=1e-07, atol=0

Mismatched elements: 1 / 1 (100%)
Max absolute difference among violations: 0.01
Max relative difference among violations: 0.00510204
ACTUAL: array(1.97)
DESIRED: array(1.96)
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\SO2_world_0001.csv
Wrote C:\Users\kikstra\Documents\GitHub\emissions_harmonization_historical\data\national\gfed-bb4cmip\processed\SO2_national_0001.csv

@znichollscr
Copy link
Collaborator Author

  1. If it is very easy to add, please add it. Otherwise, I could imagine that we add this in a follow-up PR?

Bugger. We might want to switch our approach then and process from the raw GFED files rather than the ESGF files as the ESGF files use this approach where they provide percentage files, which you have to download and then multiply with the emissions so you end up with like six times as much data and processing time, which isn't ideal. So I'd suggest a follow up PR.

  1. Your code finds minor differences between the original data global value and my processed data. Did you also have these outcomes when processing, or do I need to re-download BB4CMIP from ESGF?

Ah yes I get the same. I should tweak this, they all look like rounding oddities to me (I didn't read them all, but some and the pattern seemed consistent...)

@znichollscr
Copy link
Collaborator Author

Hmm ok having looked at your nice summary of the differences, they're not as minor as I thought. I'll have a play tomorrow and see if I can make the difference smaller (for at least 30 minutes, we might just move on at that point).

@chrisroadmap
Copy link
Collaborator

Desired is always smaller than actual. To me this suggests that the grid areas are slightly different between datasets. Also is the days per month weighting being done?

@znichollscr
Copy link
Collaborator Author

Desired is always smaller than actual.

Good observation

To me this suggests that the grid areas are slightly different between datasets.

We're using the cell area info provided by the data provider, so I don't think that is it (or the provided cell areas are wrong, always possible).

Also is the days per month weighting being done?

Yes using your code which looks fine to me.

Given all the differences are less than 1%, I would suggest we just move on with life. @chrisroadmap if you want to go digging, go for it but I would say let's merge this PR and pick up any such digging in a follow up PR.

@jkikstra I found 15 minutes so I'd say let's merge this, then use #35 to pick up the sectoral processing from raw GFED data.

@jkikstra
Copy link
Collaborator

OK, agreed. And having two ways both ways to process things allows for checking as well.

Now that this is in, we can do the processing from raw GFED file while still being able to sleep with a good conscience, because we can try to ascertain ourselves that things still add up to the total.

@jkikstra jkikstra merged commit f94b538 into main Jan 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants