definitions.py 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. """definitions like folders, mappings etc."""
  2. from typing import Any
  3. domains = {
  4. "farm_gate_emissions_crops": {
  5. "url_domain": "https://www.fao.org/faostat/en/#data/GCE",
  6. "url_download": "https://bulks-faostat.fao.org/production/Emissions_crops_E_All_Data.zip",
  7. "url_methodology": "https://files-faostat.fao.org/production/GCE/GCE_e.pdf",
  8. },
  9. "farm_gate_livestock": {
  10. "url_domain": "https://www.fao.org/faostat/en/#data/GLE",
  11. "url_download": "https://bulks-faostat.fao.org/production/Emissions_livestock_E_All_Data.zip",
  12. "url_methodology": "https://files-faostat.fao.org/production/GLE/GLE_e.pdf",
  13. },
  14. "farm_gate_agriculture_energy": {
  15. "url_domain": "https://www.fao.org/faostat/en/#data/GN",
  16. "url_download": "https://bulks-faostat.fao.org/production/Emissions_Agriculture_Energy_E_All_Data.zip",
  17. "url_methodology": "https://files-faostat.fao.org/production/GN/GN_2023Oct_Final.pdf",
  18. },
  19. "land_use_forests": {
  20. "url_domain": "https://www.fao.org/faostat/en/#data/GF",
  21. "url_download": "https://bulks-faostat.fao.org/production/Emissions_Land_Use_Forests_E_All_Data.zip",
  22. "url_methodology": "https://files-faostat.fao.org/production/GF/GF_e.pdf",
  23. },
  24. "land_use_fires": {
  25. "url_domain": "https://www.fao.org/faostat/en/#data/GI",
  26. "url_download": "https://bulks-faostat.fao.org/production/Emissions_Land_Use_Fires_E_All_Data.zip",
  27. "url_methodology": "https://files-faostat.fao.org/production/GI/GI_e.pdf",
  28. },
  29. "land_use_drained_organic_soils": {
  30. "url_domain": "https://www.fao.org/faostat/en/#data/GV",
  31. "url_download": "https://bulks-faostat.fao.org/production/Emissions_Drained_Organic_Soils_E_All_Data.zip",
  32. "url_methodology": "https://files-faostat.fao.org/production/GV/GV_e.pdf",
  33. },
  34. "pre_post_agricultural_production": {
  35. "url_domain": "https://www.fao.org/faostat/en/#data/GPP",
  36. "url_download": "https://bulks-faostat.fao.org/production/Emissions_Pre_Post_Production_E_All_Data.zip",
  37. "url_methodology": "https://files-faostat.fao.org/production/GPP/README_Methodological_Note.pdf",
  38. },
  39. }
  40. areas_to_remove_base = [
  41. "World",
  42. "Africa",
  43. "Eastern Africa",
  44. "Middle Africa",
  45. "Northern Africa",
  46. "Southern Africa",
  47. "Western Africa",
  48. "Americas",
  49. "Northern America",
  50. "Central America",
  51. "Caribbean",
  52. "South America",
  53. "Asia",
  54. "Central Asia",
  55. "Eastern Asia",
  56. "Southern Asia",
  57. "South-eastern Asia",
  58. "Western Asia",
  59. "Europe",
  60. "Eastern Europe",
  61. "Northern Europe",
  62. "Southern Europe",
  63. "Western Europe",
  64. "Oceania",
  65. "Australia and New Zealand",
  66. "Melanesia",
  67. "Micronesia",
  68. "Polynesia",
  69. "Least Developed Countries",
  70. "Land Locked Developing Countries",
  71. "Small Island Developing States",
  72. "Low Income Food Deficit Countries",
  73. "Net Food Importing Developing Countries",
  74. "Annex I countries",
  75. "Non-Annex I countries",
  76. "OECD",
  77. "Europe, Northern America, Australia and New Zealand",
  78. ]
  79. # TODO would be a nice to have a type hint here
  80. read_config_all: Any = {
  81. "farm_gate_agriculture_energy": {
  82. "2024-11-14": {
  83. "filename": "Emissions_Agriculture_Energy_E_All_Data_NOFLAG.csv",
  84. "areas_to_remove": [
  85. *areas_to_remove_base,
  86. ],
  87. "elements_to_remove": ["Energy use in agriculture"],
  88. "entity_mapping": {
  89. "Emissions (CO2)": "CO2",
  90. "Emissions (CH4)": "CH4",
  91. "Emissions (N2O)": "N2O",
  92. },
  93. "columns_to_drop": [
  94. "Element",
  95. "Element Code",
  96. "Item",
  97. "Item Code",
  98. "Area Code (M49)",
  99. "Area",
  100. "Area Code",
  101. ],
  102. }
  103. },
  104. "farm_gate_emissions_crops": {
  105. "2024-11-14": {
  106. "filename": "Emissions_crops_E_All_Data_NOFLAG.csv",
  107. "areas_to_remove": [
  108. *areas_to_remove_base,
  109. "European Union (27)",
  110. ],
  111. "elements_to_remove": [
  112. "Crop residues (N content)",
  113. "Burning crop residues (Biomass burned, dry matter)",
  114. "Area harvested",
  115. "Nitrogen fertilizer content applied that leaches",
  116. "Nitrogen fertilizer content applied that volatilises",
  117. "Synthetic fertilizers (Agricultural use)",
  118. ],
  119. "entity_mapping": {
  120. "Crop residues (Emissions N2O)": "N2O",
  121. "Crop residues (Direct emissions N2O)": "N2O",
  122. "Crop residues (Indirect emissions N2O)": "N2O",
  123. "Burning crop residues (Emissions N2O)": "N2O",
  124. "Burning crop residues (Emissions CH4)": "CH4",
  125. "Rice cultivation (Emissions CH4)": "CH4",
  126. "Crops total (Emissions N2O)": "N2O",
  127. "Crops total (Emissions CH4)": "CH4",
  128. "Synthetic fertilizers (Emissions N2O)": "N2O",
  129. "Synthetic fertilizers (Direct emissions N2O)": "N2O",
  130. "Indirect emissions (N2O that leaches) (Synthetic fertilizers)": "N2O",
  131. (
  132. "Indirect emissions (N2O that volatilises) "
  133. "(Synthetic fertilizers)"
  134. ): "N2O",
  135. },
  136. "columns_to_drop": [
  137. "Element",
  138. "Element Code",
  139. "Item",
  140. "Item Code",
  141. "Area Code (M49)",
  142. "Area",
  143. "Area Code",
  144. "Item Code (CPC)",
  145. "Source Code",
  146. ],
  147. }
  148. },
  149. "farm_gate_livestock": {
  150. "2024-11-14": {
  151. "filename": "Emissions_livestock_E_All_Data_NOFLAG.csv",
  152. "areas_to_remove": [
  153. *areas_to_remove_base,
  154. "Belgium-Luxembourg",
  155. "Serbia and Montenegro",
  156. "European Union (27)",
  157. ],
  158. "elements_to_remove": [
  159. "Stocks", # number of animals
  160. "Manure management (manure treated, N content)",
  161. "Manure left on pasture (N content)",
  162. "Manure left on pasture that leaches (N content)",
  163. "Manure left on pasture that volatilises (N content)",
  164. "Manure applied to soils (N content)",
  165. "Manure applied to soils that leaches (N content)",
  166. "Manure applied to soils that volatilises (N content)",
  167. ],
  168. "entity_mapping": {
  169. "Livestock total (Emissions N2O)": "N2O",
  170. "Livestock total (Emissions CH4)": "CH4",
  171. "Enteric fermentation (Emissions CH4)": "CH4",
  172. "Manure management (Emissions CH4)": "CH4",
  173. "Manure management (Emissions N2O)": "N2O",
  174. "Manure management (Direct emissions N2O)": "N2O",
  175. "Manure management (Indirect emissions N2O)": "N2O",
  176. "Manure left on pasture (Emissions N2O)": "N2O",
  177. "Manure left on pasture (Direct emissions N2O)": "N2O",
  178. "Indirect emissions (N2O that leaches) (Manure on pasture)": "N2O",
  179. "Indirect emissions (N2O that volatilises) (Manure on pasture)": "N2O",
  180. "Manure left on pasture (Indirect emissions N2O)": "N2O",
  181. "Emissions (N2O) (Manure applied)": "N2O",
  182. "Manure applied to soils (Direct emissions N2O)": "N2O",
  183. "Indirect emissions (N2O that leaches) (Manure applied)": "N2O",
  184. "Indirect emissions (N2O that volatilises) (Manure applied)": "N2O",
  185. "Manure applied to soils (Indirect emissions N2O)": "N2O",
  186. },
  187. "columns_to_drop": [
  188. "Element",
  189. "Element Code",
  190. "Item",
  191. "Item Code",
  192. "Area Code (M49)",
  193. "Area",
  194. "Area Code",
  195. "Item Code (CPC)",
  196. "Source Code",
  197. ],
  198. }
  199. },
  200. "land_use_drained_organic_soils": {
  201. "2023-11-09": {
  202. "filename": "Emissions_Drained_Organic_Soils_E_All_Data_NOFLAG.csv",
  203. "areas_to_remove": [
  204. *areas_to_remove_base,
  205. "European Union (27)",
  206. ],
  207. "elements_to_remove": [
  208. "Area",
  209. "Net stock change (C)",
  210. ],
  211. "entity_mapping": {
  212. "Emissions (N2O)": "N2O",
  213. "Emissions (CO2)": "CO2",
  214. },
  215. "columns_to_drop": [
  216. "Element",
  217. "Element Code",
  218. "Item",
  219. "Item Code",
  220. "Area Code (M49)",
  221. "Area",
  222. "Area Code",
  223. "Source Code",
  224. ],
  225. },
  226. "2024-11-14": {
  227. "filename": "Emissions_Drained_Organic_Soils_E_All_Data_NOFLAG.csv",
  228. "areas_to_remove": [
  229. *areas_to_remove_base,
  230. # "Belgium-Luxembourg",
  231. # "Serbia and Montenegro",
  232. "European Union (27)",
  233. ],
  234. "elements_to_remove": [
  235. "Area",
  236. "Net stock change (C)",
  237. ],
  238. "entity_mapping": {
  239. "Emissions (N2O)": "N2O",
  240. "Emissions (CO2)": "CO2",
  241. },
  242. "columns_to_drop": [
  243. "Element",
  244. "Element Code",
  245. "Item",
  246. "Item Code",
  247. "Area Code (M49)",
  248. "Area",
  249. "Area Code",
  250. "Source Code",
  251. ],
  252. },
  253. },
  254. "land_use_fires": {
  255. "2023-11-09": {
  256. "filename": "Emissions_Land_Use_Fires_E_All_Data_NOFLAG.csv",
  257. "areas_to_remove": [
  258. *areas_to_remove_base,
  259. "European Union (27)",
  260. ],
  261. "elements_to_remove": ["Biomass burned (dry matter)", "Burned Area"],
  262. "entity_mapping": {
  263. "Emissions (CH4)": "CH4",
  264. "Emissions (N2O)": "N2O",
  265. "Emissions (CO2)": "CO2",
  266. },
  267. "columns_to_drop": [
  268. "Element",
  269. "Element Code",
  270. "Item",
  271. "Item Code",
  272. "Area Code (M49)",
  273. "Area",
  274. "Area Code",
  275. "Source Code",
  276. ],
  277. },
  278. "2024-11-14": {
  279. "filename": "Emissions_Land_Use_Fires_E_All_Data_NOFLAG.csv",
  280. "areas_to_remove": [
  281. *areas_to_remove_base,
  282. "European Union (27)",
  283. ],
  284. "elements_to_remove": [
  285. "Burning crop residues (Biomass burned, dry matter)",
  286. "Burned Area",
  287. ],
  288. "entity_mapping": {
  289. "Emissions (CH4)": "CH4",
  290. "Emissions (N2O)": "N2O",
  291. "Emissions (CO2)": "CO2",
  292. },
  293. "columns_to_drop": [
  294. "Element",
  295. "Element Code",
  296. "Item",
  297. "Item Code",
  298. "Area Code (M49)",
  299. "Area",
  300. "Area Code",
  301. "Source Code",
  302. ],
  303. },
  304. },
  305. "land_use_forests": {
  306. "2024-11-14": {
  307. "filename": "Emissions_Land_Use_Forests_E_All_Data_NOFLAG.csv",
  308. "areas_to_remove": [
  309. *areas_to_remove_base,
  310. "European Union (27)",
  311. ],
  312. "elements_to_remove": [
  313. "Area",
  314. ],
  315. "entity_mapping": {"Net emissions/removals (CO2) (Forest land)": "CO2"},
  316. "columns_to_drop": [
  317. "Element",
  318. "Element Code",
  319. "Item",
  320. "Item Code",
  321. "Area Code (M49)",
  322. "Area",
  323. "Area Code",
  324. "Source Code",
  325. ],
  326. }
  327. },
  328. "pre_post_agricultural_production": {
  329. "2023-11-09": {
  330. "filename": "Emissions_Pre_Post_Production_E_All_Data_NOFLAG.csv",
  331. "areas_to_remove": [
  332. *areas_to_remove_base,
  333. "European Union (27)",
  334. ],
  335. "elements_to_remove": [
  336. "Energy Use (Total)",
  337. "Energy Use (Electricity)",
  338. "Energy Use (Natural Gas, including LNG)",
  339. "Energy Use (Heat)",
  340. "Energy Use (Coal)",
  341. ],
  342. "entity_mapping": {
  343. "Emissions (CO2)": "CO2",
  344. "Emissions (CO2eq) (AR5)": "KYOTOGHG (AR5GWP100)",
  345. "Emissions (CH4)": "CH4",
  346. "Emissions (N2O)": "N2O",
  347. "Emissions (CO2eq) from F-gases (AR5)": "FGASES (AR5GWP100)",
  348. },
  349. "columns_to_drop": [
  350. "Element",
  351. "Element Code",
  352. "Item",
  353. "Item Code",
  354. "Area Code (M49)",
  355. "Area",
  356. "Area Code",
  357. ],
  358. },
  359. "2024-11-14": {
  360. "filename": "Emissions_Pre_Post_Production_E_All_Data_NOFLAG.csv",
  361. "areas_to_remove": [
  362. *areas_to_remove_base,
  363. "European Union (27)",
  364. ],
  365. "elements_to_remove": [
  366. "Energy Use (Total)",
  367. "Energy Use (Electricity)",
  368. "Energy Use (Natural Gas, including LNG)",
  369. "Energy Use (Heat)",
  370. "Energy Use (Coal)",
  371. ],
  372. "entity_mapping": {
  373. "Emissions (CO2)": "CO2",
  374. "Emissions (CO2eq) (AR5)": "KYOTOGHG (AR5GWP100)",
  375. "Emissions (CH4)": "CH4",
  376. "Emissions (N2O)": "N2O",
  377. "Emissions (CO2eq) from F-gases (AR5)": "FGASES (AR5GWP100)",
  378. },
  379. "columns_to_drop": [
  380. "Element",
  381. "Element Code",
  382. "Item",
  383. "Item Code",
  384. "Area Code (M49)",
  385. "Area",
  386. "Area Code",
  387. ],
  388. },
  389. },
  390. "replace_units": {
  391. "KYOTOGHG (AR5GWP100) * kt/ year": "CO2 * kt / year",
  392. "FGASES (AR5GWP100) * kt/ year": "CO2 * kt/ year",
  393. },
  394. }
  395. config_to_if = {
  396. "coords_cols": {
  397. "area": "country (ISO3)",
  398. "unit": "Unit",
  399. "entity": "entity",
  400. "source": "Source",
  401. "category": "category",
  402. },
  403. "coords_terminologies": {"area": "ISO3", "category": "FAOSTAT", "scenario": "FAO"},
  404. "coords_value_mapping": {},
  405. "filter_keep": {},
  406. "filter_remove": {},
  407. "meta_data": {
  408. "references": "https://www.fao.org/faostat",
  409. "rights": "Creative Commons Attribution-4.0 International licence (CC BY 4.0)",
  410. "contact": "daniel.busch@climate-resource.com",
  411. "title": "Agrifood systems emissions",
  412. "comment": (
  413. "Published by Food and Agriculture Organization of the "
  414. "United Nations (FAO), converted to PRIMAP2 format by "
  415. "Daniel Busch"
  416. ),
  417. "institution": ("Food and Agriculture Organization of the United Nations"),
  418. },
  419. }
  420. # TODO maybe this should live somewhere else?
  421. # Definition of the domains and releases to be read
  422. domains_and_releases_to_read = {
  423. "2024": [
  424. ("farm_gate_agriculture_energy", "2024-11-14"),
  425. ("farm_gate_emissions_crops", "2024-11-14"),
  426. ("farm_gate_livestock", "2024-11-14"),
  427. ("land_use_drained_organic_soils", "2024-11-14"),
  428. ("land_use_fires", "2024-11-14"),
  429. ("land_use_forests", "2024-11-14"),
  430. ("pre_post_agricultural_production", "2024-11-14"),
  431. ]
  432. }