Jelajahi Sumber

Merge branch 'crf-reading' of jguetschow/UNFCCC_non-AnnexI_data into master

Merge the CRF branch into master. This includes downloading code but also data. This pull request is also to check if everything works out with the merging when new data stored in the annex is present
Johannes Gütschow 2 tahun lalu
induk
melakukan
2b8225e1cb
100 mengubah file dengan 617 tambahan dan 266 penghapusan
  1. 0 20
      Makefile
  2. 21 0
      code/UNFCCC_CRF_reader/UNFCCC_CRF_reader.py
  3. 181 0
      code/UNFCCC_downloader/download_annexI.py
  4. 0 146
      code/UNFCCC_downloader/download_bur.py
  5. 42 46
      code/UNFCCC_downloader/download_non-annexI.py
  6. 140 0
      code/UNFCCC_downloader/fetch_submissions_annexI.py
  7. 9 51
      code/UNFCCC_downloader/fetch_submissions_bur.py
  8. 1 1
      code/UNFCCC_downloader/fetch_submissions_nc.py
  9. 90 0
      code/UNFCCC_downloader/unfccc_submission_info.py
  10. 43 2
      dodo.py
  11. 1 0
      downloaded_data/UNFCCC/00_new_downloads_CRF2021-2022-04-13.csv
  12. 1 0
      downloaded_data/UNFCCC/00_new_downloads_CRF2022-2022-04-14.csv
  13. 1 0
      downloaded_data/UNFCCC/00_new_downloads_CRF2022-2022-04-20.csv
  14. 1 0
      downloaded_data/UNFCCC/00_new_downloads_NIR2021-2022-04-13.csv
  15. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1990_15042021_173313.xlsx
  16. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1991_15042021_173444.xlsx
  17. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1992_15042021_173611.xlsx
  18. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1993_15042021_173739.xlsx
  19. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1994_15042021_173907.xlsx
  20. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1995_15042021_174038.xlsx
  21. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1996_15042021_174209.xlsx
  22. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1997_15042021_174343.xlsx
  23. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1998_15042021_174517.xlsx
  24. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1999_15042021_174650.xlsx
  25. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2000_15042021_174823.xlsx
  26. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2001_15042021_174956.xlsx
  27. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2002_15042021_175128.xlsx
  28. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2003_15042021_175300.xlsx
  29. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2004_15042021_175433.xlsx
  30. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2005_15042021_175605.xlsx
  31. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2006_15042021_175739.xlsx
  32. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2007_15042021_175913.xlsx
  33. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2008_15042021_180044.xlsx
  34. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2009_15042021_180216.xlsx
  35. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2010_15042021_180349.xlsx
  36. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2011_15042021_180521.xlsx
  37. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2012_15042021_180654.xlsx
  38. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2013_15042021_180826.xlsx
  39. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2014_15042021_180959.xlsx
  40. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2015_15042021_181130.xlsx
  41. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2016_15042021_181304.xlsx
  42. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2017_15042021_181440.xlsx
  43. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2018_15042021_181617.xlsx
  44. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2019_15042021_181752.xlsx
  45. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/asr2021_AUS.pdf
  46. 1 0
      downloaded_data/UNFCCC/Australia/CRF2021/aus-2021-crf-15apr21.zip
  47. 1 0
      downloaded_data/UNFCCC/Australia/NIR2021/AUS_NIR_2019 Volume 1.pdf
  48. 1 0
      downloaded_data/UNFCCC/Australia/NIR2021/AUS_NIR_2019 Volume 2.pdf
  49. 1 0
      downloaded_data/UNFCCC/Australia/NIR2021/AUS_NIR_2019 Volume 3.pdf
  50. 1 0
      downloaded_data/UNFCCC/Australia/NIR2021/aus-2021-nir-15apr21.zip
  51. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1990_16042021_044402.xlsx
  52. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1991_16042021_044455.xlsx
  53. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1992_16042021_044547.xlsx
  54. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1993_16042021_044639.xlsx
  55. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1994_16042021_044731.xlsx
  56. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1995_16042021_044822.xlsx
  57. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1996_16042021_044914.xlsx
  58. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1997_16042021_045006.xlsx
  59. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1998_16042021_045057.xlsx
  60. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1999_16042021_045149.xlsx
  61. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2000_16042021_045241.xlsx
  62. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2001_16042021_045332.xlsx
  63. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2002_16042021_045424.xlsx
  64. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2003_16042021_045517.xlsx
  65. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2004_16042021_045608.xlsx
  66. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2005_16042021_045659.xlsx
  67. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2006_16042021_045751.xlsx
  68. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2007_16042021_045842.xlsx
  69. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2008_16042021_045934.xlsx
  70. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2009_16042021_050025.xlsx
  71. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2010_16042021_050117.xlsx
  72. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2011_16042021_050208.xlsx
  73. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2012_16042021_050301.xlsx
  74. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2013_16042021_050353.xlsx
  75. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2014_16042021_050445.xlsx
  76. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2015_16042021_050537.xlsx
  77. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2016_16042021_050629.xlsx
  78. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2017_16042021_050722.xlsx
  79. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2018_16042021_050814.xlsx
  80. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2019_16042021_050907.xlsx
  81. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/asr2021_AUT.pdf
  82. 1 0
      downloaded_data/UNFCCC/Austria/CRF2021/aut-2021-crf-15apr21.zip
  83. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1990_12042022_233004.xlsx
  84. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1991_12042022_233103.xlsx
  85. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1992_12042022_233204.xlsx
  86. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1993_12042022_233303.xlsx
  87. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1994_12042022_233403.xlsx
  88. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1995_12042022_233502.xlsx
  89. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1996_12042022_233602.xlsx
  90. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1997_12042022_233702.xlsx
  91. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1998_12042022_233802.xlsx
  92. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1999_12042022_233902.xlsx
  93. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2000_12042022_234002.xlsx
  94. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2001_12042022_234101.xlsx
  95. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2002_12042022_234200.xlsx
  96. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2003_12042022_234300.xlsx
  97. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2004_12042022_234400.xlsx
  98. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2005_12042022_234502.xlsx
  99. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2006_12042022_234603.xlsx
  100. 1 0
      downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2007_12042022_234705.xlsx

+ 0 - 20
Makefile

@@ -1,28 +1,8 @@
 .SILENT: help
 help:
 	echo Options:
-	echo make update-bur: Update list of BUR submissions
-	echo make download-bur: Download BUR submissions
-	echo make update-nc: Update list of NC submissions
-	echo make download-nc: Download NC submissions
-	echo make download-ndc: Download NDC submissions
 	echo make venv: create virtual environment
 
-update-bur: venv
-	datalad run -m "Fetch BUR submissions" -o downloaded_data/UNFCCC/submissions-bur.csv ./venv/bin/python code/UNFCCC_downloader/fetch_submissions_bur.py
-
-download-bur: venv
-	datalad run -m "Download BUR submissions" -i downloaded_data/UNFCCC/submissions-bur.csv ./venv/bin/python code/UNFCCC_downloader/download_bur.py
-
-update-nc: venv
-	datalad run -m "Fetch NC submissions" -o downloaded_data/UNFCCC/submissions-nc.csv ./venv/bin/python code/UNFCCC_downloader/fetch_submissions_nc.py
-
-download-nc: venv
-	datalad run -m "Download NC submissions" -i downloaded_data/UNFCCC/submissions-nc.csv ./venv/bin/python code/UNFCCC_downloader/download_nc.py
-
-download-ndc: venv
-	datalad run -m "Download NDC submissions" ./venv/bin/python code/UNFCCC_downloader/download_ndc.py
-
 venv: code/requirements.txt
 	[ -d ./venv ] || python3 -m venv venv
 	./venv/bin/pip install --upgrade pip

+ 21 - 0
code/UNFCCC_CRF_reader/UNFCCC_CRF_reader.py

@@ -0,0 +1,21 @@
+import pandas as pd
+
+
+def read_crf_tables(
+
+)->pd.DataFrame:
+    """
+    Read given tables from file and return result as pandas dataframe
+    """
+
+# functions:
+# * production functions
+# ** read one table for a country
+# ** read alist of tables for one country
+# ** convert to IF and NC and save
+# * testing fucntions
+# ** read one or more table(s) for all countries
+#    (and a if desired only a single year) and write
+#    output files with missing sectors etc
+# **
+

+ 181 - 0
code/UNFCCC_downloader/download_annexI.py

@@ -0,0 +1,181 @@
+import argparse
+import pandas as pd
+import requests
+import shutil
+import time
+import os
+import zipfile
+from datetime import date
+from selenium.webdriver import Firefox
+from selenium.webdriver.firefox.options import Options
+from random import randrange
+from pathlib import Path
+
+root = Path(__file__).parents[2]
+
+###############
+#
+# TODO
+# download directly via selenium see link below
+# https://sqa.stackexchange.com/questions/2197/
+# how-to-download-a-file-using-seleniums-webdriver
+# for automatic downloading see https://stackoverflow.com/questions/70740163/
+# python-selenium-firefox-driver-dismiss-open-save-file-popup
+###############
+
+descr = 'Download and unzip data from UNFCCC National Inventory Submissions. ' \
+        'Based on download.py from national-inventory-submissions ' \
+        '(https://github.com/openclimatedata/national-inventory-submisions)'
+parser = argparse.ArgumentParser(description=descr)
+parser.add_argument(
+    '--category',
+    help='Category to download, CRF, NIR, SEF'
+)
+parser.add_argument(
+    '--year',
+    help='Year to download'
+)
+
+args = parser.parse_args()
+year = args.year
+category = args.category.upper()
+dataset = category + year
+print(f"Downloading data for {dataset}")
+
+# generate the correct url
+url = (
+    "https://unfccc.int/process/transparency-and-reporting/"
+    "reporting-and-review-under-the-convention/"
+    "greenhouse-gas-inventories-annex-i-parties/"
+    "submissions/national-inventory-submissions-{}".format(year)
+)
+
+# TODO: years before 2019
+if int(year) == 2019:
+    url = (
+           "https://unfccc.int/process-and-meetings/transparency-and-reporting/"
+           "reporting-and-review-under-the-convention/"
+           "greenhouse-gas-inventories-annex-i-parties/"
+           "national-inventory-submissions-{}".format(year)
+          )
+
+if int(year) >= 2020:
+    url = (
+            "https://unfccc.int/ghg-inventories-annex-i-parties/{}".format(year)
+            )
+
+download_path = root / "downloaded_data" / "UNFCCC"
+
+error_file_sizes = [212, 210]
+
+# Read submissions list
+submissions = pd.read_csv(download_path / f"submissions-annexI_{year}.csv")
+
+# filter submissions list or category
+items = submissions[submissions.Kind  == category.upper()]
+
+# set options for headless mode
+profile_path = ".firefox"
+options = Options()
+#options.add_argument('-headless')
+
+# create profile for headless mode and automatic downloading
+options.set_preference('profile', profile_path)
+options.set_preference('browser.download.folderList', 2)
+
+# set up selenium driver
+driver = Firefox(options=options)
+# visit the main data page once to create cookies
+driver.get(url)
+
+# wait a bit for the website to load before we get the cokkies
+time.sleep(20)
+
+# get the session id cookie
+cookies_selenium = driver.get_cookies()
+cookies = {}
+for cookie in cookies_selenium:
+    cookies[cookie['name']] = cookie['value']
+
+new_downloaded = []
+
+for idx, submission in items.iterrows():
+    print("=" * 60)
+    title = submission.Title
+    url = submission.URL
+    country = submission.Country
+    country = country.replace(' ', '_')
+    print(f"Downloading {title} from {url}")
+
+    country_folder = download_path / country
+    if not country_folder.exists():
+        country_folder.mkdir()
+    local_filename = \
+        country_folder / dataset / \
+        url.split('/')[-1].replace("%20", "_").replace(" ", "_")
+    if not local_filename.parent.exists():
+        local_filename.parent.mkdir()
+
+    if local_filename.exists():
+        # check file size. if 210 or 212 bytes it's the error page
+        if Path(local_filename).stat().st_size in error_file_sizes:
+            # found the error page. delete file
+            os.remove(local_filename)
+    
+    # now we have removed error pages, so a present file should not be overwritten
+    if not local_filename.exists():
+        i = 0  # reset counter
+        while not local_filename.exists() and i < 10:
+            # for i = 0 and i = 5 try to get a new session ID
+            if i == 1 or i == 5:
+                driver = Firefox(options=options)
+    
+                # visit the main data page once to create cookies
+                driver.get(url)
+                time.sleep(20)
+
+                # get the session id cookie
+                cookies_selenium = driver.get_cookies()
+                cookies = {}
+                for cookie in cookies_selenium:
+                    cookies[cookie['name']] = cookie['value']
+
+            r = requests.get(url, stream=True, cookies=cookies)
+            with open(str(local_filename), 'wb') as f:
+                shutil.copyfileobj(r.raw, f)
+            
+            # check file size. if 210 or 212 bytes it's the error page
+            if Path(local_filename).stat().st_size in error_file_sizes:
+                # found the error page. delete file
+                os.remove(local_filename)
+            
+            # sleep a bit to avoid running into captchas
+            time.sleep(randrange(5, 15))
+            
+        if local_filename.exists():
+            new_downloaded.append(submission)
+            print(f"Download => {local_filename.relative_to(root)}")
+            # unzip data (only for new downloads)
+            if local_filename.suffix == ".zip":
+                try:
+                    zipped_file = zipfile.ZipFile(str(local_filename), 'r')
+                    zipped_file.extractall(str(local_filename.parent))
+                    print(f"Extracted {len(zipped_file.namelist())} files.")
+                    zipped_file.close()
+                # TODO Better error logging/visibilty
+                except zipfile.BadZipFile:
+                    print(f"Error while trying to extract {local_filename.relative_to(root)}")
+                except NotImplementedError:
+                    print("Zip format not supported, please unzip on the command line.")
+            else:
+                print(f"Not attempting to extract {local_filename.relative_to(root)}.")
+        else:
+            print(f"Failed to download {local_filename.relative_to(root)}")
+
+    else:
+        print(f"=> Already downloaded {local_filename.relative_to(root)}")
+
+driver.close()
+
+df = pd.DataFrame(new_downloaded)
+df.to_csv(download_path / f"00_new_downloads_{category}{year}-{date.today()}.csv", index=False)

+ 0 - 146
code/UNFCCC_downloader/download_bur.py

@@ -1,146 +0,0 @@
-import pandas as pd
-import requests
-import shutil
-import time
-import os
-from datetime import date
-from selenium.webdriver import Firefox
-from selenium.webdriver.firefox.options import Options
-from random import randrange
-
-from pathlib import Path
-root = Path(__file__).parents[2]
-"""
-based on download_bur from national-inventory-submissions
-# (https://github.com/openclimatedata/national-inventory-submisions)
-"""
-
-###############
-#
-# TODO
-# download directly via selenium see link below
-# https://sqa.stackexchange.com/questions/2197/
-# how-to-download-a-file-using-seleniums-webdriver
-###############
-
-submissions = pd.read_csv(root / "downloaded_data" / "UNFCCC" /
-                          "submissions-bur.csv")
-
-url = "https://unfccc.int/BURs"
-
-# if we get files of this size they are error pages and we need to
-# try the download again
-error_file_sizes = [212, 210]
-
-# find which BUR submission rounds exist
-present_BURs = submissions.Kind.unique()
-
-# Ensure download path and subfolders exist
-download_path = root / "downloaded_data/UNFCCC"
-if not download_path.exists():
-    download_path.mkdir(parents=True)
-
-# set options for headless mode
-profile_path = ".firefox"
-options = Options()
-#options.add_argument('-headless')
-
-# create profile for headless mode and automatic downloading
-options.set_preference('profile', profile_path)
-options.set_preference('browser.download.folderList', 2)
-
-# set up selenium driver
-driver = Firefox(options=options)
-# visit the main data page once to create cookies
-driver.get(url)
-time.sleep(20)
-
-# get the session id cookie
-cookies_selenium = driver.get_cookies()
-cookies = {}
-for cookie in cookies_selenium:
-    cookies[cookie['name']] = cookie['value']
-
-print(cookies)
-
-new_downloaded = []
-
-for idx, submission in submissions.iterrows():
-    print("=" * 60)
-    bur = submission.Kind
-    title = submission.Title
-    url = submission.URL
-    country = submission.Country
-    country = country.replace(' ', '_')
-    print(title)
-
-    country_folder = download_path / country
-    if not country_folder.exists():
-        country_folder.mkdir()
-    local_filename = country_folder / bur / url.split('/')[-1]
-    local_filename_underscore = \
-        download_path / country / bur / \
-        url.split('/')[-1].replace("%20", "_").replace(" ", "_")
-    if not local_filename.parent.exists():
-        local_filename.parent.mkdir()
-
-    ### remove, not needed as no legacy data present
-    #if local_filename.exists():
-    #    # rename
-    #    local_filename.rename(local_filename_underscore)
-    #    print("Renamed " + bur + "/" + country + "/" + local_filename.name)
-
-    # this should never be needed but in case anything goes wrong and
-    # an error page is present it should be overwritten
-    if local_filename_underscore.exists():
-        # check file size. if 210 or 212 bytes it's the error page
-        if Path(local_filename_underscore).stat().st_size in error_file_sizes:
-            # found the error page. delete file
-            os.remove(local_filename_underscore)
-    
-    # now we have remove error pages, so a present file should not be overwritten
-    if not local_filename_underscore.exists():
-        i = 0  # reset counter
-        while not local_filename_underscore.exists() and i < 10:
-            # for i = 0 and i = 5 try to get a new session ID
-            if i == 1 or i == 5:
-                driver = webdriver.Firefox(options=options,
-                                           firefox_profile=profile)
-    
-                # visit the main data page once to create cookies
-                driver.get(url)
-                time.sleep(20)
-                
-                # get the session id cookie
-                cookies_selenium = driver.get_cookies()
-                cookies = {}
-                for cookie in cookies_selenium:
-                    cookies[cookie['name']] = cookie['value']
-                    
-            r = requests.get(url, stream=True, cookies=cookies)
-            with open(str(local_filename_underscore), 'wb') as f:
-                shutil.copyfileobj(r.raw, f)
-            
-            # check file size. if 210 or 212 bytes it's the error page
-            if Path(local_filename_underscore).stat().st_size in error_file_sizes:
-                # found the error page. delete file
-                os.remove(local_filename_underscore)
-            
-            # sleep a bit to avoid running into captchas
-            time.sleep(randrange(5, 15))
-            
-        if local_filename_underscore.exists():
-            new_downloaded.append(submission)
-            print("Download => downloaded_data/UNFCCC/" + country + "/" + bur +
-                  "/" + local_filename_underscore.name)
-        else:
-            print("Failed downloading downloaded_data/UNFCCC/" + country + "/"
-                  + bur + "/" + local_filename_underscore.name)
-
-    else:
-        print("=> Already downloaded " + local_filename_underscore.name)
-
-driver.close()
-
-df = pd.DataFrame(new_downloaded)
-df.to_csv(download_path / "00_new_downloads_bur-{}.csv".format(date.today()), index=False)

+ 42 - 46
code/UNFCCC_downloader/download_nc.py → code/UNFCCC_downloader/download_non-annexI.py

@@ -1,3 +1,4 @@
+import argparse
 import pandas as pd
 import requests
 import shutil
@@ -7,13 +8,9 @@ from datetime import date
 from selenium.webdriver import Firefox
 from selenium.webdriver.firefox.options import Options
 from random import randrange
-
 from pathlib import Path
+
 root = Path(__file__).parents[2]
-"""
-based on download_bur from national-inventory-submissions
-# (https://github.com/openclimatedata/national-inventory-submisions)
-"""
 
 ###############
 #
@@ -25,19 +22,31 @@ based on download_bur from national-inventory-submissions
 # python-selenium-firefox-driver-dismiss-open-save-file-popup
 ###############
 
-submissions = pd.read_csv(root / "downloaded_data" / "UNFCCC" /
-                          "submissions-nc.csv")
+descr = 'Download data from UNFCCC non-AnnexI Submissions. ' \
+        'Based on download_bur.py from national-inventory-submissions ' \
+        '(https://github.com/openclimatedata/national-inventory-submisions)'
+parser = argparse.ArgumentParser(description=descr)
+parser.add_argument(
+    '--category',
+    help='Category to download: BUR, NC'
+)
 
-url = "https://unfccc.int/non-annex-I-NCs"
+args = parser.parse_args()
+category = args.category.upper()
+print(f"Downloading {category} submissions")
+
+if category == "BUR":
+    url = "https://unfccc.int/BURs"
+else:
+    url = "https://unfccc.int/non-annex-I-NCs"
 
 # if we get files of this size they are error pages and we need to
 # try the download again
 error_file_sizes = [212, 210]
 
-# Ensure download path and subfolders exist
+# Read submissions list
 download_path = root / "downloaded_data" / "UNFCCC"
-if not download_path.exists():
-    download_path.mkdir(parents=True)
+submissions = pd.read_csv(download_path / f"submissions-{category.lower()}.csv")
 
 # set options for headless mode
 profile_path = ".firefox"
@@ -53,6 +62,7 @@ driver = Firefox(options=options)
 # visit the main data page once to create cookies
 driver.get(url)
 
+# wait a bit for the website to load before we get the cookies
 time.sleep(20)
 
 # get the session id cookie
@@ -61,86 +71,72 @@ cookies = {}
 for cookie in cookies_selenium:
     cookies[cookie['name']] = cookie['value']
 
-print(cookies)
-
 new_downloaded = []
 
 for idx, submission in submissions.iterrows():
     print("=" * 60)
-    bur = submission.Kind
+    kind = submission.Kind
     title = submission.Title
     url = submission.URL
     country = submission.Country
     country = country.replace(' ', '_')
-    print(title)
+    print(f"Downloading {title} from {url}")
 
     country_folder = download_path / country
     if not country_folder.exists():
         country_folder.mkdir()
-    local_filename = country_folder / bur / url.split('/')[-1]
-    local_filename_underscore = \
-        download_path / country / bur / \
+    local_filename = \
+        country_folder / kind / \
         url.split('/')[-1].replace("%20", "_").replace(" ", "_")
     if not local_filename.parent.exists():
         local_filename.parent.mkdir()
 
-    ### remove, not needed as no legacy data present
-    #if local_filename.exists():
-    #    # rename
-    #    local_filename.rename(local_filename_underscore)
-    #    print("Renamed " + bur + "/" + country + "/" + local_filename.name)
-
-    # this should never be needed but in case anything goes wrong and
-    # an error page is present it should be overwritten
-    if local_filename_underscore.exists():
+    if local_filename.exists():
         # check file size. if 210 or 212 bytes it's the error page
-        if Path(local_filename_underscore).stat().st_size in error_file_sizes:
+        if Path(local_filename).stat().st_size in error_file_sizes:
             # found the error page. delete file
-            os.remove(local_filename_underscore)
+            os.remove(local_filename)
     
-    # now we have remove error pages, so a present file should not be overwritten
-    if not local_filename_underscore.exists():
+    # now we have removed error pages, so a present file should not be overwritten
+    if not local_filename.exists():
         i = 0  # reset counter
-        while not local_filename_underscore.exists() and i < 10:
+        while not local_filename.exists() and i < 10:
             # for i = 0 and i = 5 try to get a new session ID
             if i == 1 or i == 5:
-                driver = webdriver.Firefox(options=options,
-                                           firefox_profile=profile)
+                driver = Firefox(options=options)
     
                 # visit the main data page once to create cookies
                 driver.get(url)
                 time.sleep(20)
-                
+
                 # get the session id cookie
                 cookies_selenium = driver.get_cookies()
                 cookies = {}
                 for cookie in cookies_selenium:
                     cookies[cookie['name']] = cookie['value']
-                    
+
             r = requests.get(url, stream=True, cookies=cookies)
-            with open(str(local_filename_underscore), 'wb') as f:
+            with open(str(local_filename), 'wb') as f:
                 shutil.copyfileobj(r.raw, f)
             
             # check file size. if 210 or 212 bytes it's the error page
-            if Path(local_filename_underscore).stat().st_size in error_file_sizes:
+            if Path(local_filename).stat().st_size in error_file_sizes:
                 # found the error page. delete file
-                os.remove(local_filename_underscore)
+                os.remove(local_filename)
             
             # sleep a bit to avoid running into captchas
             time.sleep(randrange(5, 15))
             
-        if local_filename_underscore.exists():
+        if local_filename.exists():
             new_downloaded.append(submission)
-            print("Download => downloaded_data/UNFCCC/" + country + "/" + bur +
-                  "/" + local_filename_underscore.name)
+            print(f"Download => {local_filename.relative_to(root)}")
         else:
-            print("Failed downloading downloaded_data/UNFCCC/" + country + "/"
-                  + bur + "/" + local_filename_underscore.name)
+            print(f"Failed to download {local_filename.relative_to(root)}")
 
     else:
-        print("=> Already downloaded " + local_filename_underscore.name)
+        print(f"=> Already downloaded {local_filename.relative_to(root)}")
 
 driver.close()
 
 df = pd.DataFrame(new_downloaded)
-df.to_csv(download_path / "00_new_downloads_nc-{}.csv".format(date.today()), index=False)
+df.to_csv(download_path / f"00_new_downloads_{category}-{date.today()}.csv", index=False)

+ 140 - 0
code/UNFCCC_downloader/fetch_submissions_annexI.py

@@ -0,0 +1,140 @@
+import argparse
+import time
+import pandas as pd
+
+from pathlib import Path
+from bs4 import BeautifulSoup
+from selenium.webdriver import Firefox
+from selenium.webdriver.firefox.options import Options
+from random import randrange
+from unfccc_submission_info import get_unfccc_submission_info
+
+root = Path(__file__).absolute().parents[2]
+
+max_tries = 10
+
+descr = ("Download UNFCCC National Inventory Submissions lists "
+         "and create list of submissions as CSV file. Based on "
+         "process.py from national-inventory-submissions "
+         "(https://github.com/openclimatedata/national-inventory-submisions)")
+parser = argparse.ArgumentParser(description=descr)
+parser.add_argument(
+    '--year',
+    help='Year to download'
+)
+
+args = parser.parse_args()
+year = args.year
+
+print("Fetching submissions for {}".format(year))
+
+url = (
+    "https://unfccc.int/process/transparency-and-reporting/"
+    "reporting-and-review-under-the-convention/"
+    "greenhouse-gas-inventories-annex-i-parties/"
+    "submissions/national-inventory-submissions-{}".format(year)
+)
+
+if int(year) == 2019:
+    url = (
+        "https://unfccc.int/process-and-meetings/transparency-and-reporting/"
+        "reporting-and-review-under-the-convention/"
+        "greenhouse-gas-inventories-annex-i-parties/"
+        "national-inventory-submissions-{}".format(year)
+    )
+
+if int(year) >= 2020:
+    url = (
+        "https://unfccc.int/ghg-inventories-annex-i-parties/{}".format(year)
+    )
+
+print(f"Using {url} to get submissions list")
+
+# set options for headless mode
+profile_path = ".firefox"
+options = Options()
+options.add_argument('-headless')
+
+# create profile for headless mode and automatic downloading
+options.set_preference('profile', profile_path)
+
+# set up selenium driver
+driver = Firefox(options=options)
+driver.get(url)
+
+html = BeautifulSoup(driver.page_source, "html.parser")
+
+table = html.find("table")
+
+# check if table found. if not the get command didn't work, likely because of a captcha on the site
+### TODO replace by error message
+if not table:
+    # try to load html file from disk
+    print('Download failed, trying to load manually downloaded file')
+    file = open("manual_page_downloads/National-Inventory-Submissions-{}.html".format(year))
+    content = file.read()
+    html = BeautifulSoup(content, "html.parser")
+    table = html.find("table")
+    if not table:
+        print(
+            "Manually downloaded file " + "manual_page_downloads/National-Inventory-Submissions-{}.html".format(year) +
+            " not found")
+        exit()
+
+links = table.findAll('a')
+
+targets = []  # sub-pages
+downloads = []
+no_downloads = []
+
+# Check links for Zipfiles or subpages
+for link in links:
+    if "href" not in link.attrs:
+        continue
+    href = link.attrs["href"]
+    if "/documents/" in href:
+        if "title" in link.attrs.keys():
+            title = link.attrs["title"]
+        else:
+            title = link.contents[0]
+        if href.startswith("/documents"):
+            href = "https://unfccc.int" + href
+        # Only add pages in the format https://unfccc.int/documents/65587
+        # to further downloads
+        if str(Path(href).parent).endswith("documents"):
+            targets.append({"title": title, "url": href})
+    elif href.endswith(".zip"):
+        if href.startswith("/files"):
+            href = "https://unfccc.int" + href
+        country = Path(href).name.split("-")[0].upper()
+        title = f"{country} {link.contents[0]}"
+        filename = Path(href).name
+        file_parts = filename.split('-')
+        if len(file_parts) >= 2:
+            kind = file_parts[2].upper()
+        elif filename.startswith('asr'):
+            kind = 'CRF'
+        else:
+            kind = None
+
+        print("\t".join([kind, country, title, href]))
+        downloads.append({"Kind": kind, "Country": country, "Title": title, "URL": href})
+
+# Go through sub-pages.
+for target in targets:
+    time.sleep(randrange(5, 15))
+    url = target["url"]
+
+    submission_info = get_unfccc_submission_info(url, driver, 10)
+
+    if submission_info:
+        downloads = downloads + submission_info
+    else:
+        no_downloads.append({target["title"], url})
+
+if len(no_downloads) > 0:
+    print("No downloads for ", no_downloads)
+
+driver.close()
+df = pd.DataFrame(downloads)
+df.to_csv(root / "downloaded_data" / "UNFCCC" / f"submissions-annexI_{year}.csv", index=False)

+ 9 - 51
code/UNFCCC_downloader/fetch_submissions_bur.py

@@ -8,8 +8,9 @@ from bs4 import BeautifulSoup
 from selenium.webdriver import Firefox
 from selenium.webdriver.firefox.options import Options
 from random import randrange
+from unfccc_submission_info import get_unfccc_submission_info
 
-root = Path(__file__).parents[2]
+root = Path(__file__).absolute().parents[2]
 
 """
 Download UNFCCC Biennial Update Report submissions
@@ -68,57 +69,14 @@ pattern = re.compile(r"BUR ?\d")
 for target in targets:
     time.sleep(randrange(5, 15))
     url = target["url"]
-    #subpage = requests.get(url, timeout=15.5)
-    driver.get(url)
-    html = BeautifulSoup(driver.page_source, "html.parser")
-    title = html.find("h1").contents[0]
-    match = pattern.search(title)
-    if match:
-        kind = match.group(0).replace(" ", "")
-    else:
-        kind = None
-
-
-    h2 = html.find("h2", text="Versions")
-    if h2:
-        div = h2.findNext("div")
-        links = div.findAll("a")
-        try:
-            country = (
-                html.find("h2", text="Countries").findNext("div").findNext("div").text
-            )
-        except AttributeError:
-            country = (
-                html.find("h2", text="Corporate Author")
-                .findNext("div")
-                .findNext("div")
-                .text
-            )
-        doctype = (
-            html.find("h2", text="Document Type").findNext("div").findNext("div").text
-        )
-        for link in links:
-            url = link.attrs["href"]
-            if not kind:
-                match = pattern.search(url.upper())
-                if match:
-                    kind = match.group(0)
-                else:
-                    if ("NIR" in doctype) or ("NIR" in title):
-                        kind = "NIR"
-                    elif "NC" in title:
-                        kind = "NC"
-            downloads.append(
-                {
-                    "Kind": kind,
-                    "Country": country,
-                    "Title": title,
-                    "URL": url,
-                }
-            )
-        print("\t".join([kind, country, title, url]))
+
+    submission_info = get_unfccc_submission_info(url, driver, 10)
+
+    if submission_info:
+        downloads = downloads + submission_info
     else:
-        no_downloads.append((title, url))
+        no_downloads.append({target["title"], url})
+
 
 if len(no_downloads) > 0:
     print("No downloads for ", no_downloads)

+ 1 - 1
code/UNFCCC_downloader/fetch_submissions_nc.py

@@ -9,7 +9,7 @@ from selenium.webdriver import Firefox
 from selenium.webdriver.firefox.options import Options
 from random import randrange
 
-root = Path(__file__).parents[2]
+root = Path(__file__).absolute().parents[2]
 
 """
 Download UNFCCC Biennial Update Report submissions

+ 90 - 0
code/UNFCCC_downloader/unfccc_submission_info.py

@@ -0,0 +1,90 @@
+# helper functions to gather submission info from UNFCCC website
+import time
+import re
+from random import randrange
+from typing import Dict, List
+from selenium.webdriver import Firefox
+from selenium.common.exceptions import WebDriverException
+from bs4 import BeautifulSoup
+
+
+def get_unfccc_submission_info(
+        url: str,
+        driver: Firefox,
+        max_tries: int=10,
+
+) -> List[Dict[str,str]]:
+    info = []
+    pattern = re.compile(r"BUR ?\d")
+    i = 0
+    while i < max_tries:
+        try:
+            driver.get(url)
+            html = BeautifulSoup(driver.page_source, "html.parser")
+            title = html.find("h1").contents[0]
+            break
+        except (AttributeError, WebDriverException):
+            print(f"Error fetching {url}")
+            print("Retrying ...")
+            time.sleep(randrange(5, 15))
+            i += 1
+            continue
+
+    if i == max_tries:
+        print(f"Aborting after {max_tries} tries")
+    else:
+        match = pattern.search(title)
+        if match:
+            kind = match.group(0).replace(" ", "")
+        else:
+            kind = None
+
+        h2 = html.find("h2", text="Versions")
+        if h2:
+            div = h2.findNext("div")
+            links = div.findAll("a")
+            try:
+                country = (
+                    html.find("h2", text="Countries").findNext("div").findNext("div").text
+                )
+            except AttributeError:
+                country = (
+                    html.find("h2", text="Corporate Author")
+                    .findNext("div")
+                    .findNext("div")
+                    .text
+                )
+            doctype = (
+                html.find("h2", text="Document Type").findNext("div").findNext("div").text
+            )
+            for link in links:
+                url = link.attrs["href"]
+                if not kind:
+                    match = pattern.search(url.upper())
+                    if match:
+                        kind = match.group(0)
+                    else:
+                        if ("CRF" in doctype) or ("CRF" in title):
+                            kind = "CRF"
+                        elif ("SEF" in doctype) or ("SEF" in title):
+                            kind = "SEF"
+                        elif ("NIR" in doctype) or ("NIR" in title):
+                            kind = "NIR"
+                        elif "NC" in title:
+                            kind = "NC"
+                        elif "Status report" in title:
+                            kind = "CRF"
+                        else:
+                            kind = "other"
+                info.append({
+                    "Kind": kind,
+                    "Country": country,
+                    "Title": title,
+                    "URL": url,
+                })
+
+            print("\t".join([kind, country, title, url]))
+        else:
+            print(f"No files found for {url}")
+
+    return info

+ 43 - 2
dodo.py

@@ -54,7 +54,7 @@ def task_download_bur():
         # before download
         'actions': ['datalad run -m "Download BUR submissions" '
                     '-i downloaded_data/UNFCCC/submissions-bur.csv '
-                    './venv/bin/python code/UNFCCC_downloader/download_bur.py'],
+                    './venv/bin/python code/UNFCCC_downloader/download_non-annexI.py --category=BUR.py'],
         'verbosity': 2,
         'setup': ['setup_venv'],
     }
@@ -72,6 +72,8 @@ def task_update_nc():
     }
 
 
+
+
 def task_download_nc():
     """ Download NC submissions """
     return {
@@ -80,7 +82,45 @@ def task_download_nc():
         # before download
         'actions': ['datalad run -m "Download NC submissions" '
                     '-i downloaded_data/UNFCCC/submissions-nc.csv '
-                    './venv/bin/python code/UNFCCC_downloader/download_nc.py'],
+                    './venv/bin/python code/UNFCCC_downloader/download_non-annexI.py --category=NC'],
+        'verbosity': 2,
+        'setup': ['setup_venv'],
+    }
+
+# annexI data: one update call for all data types (as they are on one page)
+# but for each year separately.
+# downloading is per year and
+update_aI_config = {
+    "year": get_var('year', None),
+    "category": get_var('category', None),
+}
+
+
+def task_update_annexi():
+    """ Update list of AnnexI submissions """
+    return {
+        'targets': [f"downloaded_data/UNFCCC/submissions-annexI_{update_aI_config['year']}.csv"],
+        'actions': [f"datalad run -m 'Fetch AnnexI submissions for {update_aI_config['year']}' "
+                    "--explicit "
+                    f"-o downloaded_data/UNFCCC/submissions-annexI_{update_aI_config['year']}.csv "
+                    f"./venv/bin/python code/UNFCCC_downloader/fetch_submissions_annexI.py "
+                    f"--year={update_aI_config['year']}"],
+        'verbosity': 2,
+        'setup': ['setup_venv'],
+    }
+
+
+def task_download_annexi():
+    """ Download AnnexI submissions """
+    return {
+        #'file_dep': ['downloaded_data/UNFCCC/submissions-nc.csv'],
+        # deactivate file_dep fow now as it will always run fetch submissions
+        # before download
+        'actions': [f"datalad run -m 'Download AnnexI submissions for "
+                    f"{update_aI_config['category']}{update_aI_config['year']}' "
+                    f"-i downloaded_data/UNFCCC/submissions-annexI_{update_aI_config['year']}.csv "
+                    f"./venv/bin/python code/UNFCCC_downloader/download_annexI.py "
+                    f"--category={update_aI_config['category']} --year={update_aI_config['year']}"],
         'verbosity': 2,
         'setup': ['setup_venv'],
     }
@@ -103,6 +143,7 @@ read_config = {
     "submission": get_var('submission', None),
 }
 
+
 def task_read_unfccc_submission():
     """ Read submission for a country (if code exists) """
     return {

+ 1 - 0
downloaded_data/UNFCCC/00_new_downloads_CRF2021-2022-04-13.csv

@@ -0,0 +1 @@
+../../.git/annex/objects/xV/qv/MD5E-s12200--98698594d6a912768893b1cf5c3adf89.csv/MD5E-s12200--98698594d6a912768893b1cf5c3adf89.csv

+ 1 - 0
downloaded_data/UNFCCC/00_new_downloads_CRF2022-2022-04-14.csv

@@ -0,0 +1 @@
+../../.git/annex/objects/4G/Vv/MD5E-s2182--77023ca844b7321d31e32f5046356d75.csv/MD5E-s2182--77023ca844b7321d31e32f5046356d75.csv

+ 1 - 0
downloaded_data/UNFCCC/00_new_downloads_CRF2022-2022-04-20.csv

@@ -0,0 +1 @@
+../../.git/annex/objects/8k/gF/MD5E-s4633--c314b025bc3b51c727d72962ba382806.csv/MD5E-s4633--c314b025bc3b51c727d72962ba382806.csv

+ 1 - 0
downloaded_data/UNFCCC/00_new_downloads_NIR2021-2022-04-13.csv

@@ -0,0 +1 @@
+../../.git/annex/objects/6w/vZ/MD5E-s6083--5ce485fd5055bd4677d4e341791f0e98.csv/MD5E-s6083--5ce485fd5055bd4677d4e341791f0e98.csv

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1990_15042021_173313.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/kJ/8K/MD5E-s878384--5cf547d47f41e8584d2e0c0fe81713df.xlsx/MD5E-s878384--5cf547d47f41e8584d2e0c0fe81713df.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1991_15042021_173444.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/wJ/8X/MD5E-s676315--6882e0204851d3211bcd667867e21a06.xlsx/MD5E-s676315--6882e0204851d3211bcd667867e21a06.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1992_15042021_173611.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/PW/FG/MD5E-s679239--aefa7c50f0c10bf82b96e2a447432487.xlsx/MD5E-s679239--aefa7c50f0c10bf82b96e2a447432487.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1993_15042021_173739.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/0g/G4/MD5E-s682508--4e6a6abdbfaec5ba3d9d9c5a1aaac899.xlsx/MD5E-s682508--4e6a6abdbfaec5ba3d9d9c5a1aaac899.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1994_15042021_173907.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/f5/zz/MD5E-s686920--c76048f8e4c48ac4cac585acf8f830aa.xlsx/MD5E-s686920--c76048f8e4c48ac4cac585acf8f830aa.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1995_15042021_174038.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/VG/98/MD5E-s695000--74ff452928a8672dc3de99175442102c.xlsx/MD5E-s695000--74ff452928a8672dc3de99175442102c.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1996_15042021_174209.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/xP/80/MD5E-s699213--0afd8f6d7bc5883980076c76e42b093e.xlsx/MD5E-s699213--0afd8f6d7bc5883980076c76e42b093e.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1997_15042021_174343.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/fV/29/MD5E-s702683--30eb71a01ea420d6b15de6fe5054871c.xlsx/MD5E-s702683--30eb71a01ea420d6b15de6fe5054871c.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1998_15042021_174517.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/JJ/4z/MD5E-s705656--b47f5c627ad274d3ae42fc85ba0bb493.xlsx/MD5E-s705656--b47f5c627ad274d3ae42fc85ba0bb493.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_1999_15042021_174650.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/VV/Vm/MD5E-s709366--0a8850ac4829e3329add0e7a6deeebb1.xlsx/MD5E-s709366--0a8850ac4829e3329add0e7a6deeebb1.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2000_15042021_174823.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/mf/wx/MD5E-s713063--4605b277672c93c1f39619add11fe586.xlsx/MD5E-s713063--4605b277672c93c1f39619add11fe586.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2001_15042021_174956.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/zf/X4/MD5E-s715931--f9dc6d3c0208c47d31fc07caba5733a4.xlsx/MD5E-s715931--f9dc6d3c0208c47d31fc07caba5733a4.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2002_15042021_175128.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/jW/Gv/MD5E-s719525--86d6051a8f49e1ecdcaff4e76d34a18a.xlsx/MD5E-s719525--86d6051a8f49e1ecdcaff4e76d34a18a.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2003_15042021_175300.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/Wg/Mq/MD5E-s723858--5b97524e207d1e4935bdc0ef5a1907fc.xlsx/MD5E-s723858--5b97524e207d1e4935bdc0ef5a1907fc.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2004_15042021_175433.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/6X/XV/MD5E-s727110--8f4862fb1002285988d97a91859d80b3.xlsx/MD5E-s727110--8f4862fb1002285988d97a91859d80b3.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2005_15042021_175605.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/JX/G2/MD5E-s730352--a13bd16f2ac61ddd83a65b8404ac2ea3.xlsx/MD5E-s730352--a13bd16f2ac61ddd83a65b8404ac2ea3.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2006_15042021_175739.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/fJ/WK/MD5E-s734593--1d1fdc2b04c0a66006dd63599bfbde96.xlsx/MD5E-s734593--1d1fdc2b04c0a66006dd63599bfbde96.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2007_15042021_175913.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/72/xq/MD5E-s739059--90458e3973988f22bf45c6c9e9f6874f.xlsx/MD5E-s739059--90458e3973988f22bf45c6c9e9f6874f.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2008_15042021_180044.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/0z/x8/MD5E-s741682--d6a2e1bbe05c0afb253aac24927c5239.xlsx/MD5E-s741682--d6a2e1bbe05c0afb253aac24927c5239.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2009_15042021_180216.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/9k/Kw/MD5E-s744729--e5ae9d66adb4ad869cefb36825dc3d2d.xlsx/MD5E-s744729--e5ae9d66adb4ad869cefb36825dc3d2d.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2010_15042021_180349.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/M5/2K/MD5E-s748157--c6f0995e98ee0890d8912f44ecda74af.xlsx/MD5E-s748157--c6f0995e98ee0890d8912f44ecda74af.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2011_15042021_180521.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/kQ/F5/MD5E-s750783--6d5bb57c0bf33b1e80183c46c8e4c85a.xlsx/MD5E-s750783--6d5bb57c0bf33b1e80183c46c8e4c85a.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2012_15042021_180654.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/6V/wX/MD5E-s754160--d9894960483aaa5541a7210929653b8e.xlsx/MD5E-s754160--d9894960483aaa5541a7210929653b8e.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2013_15042021_180826.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/mG/ZV/MD5E-s965757--5d1139a67f6c89d3e878285459ee39bb.xlsx/MD5E-s965757--5d1139a67f6c89d3e878285459ee39bb.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2014_15042021_180959.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/20/JQ/MD5E-s971047--763d0555a1fe46f8042622883641409c.xlsx/MD5E-s971047--763d0555a1fe46f8042622883641409c.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2015_15042021_181130.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/Jf/fG/MD5E-s973957--60cc7f9ff383370af4cdd0ae3e543502.xlsx/MD5E-s973957--60cc7f9ff383370af4cdd0ae3e543502.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2016_15042021_181304.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/WW/P7/MD5E-s978321--f981399736d9590aa7c870eefe81758e.xlsx/MD5E-s978321--f981399736d9590aa7c870eefe81758e.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2017_15042021_181440.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/jQ/9j/MD5E-s984386--106291044a1e430c32b2526f60cf902d.xlsx/MD5E-s984386--106291044a1e430c32b2526f60cf902d.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2018_15042021_181617.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/64/mW/MD5E-s986874--508a96459c7231cd0d45c157ef47b9de.xlsx/MD5E-s986874--508a96459c7231cd0d45c157ef47b9de.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/AUS_2021_2019_15042021_181752.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/GK/m5/MD5E-s981593--cd7fa4c727f5b90924cfa9eaf19d2b61.xlsx/MD5E-s981593--cd7fa4c727f5b90924cfa9eaf19d2b61.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/asr2021_AUS.pdf

@@ -0,0 +1 @@
+../../../../.git/annex/objects/51/g3/MD5E-s381269--673bc3f7e2c112ea7cc2f9081a47cf10.pdf/MD5E-s381269--673bc3f7e2c112ea7cc2f9081a47cf10.pdf

+ 1 - 0
downloaded_data/UNFCCC/Australia/CRF2021/aus-2021-crf-15apr21.zip

@@ -0,0 +1 @@
+../../../../.git/annex/objects/K3/5q/MD5E-s19059622--f306210de4b9a58ac737c0d1ce5d311e.zip/MD5E-s19059622--f306210de4b9a58ac737c0d1ce5d311e.zip

+ 1 - 0
downloaded_data/UNFCCC/Australia/NIR2021/AUS_NIR_2019 Volume 1.pdf

@@ -0,0 +1 @@
+../../../../.git/annex/objects/fV/F1/MD5E-s4830650--f6c88ffa6f549e55b9a088104652a828.pdf/MD5E-s4830650--f6c88ffa6f549e55b9a088104652a828.pdf

+ 1 - 0
downloaded_data/UNFCCC/Australia/NIR2021/AUS_NIR_2019 Volume 2.pdf

@@ -0,0 +1 @@
+../../../../.git/annex/objects/5q/w5/MD5E-s16393553--434651d28192d2538e77f9ea0f73b3f8.pdf/MD5E-s16393553--434651d28192d2538e77f9ea0f73b3f8.pdf

+ 1 - 0
downloaded_data/UNFCCC/Australia/NIR2021/AUS_NIR_2019 Volume 3.pdf

@@ -0,0 +1 @@
+../../../../.git/annex/objects/mK/m9/MD5E-s3154886--bde312f6cef33aae5a93fac7fcdc65de.pdf/MD5E-s3154886--bde312f6cef33aae5a93fac7fcdc65de.pdf

+ 1 - 0
downloaded_data/UNFCCC/Australia/NIR2021/aus-2021-nir-15apr21.zip

@@ -0,0 +1 @@
+../../../../.git/annex/objects/Qg/wF/MD5E-s17715507--deb38725520b168e63962081458ce410.zip/MD5E-s17715507--deb38725520b168e63962081458ce410.zip

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1990_16042021_044402.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/6X/4z/MD5E-s841901--f46d13deaec98ba69a138086a6cc5423.xlsx/MD5E-s841901--f46d13deaec98ba69a138086a6cc5423.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1991_16042021_044455.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/jf/6V/MD5E-s649426--3b0f30d319d33fc7ea8c80477d66d928.xlsx/MD5E-s649426--3b0f30d319d33fc7ea8c80477d66d928.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1992_16042021_044547.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/98/1p/MD5E-s652301--c8b1117994925e47a4bde3d9c5ab91dc.xlsx/MD5E-s652301--c8b1117994925e47a4bde3d9c5ab91dc.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1993_16042021_044639.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/2Z/PX/MD5E-s655531--c3ccadac810e19630043801efc7f6519.xlsx/MD5E-s655531--c3ccadac810e19630043801efc7f6519.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1994_16042021_044731.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/J0/Pz/MD5E-s658937--d6c394b3b9d75ecf31094093c6095288.xlsx/MD5E-s658937--d6c394b3b9d75ecf31094093c6095288.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1995_16042021_044822.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/xv/4z/MD5E-s662223--8e2b969c85bd85f03f860fc9c181b179.xlsx/MD5E-s662223--8e2b969c85bd85f03f860fc9c181b179.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1996_16042021_044914.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/KG/Gx/MD5E-s664881--974e8a7adfa9405f35c86e3a1564ff4f.xlsx/MD5E-s664881--974e8a7adfa9405f35c86e3a1564ff4f.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1997_16042021_045006.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/zk/qz/MD5E-s667559--379f3b818374aff769c4fbcd85d99a48.xlsx/MD5E-s667559--379f3b818374aff769c4fbcd85d99a48.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1998_16042021_045057.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/QQ/zq/MD5E-s670499--90ad2fe2861c82621366f4f7e4fe94f6.xlsx/MD5E-s670499--90ad2fe2861c82621366f4f7e4fe94f6.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_1999_16042021_045149.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/Xm/5J/MD5E-s674850--427c413e096d925109abf019fa232378.xlsx/MD5E-s674850--427c413e096d925109abf019fa232378.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2000_16042021_045241.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/0f/1X/MD5E-s677582--fca72adfb742f76cb8eeffdd79124387.xlsx/MD5E-s677582--fca72adfb742f76cb8eeffdd79124387.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2001_16042021_045332.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/qk/FM/MD5E-s680576--c524c3b07db05fcb98089b9dad37c8ee.xlsx/MD5E-s680576--c524c3b07db05fcb98089b9dad37c8ee.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2002_16042021_045424.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/92/72/MD5E-s683956--715ca51b5b07a893d5b70d68ed9b4cb1.xlsx/MD5E-s683956--715ca51b5b07a893d5b70d68ed9b4cb1.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2003_16042021_045517.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/vw/G5/MD5E-s686868--ce3bb5632bb68bb21604303cd85793e6.xlsx/MD5E-s686868--ce3bb5632bb68bb21604303cd85793e6.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2004_16042021_045608.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/7Q/gv/MD5E-s689979--fef5058d503f1c0311f4666a7986010f.xlsx/MD5E-s689979--fef5058d503f1c0311f4666a7986010f.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2005_16042021_045659.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/5J/3J/MD5E-s695536--f40c6a4788b21f1bf29ce2613d37b9af.xlsx/MD5E-s695536--f40c6a4788b21f1bf29ce2613d37b9af.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2006_16042021_045751.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/5X/Kg/MD5E-s698769--4afdf25ed28e76f601ff8ed25b62c869.xlsx/MD5E-s698769--4afdf25ed28e76f601ff8ed25b62c869.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2007_16042021_045842.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/8j/j5/MD5E-s701650--f3ee5a5fa79dc8622b98e8f3bf912deb.xlsx/MD5E-s701650--f3ee5a5fa79dc8622b98e8f3bf912deb.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2008_16042021_045934.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/1M/9P/MD5E-s704230--80b9c7111cb986505625407e9c69663c.xlsx/MD5E-s704230--80b9c7111cb986505625407e9c69663c.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2009_16042021_050025.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/2p/WW/MD5E-s707373--ce6ea48aa22e66b375157dc691cdc68c.xlsx/MD5E-s707373--ce6ea48aa22e66b375157dc691cdc68c.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2010_16042021_050117.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/Pg/Px/MD5E-s709853--9ffc734260599c562dac4b1c766d15e2.xlsx/MD5E-s709853--9ffc734260599c562dac4b1c766d15e2.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2011_16042021_050208.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/Z3/6Q/MD5E-s712318--a38c41ed4bb1638b982e8380efc34184.xlsx/MD5E-s712318--a38c41ed4bb1638b982e8380efc34184.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2012_16042021_050301.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/3q/K4/MD5E-s715318--1576ed5c3b89e31a98a263b6e8fbefa2.xlsx/MD5E-s715318--1576ed5c3b89e31a98a263b6e8fbefa2.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2013_16042021_050353.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/MG/PP/MD5E-s922764--c4bd36ed8903d2ec8d5bff6db15bd8c1.xlsx/MD5E-s922764--c4bd36ed8903d2ec8d5bff6db15bd8c1.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2014_16042021_050445.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/29/JF/MD5E-s925765--d6effb542c89853ac79d73ca2a79d427.xlsx/MD5E-s925765--d6effb542c89853ac79d73ca2a79d427.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2015_16042021_050537.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/qW/Q6/MD5E-s928654--e64bcd82ccbf2b11777599fa324eab50.xlsx/MD5E-s928654--e64bcd82ccbf2b11777599fa324eab50.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2016_16042021_050629.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/J2/zw/MD5E-s931620--41b48e8e1f6c5e2ee2b55d64e73a68ee.xlsx/MD5E-s931620--41b48e8e1f6c5e2ee2b55d64e73a68ee.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2017_16042021_050722.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/qK/px/MD5E-s935045--aa0200020482ad19cb26f70f406c8454.xlsx/MD5E-s935045--aa0200020482ad19cb26f70f406c8454.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2018_16042021_050814.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/86/7j/MD5E-s938273--9be79c463d5847c1192821328c9e5c20.xlsx/MD5E-s938273--9be79c463d5847c1192821328c9e5c20.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/AUT_2021_2019_16042021_050907.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/9q/wv/MD5E-s937271--3d4f42d83e837ee8d3c3fcd1a5c7c533.xlsx/MD5E-s937271--3d4f42d83e837ee8d3c3fcd1a5c7c533.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/asr2021_AUT.pdf

@@ -0,0 +1 @@
+../../../../.git/annex/objects/m5/Xz/MD5E-s391209--05d3d5e8de1bef5ac1734160ce52db74.pdf/MD5E-s391209--05d3d5e8de1bef5ac1734160ce52db74.pdf

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2021/aut-2021-crf-15apr21.zip

@@ -0,0 +1 @@
+../../../../.git/annex/objects/VF/g0/MD5E-s17955973--0fa94f902e0364c0d81ad15f1631aa18.zip/MD5E-s17955973--0fa94f902e0364c0d81ad15f1631aa18.zip

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1990_12042022_233004.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/ZQ/63/MD5E-s838791--9a5140e058e13e91369e125a2ed16181.xlsx/MD5E-s838791--9a5140e058e13e91369e125a2ed16181.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1991_12042022_233103.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/Vz/Zp/MD5E-s646360--f8f805878a47d943ee36c2cf87f749b1.xlsx/MD5E-s646360--f8f805878a47d943ee36c2cf87f749b1.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1992_12042022_233204.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/Kx/p8/MD5E-s649272--00bac0f649551883783b57ebb6dcc36a.xlsx/MD5E-s649272--00bac0f649551883783b57ebb6dcc36a.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1993_12042022_233303.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/KF/4W/MD5E-s652749--aeed4a847762a3635031701e581c1ee1.xlsx/MD5E-s652749--aeed4a847762a3635031701e581c1ee1.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1994_12042022_233403.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/3F/fX/MD5E-s656114--c397e5e86ccf4ca13937bae042952723.xlsx/MD5E-s656114--c397e5e86ccf4ca13937bae042952723.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1995_12042022_233502.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/J4/Fz/MD5E-s659311--eb2259720d12b24c8e8ad0c4d5fadf17.xlsx/MD5E-s659311--eb2259720d12b24c8e8ad0c4d5fadf17.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1996_12042022_233602.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/79/k8/MD5E-s662127--34e2847d7bfc9e5d3de5f11355de9b64.xlsx/MD5E-s662127--34e2847d7bfc9e5d3de5f11355de9b64.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1997_12042022_233702.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/MQ/VK/MD5E-s664790--de6fdc0219adc721bf4131b790d46ec0.xlsx/MD5E-s664790--de6fdc0219adc721bf4131b790d46ec0.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1998_12042022_233802.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/FX/Jk/MD5E-s667662--64df3b3a8efa94ca13b2aef0493cc0cb.xlsx/MD5E-s667662--64df3b3a8efa94ca13b2aef0493cc0cb.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_1999_12042022_233902.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/8z/K0/MD5E-s671900--69760536d23c0328219f5dead9875ca7.xlsx/MD5E-s671900--69760536d23c0328219f5dead9875ca7.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2000_12042022_234002.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/j8/6k/MD5E-s675276--0e6a72623a48236338ff6477dc14a768.xlsx/MD5E-s675276--0e6a72623a48236338ff6477dc14a768.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2001_12042022_234101.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/6f/PF/MD5E-s678232--59863672fc6f9d6edb04b3456faa916a.xlsx/MD5E-s678232--59863672fc6f9d6edb04b3456faa916a.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2002_12042022_234200.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/wv/1K/MD5E-s681480--04d87ca4e5128acfd239e4331b61bab0.xlsx/MD5E-s681480--04d87ca4e5128acfd239e4331b61bab0.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2003_12042022_234300.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/6g/pJ/MD5E-s684424--6a03df65382721830248ac4612eb2355.xlsx/MD5E-s684424--6a03df65382721830248ac4612eb2355.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2004_12042022_234400.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/02/jw/MD5E-s687938--d14409e0e0b81797bdb0e0673f681d58.xlsx/MD5E-s687938--d14409e0e0b81797bdb0e0673f681d58.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2005_12042022_234502.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/P9/x3/MD5E-s693547--16a80bdda301539e9cb70dab17af9c48.xlsx/MD5E-s693547--16a80bdda301539e9cb70dab17af9c48.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2006_12042022_234603.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/4q/VG/MD5E-s696955--ba04b034ee65b5a4b1046b6d5c7082bc.xlsx/MD5E-s696955--ba04b034ee65b5a4b1046b6d5c7082bc.xlsx

+ 1 - 0
downloaded_data/UNFCCC/Austria/CRF2022/AUT_2022_2007_12042022_234705.xlsx

@@ -0,0 +1 @@
+../../../../.git/annex/objects/0Z/7V/MD5E-s699654--88d3a7b0e7ec4fed1c22a0f6f83e00f3.xlsx/MD5E-s699654--88d3a7b0e7ec4fed1c22a0f6f83e00f3.xlsx

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini