definitions.py 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. """definitions like folders, mappings etc."""
  2. import os
  3. from pathlib import Path
  4. import pandas as pd
  5. def get_root_path() -> Path:
  6. """Get the root_path from an environment variable"""
  7. root_path_env = os.getenv("UNFCCC_GHG_ROOT_PATH", None)
  8. if root_path_env is None:
  9. raise ValueError( # noqa: TRY003
  10. "UNFCCC_GHG_ROOT_PATH environment variable needs to be set"
  11. )
  12. else:
  13. root_path = Path(root_path_env).resolve()
  14. return root_path
  15. root_path = get_root_path()
  16. code_path = root_path / "src" / "unfccc_ghg_data"
  17. log_path = root_path / "log"
  18. extracted_data_path = root_path / "extracted_data"
  19. extracted_data_path_UNFCCC = extracted_data_path / "UNFCCC"
  20. downloaded_data_path = root_path / "downloaded_data"
  21. downloaded_data_path_UNFCCC = downloaded_data_path / "UNFCCC"
  22. legacy_data_path = root_path / "legacy_data"
  23. dataset_path = root_path / "datasets"
  24. dataset_path_UNFCCC = dataset_path / "UNFCCC"
  25. nAI_countries = list(
  26. pd.read_csv(code_path / "unfccc_di_reader" / "DI_NAI_parties.conf")["code"]
  27. )
  28. # AI_countries = list(reader.annex_one_reader.parties["code"])
  29. AI_countries = list(
  30. pd.read_csv(code_path / "unfccc_di_reader" / "DI_AI_parties.conf")["code"]
  31. )
  32. all_countries = nAI_countries + AI_countries
  33. custom_country_mapping = {
  34. "EUA": "European Union",
  35. "EUC": "European Union",
  36. "FRK": "France",
  37. "DKE": "Denmark",
  38. "DNM": "Denmark",
  39. "GBK": "United Kingdom of Great Britain and Northern Ireland",
  40. }
  41. custom_folders = {
  42. "Venezeula_(Bolivarian_Republic_of)": "VEN",
  43. "Venezuela_(Bolivarian_Republic_of)": "VEN",
  44. "Micronesia_(Federated_State_of)": "FSM",
  45. "Micronesia_(Federated_States_of)": "FSM",
  46. "The_Republic_of_North_Macedonia": "MKD",
  47. "Republic_of_Korea": "KOR",
  48. "Bolivia_(Plurinational_State_of)": "BOL",
  49. "Türkiye": "TUR",
  50. "Iran_(Islamic_Republic_of)": "IRN",
  51. "Côte_d`Ivoire": "CIV",
  52. "Côte_d’Ivoire": "CIV", # noqa: RUF001
  53. "Democratic_Republic_of_the_Congo": "COD",
  54. "European_Union": "EUA",
  55. "Taiwan": "TWN",
  56. }
  57. GWP_factors = {
  58. "SARGWP100_to_AR4GWP100": {
  59. "HFCS": 1.1,
  60. "PFCS": 1.1,
  61. "UnspMixOfHFCs": 1.1,
  62. "UnspMixOfPFCs": 1.1,
  63. "FGASES": 1.1,
  64. "other halogenated gases": 1.1,
  65. },
  66. "SARGWP100_to_AR5GWP100": {
  67. "HFCS": 1.2,
  68. "PFCS": 1.2,
  69. "UnspMixOfHFCs": 1.2,
  70. "UnspMixOfPFCs": 1.2,
  71. "FGASES": 1.2,
  72. "other halogenated gases": 1.2,
  73. },
  74. "SARGWP100_to_AR6GWP100": {
  75. "HFCS": 1.4,
  76. "PFCS": 1.3,
  77. "UnspMixOfHFCs": 1.4,
  78. "UnspMixOfPFCs": 1.3,
  79. "FGASES": 1.35,
  80. "other halogenated gases": 1.35,
  81. },
  82. "AR4GWP100_to_SARGWP100": {
  83. "HFCS": 0.91,
  84. "PFCS": 0.91,
  85. "UnspMixOfHFCs": 0.91,
  86. "UnspMixOfPFCs": 0.91,
  87. "FGASES": 0.91,
  88. "other halogenated gases": 0.91,
  89. },
  90. "AR4GWP100_to_AR5GWP100": {
  91. "HFCS": 1.1,
  92. "PFCS": 1.1,
  93. "UnspMixOfHFCs": 1.1,
  94. "UnspMixOfPFCs": 1.1,
  95. "FGASES": 1.1,
  96. "other halogenated gases": 1.1,
  97. },
  98. "AR4GWP100_to_AR6GWP100": {
  99. "HFCS": 1.27,
  100. "PFCS": 1.18,
  101. "UnspMixOfHFCs": 1.27,
  102. "UnspMixOfPFCs": 1.18,
  103. "FGASES": 1.23,
  104. "other halogenated gases": 1.23,
  105. },
  106. "AR5GWP100_to_SARGWP100": {
  107. "HFCS": 0.83,
  108. "PFCS": 0.83,
  109. "UnspMixOfHFCs": 0.83,
  110. "UnspMixOfPFCs": 0.83,
  111. "FGASES": 0.83,
  112. "other halogenated gases": 0.83,
  113. },
  114. "AR5GWP100_to_AR4GWP100": {
  115. "HFCS": 0.91,
  116. "PFCS": 0.91,
  117. "UnspMixOfHFCs": 0.91,
  118. "UnspMixOfPFCs": 0.91,
  119. "FGASES": 0.91,
  120. "other halogenated gases": 0.91,
  121. },
  122. "AR5GWP100_to_AR6GWP100": {
  123. "HFCS": 1.17,
  124. "PFCS": 1.08,
  125. "UnspMixOfHFCs": 1.17,
  126. "UnspMixOfPFCs": 1.08,
  127. "FGASES": 1.125,
  128. "other halogenated gases": 1.125,
  129. },
  130. }
  131. gas_baskets = {
  132. "HFCS (SARGWP100)": [
  133. "HFC23",
  134. "HFC32",
  135. "HFC41",
  136. "HFC125",
  137. "HFC134",
  138. "HFC134a",
  139. "HFC143",
  140. "HFC143a",
  141. "HFC152",
  142. "HFC152a",
  143. "HFC161",
  144. "HFC227ea",
  145. "HFC236cb",
  146. "HFC236ea",
  147. "HFC236fa",
  148. "HFC245ca",
  149. "HFC245fa",
  150. "HFC365mfc",
  151. "HFC404a",
  152. "HFC407c",
  153. "HFC410a",
  154. "HFC4310mee", #'OTHERHFCS (SARGWP100)',
  155. "UnspMixOfHFCs (SARGWP100)",
  156. ],
  157. "HFCS (AR4GWP100)": [
  158. "HFC23",
  159. "HFC32",
  160. "HFC41",
  161. "HFC125",
  162. "HFC134",
  163. "HFC134a",
  164. "HFC143",
  165. "HFC143a",
  166. "HFC152",
  167. "HFC152a",
  168. "HFC161",
  169. "HFC227ea",
  170. "HFC236cb",
  171. "HFC236ea",
  172. "HFC236fa",
  173. "HFC245ca",
  174. "HFC245fa",
  175. "HFC365mfc",
  176. "HFC404a",
  177. "HFC407c",
  178. "HFC410a",
  179. "HFC4310mee",
  180. "UnspMixOfHFCs (AR4GWP100)",
  181. ],
  182. "HFCS (AR5GWP100)": [
  183. "HFC23",
  184. "HFC32",
  185. "HFC41",
  186. "HFC125",
  187. "HFC134",
  188. "HFC134a",
  189. "HFC143",
  190. "HFC143a",
  191. "HFC152",
  192. "HFC152a",
  193. "HFC161",
  194. "HFC227ea",
  195. "HFC236cb",
  196. "HFC236ea",
  197. "HFC236fa",
  198. "HFC245ca",
  199. "HFC245fa",
  200. "HFC365mfc",
  201. "HFC404a",
  202. "HFC407c",
  203. "HFC410a",
  204. "HFC4310mee",
  205. "UnspMixOfHFCs (AR5GWP100)",
  206. ],
  207. "HFCS (AR6GWP100)": [
  208. "HFC23",
  209. "HFC32",
  210. "HFC41",
  211. "HFC125",
  212. "HFC134",
  213. "HFC134a",
  214. "HFC143",
  215. "HFC143a",
  216. "HFC152",
  217. "HFC152a",
  218. "HFC161",
  219. "HFC227ea",
  220. "HFC236cb",
  221. "HFC236ea",
  222. "HFC236fa",
  223. "HFC245ca",
  224. "HFC245fa",
  225. "HFC365mfc",
  226. "HFC404a",
  227. "HFC407c",
  228. "HFC410a",
  229. "HFC4310mee",
  230. "UnspMixOfHFCs (AR6GWP100)",
  231. ],
  232. "PFCS (SARGWP100)": [
  233. "CF4",
  234. "C2F6",
  235. "C3F8",
  236. "C4F10",
  237. "C5F12",
  238. "C6F14",
  239. "C10F18",
  240. "cC3F6",
  241. "cC4F8",
  242. "cC4F8",
  243. "UnspMixOfPFCs (SARGWP100)",
  244. ],
  245. "PFCS (AR4GWP100)": [
  246. "CF4",
  247. "C2F6",
  248. "C3F8",
  249. "C4F10",
  250. "C5F12",
  251. "C6F14",
  252. "C10F18",
  253. "cC3F6",
  254. "cC4F8",
  255. "cC4F8",
  256. "UnspMixOfPFCs (AR4GWP100)",
  257. ],
  258. "PFCS (AR5GWP100)": [
  259. "CF4",
  260. "C2F6",
  261. "C3F8",
  262. "C4F10",
  263. "C5F12",
  264. "C6F14",
  265. "C10F18",
  266. "cC3F6",
  267. "cC4F8",
  268. "cC4F8",
  269. "UnspMixOfPFCs (AR5GWP100)",
  270. ],
  271. "PFCS (AR6GWP100)": [
  272. "CF4",
  273. "C2F6",
  274. "C3F8",
  275. "C4F10",
  276. "C5F12",
  277. "C6F14",
  278. "C10F18",
  279. "cC3F6",
  280. "cC4F8",
  281. "cC4F8",
  282. "UnspMixOfPFCs (AR6GWP100)",
  283. ],
  284. "FGASES (SARGWP100)": ["HFCS (SARGWP100)", "PFCS (SARGWP100)", "SF6", "NF3"],
  285. "FGASES (AR4GWP100)": ["HFCS (AR4GWP100)", "PFCS (AR4GWP100)", "SF6", "NF3"],
  286. "FGASES (AR5GWP100)": ["HFCS (AR5GWP100)", "PFCS (AR5GWP100)", "SF6", "NF3"],
  287. "FGASES (AR6GWP100)": ["HFCS (AR6GWP100)", "PFCS (AR6GWP100)", "SF6", "NF3"],
  288. "KYOTOGHG (SARGWP100)": [
  289. "CO2",
  290. "CH4",
  291. "N2O",
  292. "SF6",
  293. "NF3",
  294. "HFCS (SARGWP100)",
  295. "PFCS (SARGWP100)",
  296. ],
  297. "KYOTOGHG (AR4GWP100)": [
  298. "CO2",
  299. "CH4",
  300. "N2O",
  301. "SF6",
  302. "NF3",
  303. "HFCS (AR4GWP100)",
  304. "PFCS (AR4GWP100)",
  305. ],
  306. "KYOTOGHG (AR5GWP100)": [
  307. "CO2",
  308. "CH4",
  309. "N2O",
  310. "SF6",
  311. "NF3",
  312. "HFCS (AR5GWP100)",
  313. "PFCS (AR5GWP100)",
  314. ],
  315. "KYOTOGHG (AR6GWP100)": [
  316. "CO2",
  317. "CH4",
  318. "N2O",
  319. "SF6",
  320. "NF3",
  321. "HFCS (AR6GWP100)",
  322. "PFCS (AR6GWP100)",
  323. ],
  324. }
  325. compression = dict(zlib=True, complevel=9)