From c3b820ba1c05dcc874c20c01e833b5d0b77354d4 Mon Sep 17 00:00:00 2001 From: veronikasamborska1994 <32176660+veronikasamborska1994@users.noreply.github.com> Date: Tue, 12 Nov 2024 12:03:06 +0100 Subject: [PATCH 1/2] education: UNESCO datasets --- dag/education.yml | 24 +- .../2024-11-12/education.countries.json | 262 ++++++++++++++++++ .../education.excluded_countries.json | 205 ++++++++++++++ .../unesco/2024-11-12/education_opri.meta.yml | 11 + .../unesco/2024-11-12/education_opri.py | 106 +++++++ .../unesco/2024-11-12/education_sdgs.meta.yml | 11 + .../unesco/2024-11-12/education_sdgs.py | 115 ++++++++ .../unesco/2024-11-12/education_opri.py | 28 ++ .../unesco/2024-11-12/education_sdgs.py | 28 ++ .../unesco/2024-11-12/education_opri.py | 75 +++++ .../unesco/2024-11-12/education_sdgs.py | 75 +++++ snapshots/unesco/2024-11-12/education_opri.py | 24 ++ .../unesco/2024-11-12/education_opri.zip.dvc | 34 +++ snapshots/unesco/2024-11-12/education_sdgs.py | 24 ++ .../unesco/2024-11-12/education_sdgs.zip.dvc | 33 +++ 15 files changed, 1043 insertions(+), 12 deletions(-) create mode 100644 etl/steps/data/garden/unesco/2024-11-12/education.countries.json create mode 100644 etl/steps/data/garden/unesco/2024-11-12/education.excluded_countries.json create mode 100644 etl/steps/data/garden/unesco/2024-11-12/education_opri.meta.yml create mode 100644 etl/steps/data/garden/unesco/2024-11-12/education_opri.py create mode 100644 etl/steps/data/garden/unesco/2024-11-12/education_sdgs.meta.yml create mode 100644 etl/steps/data/garden/unesco/2024-11-12/education_sdgs.py create mode 100644 etl/steps/data/grapher/unesco/2024-11-12/education_opri.py create mode 100644 etl/steps/data/grapher/unesco/2024-11-12/education_sdgs.py create mode 100644 etl/steps/data/meadow/unesco/2024-11-12/education_opri.py create mode 100644 etl/steps/data/meadow/unesco/2024-11-12/education_sdgs.py create mode 100644 snapshots/unesco/2024-11-12/education_opri.py create mode 100644 snapshots/unesco/2024-11-12/education_opri.zip.dvc create mode 100644 snapshots/unesco/2024-11-12/education_sdgs.py create mode 100644 snapshots/unesco/2024-11-12/education_sdgs.zip.dvc diff --git a/dag/education.yml b/dag/education.yml index 781f94d2b82..0d1355ad5e8 100644 --- a/dag/education.yml +++ b/dag/education.yml @@ -103,19 +103,19 @@ steps: - data://garden/education/2023-12-15/wittgenstein_center # UNESCO data on other policy related education indicators - data://meadow/unesco/2024-06-16/education_opri: - - snapshot://unesco/2024-06-16/education_opri.zip - data://garden/unesco/2024-06-16/education_opri: - - data://meadow/unesco/2024-06-16/education_opri + data://meadow/unesco/2024-11-12/education_opri: + - snapshot://unesco/2024-11-12/education_opri.zip + data://garden/unesco/2024-11-12/education_opri: + - data://meadow/unesco/2024-11-12/education_opri - snapshot://wb/2024-06-18/edstats_metadata.xls - data://grapher/unesco/2024-06-16/education_opri: - - data://garden/unesco/2024-06-16/education_opri + data://grapher/unesco/2024-11-12/education_opri: + - data://garden/unesco/2024-11-12/education_opri # UNESCO data on SDG education indicators - data://meadow/unesco/2024-06-25/education_sdgs: - - snapshot://unesco/2024-06-25/education_sdgs.zip - data://garden/unesco/2024-06-25/education_sdgs: - - data://meadow/unesco/2024-06-25/education_sdgs + data://meadow/unesco/2024-11-12/education_sdgs: + - snapshot://unesco/2024-11-12/education_sdgs.zip + data://garden/unesco/2024-11-12/education_sdgs: + - data://meadow/unesco/2024-11-12/education_sdgs - snapshot://wb/2024-06-18/edstats_metadata.xls - data://grapher/unesco/2024-06-25/education_sdgs: - - data://garden/unesco/2024-06-25/education_sdgs + data://grapher/unesco/2024-11-12/education_sdgs: + - data://garden/unesco/2024-11-12/education_sdgs diff --git a/etl/steps/data/garden/unesco/2024-11-12/education.countries.json b/etl/steps/data/garden/unesco/2024-11-12/education.countries.json new file mode 100644 index 00000000000..b305c2d552e --- /dev/null +++ b/etl/steps/data/garden/unesco/2024-11-12/education.countries.json @@ -0,0 +1,262 @@ +{ + "ABW": "Aruba", + "AFG": "Afghanistan", + "AGO": "Angola", + "AIA": "Anguilla", + "ALA": "Aland Islands", + "ALB": "Albania", + "AND": "Andorra", + "ARE": "United Arab Emirates", + "ARG": "Argentina", + "ARM": "Armenia", + "ASM": "American Samoa", + "ATG": "Antigua and Barbuda", + "AUS": "Australia", + "AUT": "Austria", + "AZE": "Azerbaijan", + "BDI": "Burundi", + "BEL": "Belgium", + "BEN": "Benin", + "BFA": "Burkina Faso", + "BGD": "Bangladesh", + "BGR": "Bulgaria", + "BHR": "Bahrain", + "BHS": "Bahamas", + "BIH": "Bosnia and Herzegovina", + "BLM": "Saint Barthelemy", + "BLR": "Belarus", + "BLZ": "Belize", + "BMU": "Bermuda", + "BOL": "Bolivia", + "BRA": "Brazil", + "BRB": "Barbados", + "BRN": "Brunei", + "BTN": "Bhutan", + "BWA": "Botswana", + "CAF": "Central African Republic", + "CAN": "Canada", + "CHE": "Switzerland", + "CHL": "Chile", + "CHN": "China", + "CIV": "Cote d'Ivoire", + "CMR": "Cameroon", + "COD": "Democratic Republic of Congo", + "COG": "Congo", + "COK": "Cook Islands", + "COL": "Colombia", + "COM": "Comoros", + "CPV": "Cape Verde", + "CRI": "Costa Rica", + "CUB": "Cuba", + "CUW": "Curacao", + "CYM": "Cayman Islands", + "CYP": "Cyprus", + "CZE": "Czechia", + "DEU": "Germany", + "DJI": "Djibouti", + "DMA": "Dominica", + "DNK": "Denmark", + "DOM": "Dominican Republic", + "DZA": "Algeria", + "ECU": "Ecuador", + "EGY": "Egypt", + "ERI": "Eritrea", + "ESH": "Western Sahara", + "ESP": "Spain", + "EST": "Estonia", + "ETH": "Ethiopia", + "FIN": "Finland", + "FJI": "Fiji", + "FLK": "Falkland Islands", + "FRA": "France", + "FRO": "Faroe Islands", + "FSM": "Micronesia (country)", + "GAB": "Gabon", + "GBR": "United Kingdom", + "GEO": "Georgia", + "GGY": "Guernsey", + "GHA": "Ghana", + "GIB": "Gibraltar", + "GIN": "Guinea", + "GLP": "Guadeloupe", + "GMB": "Gambia", + "GNB": "Guinea-Bissau", + "GNQ": "Equatorial Guinea", + "GRC": "Greece", + "GRD": "Grenada", + "GRL": "Greenland", + "GTM": "Guatemala", + "GUF": "French Guiana", + "GUM": "Guam", + "GUY": "Guyana", + "HKG": "Hong Kong", + "HND": "Honduras", + "HRV": "Croatia", + "HTI": "Haiti", + "HUN": "Hungary", + "IDN": "Indonesia", + "IMN": "Isle of Man", + "IND": "India", + "IRL": "Ireland", + "IRN": "Iran", + "IRQ": "Iraq", + "ISL": "Iceland", + "ISR": "Israel", + "ITA": "Italy", + "JAM": "Jamaica", + "JEY": "Jersey", + "JOR": "Jordan", + "JPN": "Japan", + "KAZ": "Kazakhstan", + "KEN": "Kenya", + "KGZ": "Kyrgyzstan", + "KHM": "Cambodia", + "KIR": "Kiribati", + "KNA": "Saint Kitts and Nevis", + "KOR": "South Korea", + "KWT": "Kuwait", + "LAO": "Laos", + "LBN": "Lebanon", + "LBR": "Liberia", + "LBY": "Libya", + "LCA": "Saint Lucia", + "LIE": "Liechtenstein", + "LKA": "Sri Lanka", + "LSO": "Lesotho", + "LTU": "Lithuania", + "LUX": "Luxembourg", + "LVA": "Latvia", + "MAC": "Macao", + "MAF": "Saint Martin (French part)", + "MAR": "Morocco", + "MCO": "Monaco", + "MDA": "Moldova", + "MDG": "Madagascar", + "MDV": "Maldives", + "MEX": "Mexico", + "MHL": "Marshall Islands", + "MKD": "North Macedonia", + "MLI": "Mali", + "MLT": "Malta", + "MMR": "Myanmar", + "MNE": "Montenegro", + "MNG": "Mongolia", + "MNP": "Northern Mariana Islands", + "MOZ": "Mozambique", + "MRT": "Mauritania", + "MSR": "Montserrat", + "MTQ": "Martinique", + "MUS": "Mauritius", + "MWI": "Malawi", + "MYS": "Malaysia", + "MYT": "Mayotte", + "NAM": "Namibia", + "NCL": "New Caledonia", + "NER": "Niger", + "NFK": "Norfolk Island", + "NGA": "Nigeria", + "NIC": "Nicaragua", + "NIU": "Niue", + "NLD": "Netherlands", + "NOR": "Norway", + "NPL": "Nepal", + "NRU": "Nauru", + "NZL": "New Zealand", + "OMN": "Oman", + "PAK": "Pakistan", + "PAN": "Panama", + "PCN": "Pitcairn", + "PER": "Peru", + "PHL": "Philippines", + "PLW": "Palau", + "PNG": "Papua New Guinea", + "POL": "Poland", + "PRI": "Puerto Rico", + "PRK": "North Korea", + "PRT": "Portugal", + "PRY": "Paraguay", + "PSE": "Palestine", + "PYF": "French Polynesia", + "QAT": "Qatar", + "REU": "Reunion", + "ROU": "Romania", + "RUS": "Russia", + "RWA": "Rwanda", + "SAU": "Saudi Arabia", + "SDN": "Sudan", + "SEN": "Senegal", + "SGP": "Singapore", + "SHN": "Saint Helena", + "SJM": "Svalbard and Jan Mayen", + "SLB": "Solomon Islands", + "SLE": "Sierra Leone", + "SLV": "El Salvador", + "SMR": "San Marino", + "SOM": "Somalia", + "SPM": "Saint Pierre and Miquelon", + "SRB": "Serbia", + "SSD": "South Sudan", + "STP": "Sao Tome and Principe", + "SUR": "Suriname", + "SVK": "Slovakia", + "SVN": "Slovenia", + "SWE": "Sweden", + "SWZ": "Eswatini", + "SXM": "Sint Maarten (Dutch part)", + "SYC": "Seychelles", + "SYR": "Syria", + "TCA": "Turks and Caicos Islands", + "TCD": "Chad", + "TGO": "Togo", + "THA": "Thailand", + "TJK": "Tajikistan", + "TKL": "Tokelau", + "TKM": "Turkmenistan", + "TLS": "East Timor", + "TON": "Tonga", + "TTO": "Trinidad and Tobago", + "TUN": "Tunisia", + "TUR": "Turkey", + "TUV": "Tuvalu", + "TZA": "Tanzania", + "UGA": "Uganda", + "UKR": "Ukraine", + "URY": "Uruguay", + "USA": "United States", + "UZB": "Uzbekistan", + "VAT": "Vatican", + "VCT": "Saint Vincent and the Grenadines", + "VEN": "Venezuela", + "VGB": "British Virgin Islands", + "VIR": "United States Virgin Islands", + "VNM": "Vietnam", + "VUT": "Vanuatu", + "WLF": "Wallis and Futuna", + "WSM": "Samoa", + "YEM": "Yemen", + "ZAF": "South Africa", + "ZMB": "Zambia", + "ZWE": "Zimbabwe", + "XDN": "Sudan (former)", + "ZZA": "Channel Islands", + "WB: European Union": "European Union (27)", + "WB: East Asia & Pacific": "East Asia and Pacific (WB)", + "WB: Europe & Central Asia": "Europe and Central Asia (WB)", + "WB: Latin America & Caribbean": "Latin America & Caribbean (WB)", + "WB: Middle East & North Africa": "Middle East & North Africa (WB)", + "WB: North America": "North America (WB)", + "WB: South Asia": "South Asia (WB)", + "WB: Sub-Saharan Africa": "Sub-Saharan Africa (WB)", + "WB: High income (July 2023)": "High income countries", + "WB: Low income (July 2023)": "Low income countries", + "WB: Lower middle income (July 2023)": "Lower-middle income countries", + "WB: Upper middle income (July 2023)": "Upper-middle income countries", + "SDG: World": "World", + "SDG: Europe and Northern America": "Europe and Northern America (SDG)", + "SDG: Oceania (excluding Australia and New Zealand)": "Oceania (excluding Australia and New Zealand) (SDG)", + "SDG: Latin America and the Caribbean": "Latin America and the Caribbean (SDG)", + "SDG: Eastern and South-Eastern Asia": "Eastern and South-Eastern Asia (SDG)", + "SDG: Central and Southern Asia": "Central and Southern Asia (SDG)", + "SDG: Northern Africa and Western Asia": "Northern Africa and Western Asia (SDG)", + "SDG: Sub-Saharan Africa": "Sub-Saharan Africa (SDG)" +} diff --git a/etl/steps/data/garden/unesco/2024-11-12/education.excluded_countries.json b/etl/steps/data/garden/unesco/2024-11-12/education.excluded_countries.json new file mode 100644 index 00000000000..0ed154c93e9 --- /dev/null +++ b/etl/steps/data/garden/unesco/2024-11-12/education.excluded_countries.json @@ -0,0 +1,205 @@ +[ +"AIMS: Asia and the Pacific", +"AIMS: Central Asia", +"AIMS: East Asia", +"AIMS: East Asia and the Pacific", +"AIMS: Pacific", +"AIMS: South and West Asia", +"ALECSO: Gulf countries", +"ALECSO: Least developed countries", +"ALECSO: Maghreb countries", +"ALECSO: Mashriq countries", +"ALECSO: Member countries", +"CECC-SICA", +"ECA: African Union Commission (UNSDCode:98106)", +"ECA: All countries (UNSDCode:98100)", +"ECA: AMU (UNSDCode:98111)", +"ECA: CEN-SAD (UNSDCode:98112)", +"ECA: Central Africa (UNSDCode:98101)", +"ECA: COMESA (UNSDCode:98113)", +"ECA: East Africa (UNSDCode:98102)", +"ECA: ECCAS (UNSDCode:98107)", +"ECA: ECOWAS (UNSDCode:98108)", +"ECA: EAC (UNSDCode:98114)", +"ECA: IGAD (UNSDCode:98109)", +"ECA: Island economies (UNSDCode:98115)", +"ECA: Land-locked countries (UNSDCode:98116)", +"ECA: Land-locked LDCs (UNSDCode:98117)", +"ECA: Least developed countries (UNSDCode:98118)", +"ECA: Mineral-rich countries (UNSDCode:98119)", +"ECA: Non-Oil LDCs (UNSDCode:98120)", +"ECA: Non-Oil Producing (UNSDCode:98121)", +"ECA: North Africa (UNSDCode:98103)", +"ECA: ECA: Oil LDCs (UNSDCode:98122)", +"ECA: Oil producing economies (UNSDCode:98123)", +"ECA: Sahel (UNSDCode:98124)", +"ECA: SADC (UNSDCode:98110)", +"ECA: Small Island states (UNSDCode:98125)", +"ECA: Southern Africa (UNSDCode:98104)", +"ECA: Sub-Saharan Africa (UNSDCode:98126)", +"ECA: West Africa (UNSDCode:98105)", +"ECE: All countries (UNSDCode:98200)", +"ECE: CIS (CWG) (UNSDCode:98201)", +"ECE: Eastern Europe, Caucasus and Central Asia (CIS) (UNSDCode:98202)", +"ECE: European Union (EMU) (UNSDCode:98203)", +"ECE: Euro area (E25) (UNSDCode:98204)", +"ECE: West Balkans (ST7) (UNSDCode:98205)", +"ECLAC: All countries (UNSDCode:98300)", +"ECLAC: Carribean (UNSDCode:98301)", +"ECLAC: Latin America (UNSDCode:98302)", +"ESCAP: Africa (AFR) (UNSDCode:98405)", +"ESCAP: All countries (UNSDCode:98400)", +"ESCAP: ASEAN (ASEAN) (UNSDCode:98406)", +"ESCAP: Countries with Special Needs (CSN) (UNSDCode:98434)", +"ESCAP: East and North-East Asia (ENEA) (UNSDCode:98408)", +"ESCAP: ECO (ECO) (UNSDCode:98407)", +"ESCAP: Europe (Europe) (UNSDCode:98423)", +"ESCAP: LDC (LDC_E) (UNSDCode:98411)", +"ESCAP: Latin America (LAC) (UNSDCode:98424)", +"ESCAP: LLDC (LLDC_E) (UNSDCode:98412)", +"ESCAP: North America (NAM) (UNSDCode:98425)", +"ESCAP: North and Central Asia (NCA) (UNSDCode:98417)", +"ESCAP: Other Area (OTH_REGION) (UNSDCode:98426)", +"ESCAP: Pacific island developing economies (PIDE) (UNSDCode:98427)", +"ESCAP: PACIFIC (PAC) (UNSDCode:98418)", +"ESCAP: SAARC (SAARC) (UNSDCode:98428)", +"ESCAP: Small Islands Developing States (SIDS) (UNSDCode:98435)", +"ESCAP: South and South-West Asia (SSWA) (UNSDCode:98420)", +"ESCAP: South-East Asia (SEA) (UNSDCode:98419)", +"ESCAP: WB High Income Economies (WB_HIGH) (UNSDCode:98436)", +"ESCAP: WB Low Income Economies (WB_LOW) (UNSDCode:98439)", +"ESCAP: WB Lower Middle Income Economies (WB_LOWER_MID) (UNSDCode:98438)", +"ESCAP: WB Upper Middle Income Economies (WB_UPPER_MID) (UNSDCode:98437)", +"ESCWA: All countries (UNSDCode:98500)", +"ESCWA: Arab countries (UNSDCode:98501)", +"ESCWA: Arab LDCs subregion (UNSDCode:98505)", +"ESCWA: Countries in conflict (UNSDCode:98506)", +"ESCWA: Gulf Cooperation Council (GCC) (UNSDCode:98502)", +"ESCWA: Maghreb subregion (UNSDCode:98504)", +"ESCWA: Mashreq subregion (UNSDCode:98503)", +"ESCWA: Non-conflict middle income countries (UNSDCode:98507)", +"GPE: (February 2016)", +"GPE: Africa 1 & 3 GPE Secretariat, January 2023", +"GPE: Africa 2 GPE Secretariat, January 2023", +"GPE: East Asia & Pacific WB FY22, January 2023", +"GPE: Europe & Central Asia WB FY22, January 2023", +"GPE: Fragile or Conflict-affected countries (FCAC) FY 20, June 2020", +"GPE: Fragile or Conflict-affected countries (FCAC) FY22, January 2023", +"GPE: Fragile or conflict-affected (FY16)", +"GPE: Latin America & Caribbean WB FY22, January 2023", +"GPE: Low income WB FY22, January 2023", +"GPE: Lower middle Income WB FY22, January 2023", +"GPE: Middle East & North Africa WB FY22, January 2023", +"GPE: Non Fragile & non Conflict-affected countries (NON-FCAC) FY20, June 2020", +"GPE: Non Fragile & non Conflict-affected countries (NON-FCAC) FY22, January 2023", +"GPE: Non-fragile and non-conflict-affected (FY16)", +"GPE: Overall FY20, all 68 countries, June 2020", +"GPE: Overall FY22, all 85 countries, January 2023", +"GPE: Rest of the World GPE Secretariat, January 2023", +"GPE: Small island and landlocked developing states, January 2023", +"GPE: South Asia WB FY22, January 2023", +"GPE: Sub-Saharan Africa WB FY22, January 2023", +"GPE: Upper middle Income WB FY22, January 2023", +"MDG: Caribbean", +"MDG: Caucasus and Central Asia", +"MDG: Developed regions", +"MDG: Developing regions", +"MDG: Eastern Asia", +"MDG: Eastern Asia (excluding China)", +"MDG: Latin America", +"MDG: Latin America and the Caribbean", +"MDG: Northern Africa", +"MDG: Oceania", +"MDG: South-eastern Asia", +"MDG: Southern Asia", +"MDG: Southern Asia (excluding India)", +"MDG: Sub-Saharan Africa", +"MDG: Western Asia", +"UNESCO: SIDS", +"UNICEF: Africa", +"UNICEF: All UNICEF Countries", +"UNICEF: Association of South East Asian Nations (ASEAN)", +"UNICEF: Central and Eastern Europe/Commonwealth of Independent States", +"UNICEF: East Asia and Pacific", +"UNICEF: East Asia and the Pacific Programme Countries", +"UNICEF: Eastern and Southern Africa", +"UNICEF: Eastern Europe and Central Asia", +"UNICEF: Economic Community of Central African States (ECCAS)", +"UNICEF: Economic Community of West African States (ECOWAS)", +"UNICEF: Europe and Central Asia", +"UNICEF: Europe and Central Asia Programme Countries", +"UNICEF: Gulf Area", +"UNICEF: Latin America and Caribbean", +"UNICEF: Middle East and North Africa", +"UNICEF: Middle East and North Africa Programme Countries", +"UNICEF: North America", +"UNICEF: South Asia", +"UNICEF: Sub-Saharan Africa", +"UNICEF: West and Central Africa", +"UNICEF: Western Balkans", +"UNICEF: Western Europe", +"WB: Heavily Indebted Poor Countries (HIPC)", +"WB: Latin America & Caribbean (excluding high income)", +"WB: Africa Eastern and Southern", +"WB: Africa Western and Central", +"WB: Arab World", +"WB: Caribbean small states", +"WB: Central Europe and the Baltics", +"WB: East Asia & Pacific (excluding high income)", +"WB: East Asia & Pacific (IDA & IBRD)", +"WB: Early-demographic dividend", +"WB: Euro area", +"WB: Europe & Central Asia (excluding high income)", +"WB: Europe & Central Asia (IDA & IBRD)", +"WB: Fragile and conflict affected situations", +"WB: FY23 IDA & IBRD countries classified as fragile situations", +"WB: FY23 IDA countries classified as fragile situations", +"WB: Global Partnership for Education (July 2019)", +"WB: IBRD only", +"WB: IDA & IBRD total", +"WB: IDA blend", +"WB: IDA only", +"WB: IDA total", +"WB: Late-demographic dividend", +"WB: Latin America & Caribbean (IDA & IBRD)", +"WB: Least developed countries: UN classification", +"WB: Low & middle income (July 2023)", +"WB: Middle East & North Africa (excluding high income)", +"WB: Middle East & North Africa (IDA & IBRD)", +"WB: Middle income (July 2023)", +"WB: OECD members", +"WB: Other small states", +"WB: Pacific island small states", +"WB: Post-demographic dividend", +"WB: Pre-demographic dividend", +"WB: Small states", +"WB: South Asia (IDA & IBRD)", +"WB: Sub-Saharan Africa (excluding high income)", +"WB: Sub-Saharan Africa (IDA & IBRD)", +"UIS: Arab States", +"UIS: Central and Eastern Europe", +"UIS: Central Asia", +"UIS: East Asia and the Pacific", +"UIS: Latin America and the Caribbean", +"UIS: North America and Western Europe", +"UIS: South and West Asia", +"UIS: Sub-Saharan Africa", +"SDG: Australia and New Zealand", +"SDG: Central Asia", +"SDG: Eastern Asia", +"SDG: Europe", +"SDG: Europe, Northern America, Australia and New Zealand", +"SDG: Landlocked Developing Countries", +"SDG: Least Developed Countries", +"SDG: Northern Africa", +"SDG: Northern America", +"SDG: Oceania", +"SDG: Small Island Developing States", +"SDG: Southern Asia", +"SDG: South-Eastern Asia", +"SDG: Western Asia", +"WB: World", +"UIS: World", +"UNICEF: World", +"MDG: World" +] diff --git a/etl/steps/data/garden/unesco/2024-11-12/education_opri.meta.yml b/etl/steps/data/garden/unesco/2024-11-12/education_opri.meta.yml new file mode 100644 index 00000000000..ec22fe99d79 --- /dev/null +++ b/etl/steps/data/garden/unesco/2024-11-12/education_opri.meta.yml @@ -0,0 +1,11 @@ +# NOTE: To learn more about the fields, hover over their names. +definitions: + common: + presentation: + topic_tags: + - Global Education + +# Learn more about the available fields: +# http://docs.owid.io/projects/etl/architecture/metadata/reference/ +dataset: + update_period_days: 365 diff --git a/etl/steps/data/garden/unesco/2024-11-12/education_opri.py b/etl/steps/data/garden/unesco/2024-11-12/education_opri.py new file mode 100644 index 00000000000..f5faba633ec --- /dev/null +++ b/etl/steps/data/garden/unesco/2024-11-12/education_opri.py @@ -0,0 +1,106 @@ +"""Load a meadow dataset and create a garden dataset.""" +from owid.catalog import VariableMeta + +from etl.data_helpers import geo +from etl.helpers import PathFinder, create_dataset + +# Get paths and naming conventions for current step. +paths = PathFinder(__file__) + + +def run(dest_dir: str) -> None: + # + # Load inputs. + # + # Load meadow dataset. + ds_meadow = paths.load_dataset("education_opri") + + # Read table from meadow dataset. + tb = ds_meadow["education_opri"].reset_index() + + # Retrieve snapshot with the metadata provided via World Bank. + + snap_wb = paths.load_snapshot("edstats_metadata.xls") + tb_wb = snap_wb.read() + + # + # Process data. + # + country_mapping_path = paths.directory / "education.countries.json" + excluded_countries_path = paths.directory / "education.excluded_countries.json" + tb = geo.harmonize_countries( + df=tb, countries_file=country_mapping_path, excluded_countries_file=excluded_countries_path + ) + + # Drop columns that are not needed + tb = tb.drop(columns=["indicator_id", "magnitude", "qualifier"]) + + # Add the long description from the World Bank metadata + long_definition = {} + for indicator in tb["indicator_label_en"].unique(): + definition = tb_wb[tb_wb["Indicator Name"] == indicator]["Long definition"].values + if len(definition) > 0: + long_definition[indicator] = definition[0] + else: + long_definition[indicator] = "" + + tb["long_description"] = tb["indicator_label_en"].map(long_definition) + + # Pivot the table to have the indicators as columns to add descriptions from producer + tb_pivoted = tb.pivot(index=["country", "year"], columns="indicator_label_en", values="value") + for column in tb_pivoted.columns: + meta = tb_pivoted[column].metadata + meta.display = {} + long_definition = tb["long_description"].loc[tb["indicator_label_en"] == column].iloc[0] + meta.description_from_producer = long_definition + meta.title = column + # + # Update metadata units, short_units and number of decimal places to display depending on what keywords the variable name contains + # + # Fill out units and decimal places + if "%" in column.lower(): + update_metadata(meta, display_decimals=1, unit="%", short_unit="%") + elif "(days)" in column.lower(): + update_metadata(meta, display_decimals=1, unit="days", short_unit="") + elif "index" in column.lower(): + update_metadata(meta, display_decimals=1, unit="index", short_unit="") + elif "(current us$)" in column.lower(): + update_metadata(meta, display_decimals=1, unit="current US$", short_unit="current $") + elif "(number)" in column.lower(): + update_metadata(meta, display_decimals=0, unit="number", short_unit="") + + else: + # Default metadata update when no other conditions are met. + update_metadata(meta, 0, " ", " ") + + tb_pivoted = tb_pivoted.reset_index() + tb_pivoted = tb_pivoted.format(["country", "year"]) + + # + # Save outputs. + # + # Create a new garden dataset with the same metadata as the meadow dataset. + ds_garden = create_dataset( + dest_dir, tables=[tb_pivoted], check_variables_metadata=True, default_metadata=ds_meadow.metadata + ) + + # Save changes in the new garden dataset. + ds_garden.save() + + +def update_metadata(meta: VariableMeta, display_decimals: int, unit: str, short_unit: str) -> None: + """ + Update metadata attributes of a specified column in the given table. + + Args: + meta (obj): Metadata object of the column to update. + display_decimals (int): Number of decimal places to display. + unit (str): The full name of the unit of measurement for the column data. + short_unit (str, optional): The abbreviated form of the unit. Defaults to an empty space. + + Returns: + None: The function updates the table in-place. + """ + meta.display["numDecimalPlaces"] = display_decimals + meta.unit = unit + meta.short_unit = short_unit diff --git a/etl/steps/data/garden/unesco/2024-11-12/education_sdgs.meta.yml b/etl/steps/data/garden/unesco/2024-11-12/education_sdgs.meta.yml new file mode 100644 index 00000000000..ec22fe99d79 --- /dev/null +++ b/etl/steps/data/garden/unesco/2024-11-12/education_sdgs.meta.yml @@ -0,0 +1,11 @@ +# NOTE: To learn more about the fields, hover over their names. +definitions: + common: + presentation: + topic_tags: + - Global Education + +# Learn more about the available fields: +# http://docs.owid.io/projects/etl/architecture/metadata/reference/ +dataset: + update_period_days: 365 diff --git a/etl/steps/data/garden/unesco/2024-11-12/education_sdgs.py b/etl/steps/data/garden/unesco/2024-11-12/education_sdgs.py new file mode 100644 index 00000000000..cf6d711a158 --- /dev/null +++ b/etl/steps/data/garden/unesco/2024-11-12/education_sdgs.py @@ -0,0 +1,115 @@ +"""Load a meadow dataset and create a garden dataset.""" +from owid.catalog import VariableMeta +from tqdm import tqdm + +from etl.data_helpers import geo +from etl.helpers import PathFinder, create_dataset + +# Get paths and naming conventions for current step. +paths = PathFinder(__file__) + + +def run(dest_dir: str) -> None: + # + # Load inputs. + # + # Load meadow dataset. + ds_meadow = paths.load_dataset("education_sdgs") + + # Read table from meadow dataset. + tb = ds_meadow["education_sdgs"].reset_index() + + # Retrieve snapshot with the metadata provided via World Bank. + + snap_wb = paths.load_snapshot("edstats_metadata.xls") + tb_wb = snap_wb.read() + + # + # Process data. + # + country_mapping_path = paths.directory / "education.countries.json" + excluded_countries_path = paths.directory / "education.excluded_countries.json" + tb = geo.harmonize_countries( + df=tb, countries_file=country_mapping_path, excluded_countries_file=excluded_countries_path + ) + + # Drop columns that are not needed + tb = tb.drop(columns=["magnitude", "qualifier"]) + + # Add the long description from the World Bank metadata + long_definition = {} + for indicator in tb["indicator_label_en"].unique(): + definition = tb_wb[tb_wb["Indicator Name"] == indicator]["Long definition"].values + if len(definition) > 0: + long_definition[indicator] = definition[0] + else: + long_definition[indicator] = "" + + tb["long_description"] = tb["indicator_label_en"].map(long_definition) + # Drop rows with missing indicator labels + tb = tb[tb["indicator_label_en"].notna()] + tb["indicator_label_en"] = tb["indicator_label_en"].astype(str) + ", " + tb["indicator_id"].astype(str) + + # Pivot the table to have the indicators as columns to add descriptions from producer + tb_pivoted = tb.pivot(index=["country", "year"], columns="indicator_label_en", values="value") + + for column in tqdm(tb_pivoted.columns): + meta = tb_pivoted[column].metadata + meta.display = {} + long_definition = tb["long_description"].loc[tb["indicator_label_en"] == column] + if not long_definition.empty: + long_definition = long_definition.iloc[0] + meta.description_from_producer = long_definition + meta.title = column + # + # Update metadata units, short_units and number of decimal places to display depending on what keywords the variable name contains + # + # Fill out units and decimal places + if "%" in column.lower(): + update_metadata(meta, display_decimals=1, unit="%", short_unit="%") + elif "(days)" in column.lower(): + update_metadata(meta, display_decimals=1, unit="days", short_unit="") + elif "index" in column.lower(): + update_metadata(meta, display_decimals=1, unit="index", short_unit="") + elif "(current us$)" in column.lower(): + update_metadata(meta, display_decimals=1, unit="current US$", short_unit="$") + elif "(number)" in column.lower(): + update_metadata(meta, display_decimals=0, unit="number", short_unit="") + elif "ppp$" in column.lower(): + update_metadata(meta, display_decimals=1, unit="constant 2019 US$", short_unit="$") + + else: + # Default metadata update when no other conditions are met. + update_metadata(meta, 0, " ", " ") + + tb_pivoted = tb_pivoted.reset_index() + tb_pivoted = tb_pivoted.format(["country", "year"]) + + # + # Save outputs. + # + # Create a new garden dataset with the same metadata as the meadow dataset. + ds_garden = create_dataset( + dest_dir, tables=[tb_pivoted], check_variables_metadata=True, default_metadata=ds_meadow.metadata + ) + + # Save changes in the new garden dataset. + ds_garden.save() + + +def update_metadata(meta: VariableMeta, display_decimals: int, unit: str, short_unit: str) -> None: + """ + Update metadata attributes of a specified column in the given table. + + Args: + meta (obj): Metadata object of the column to update. + display_decimals (int): Number of decimal places to display. + unit (str): The full name of the unit of measurement for the column data. + short_unit (str, optional): The abbreviated form of the unit. Defaults to an empty space. + + Returns: + None: The function updates the table in-place. + """ + meta.display["numDecimalPlaces"] = display_decimals + meta.unit = unit + meta.short_unit = short_unit diff --git a/etl/steps/data/grapher/unesco/2024-11-12/education_opri.py b/etl/steps/data/grapher/unesco/2024-11-12/education_opri.py new file mode 100644 index 00000000000..fa5b8cac87d --- /dev/null +++ b/etl/steps/data/grapher/unesco/2024-11-12/education_opri.py @@ -0,0 +1,28 @@ +"""Load a garden dataset and create a grapher dataset.""" + +from etl.helpers import PathFinder, create_dataset + +# Get paths and naming conventions for current step. +paths = PathFinder(__file__) + + +def run(dest_dir: str) -> None: + # + # Load inputs. + # + # Load garden dataset. + ds_garden = paths.load_dataset("education_opri") + + # Read table from garden dataset. + tb = ds_garden["education_opri"] + + # + # Save outputs. + # + # Create a new grapher dataset with the same metadata as the garden dataset. + ds_grapher = create_dataset( + dest_dir, tables=[tb], check_variables_metadata=True, default_metadata=ds_garden.metadata + ) + + # Save changes in the new grapher dataset. + ds_grapher.save() diff --git a/etl/steps/data/grapher/unesco/2024-11-12/education_sdgs.py b/etl/steps/data/grapher/unesco/2024-11-12/education_sdgs.py new file mode 100644 index 00000000000..3f5b943b32d --- /dev/null +++ b/etl/steps/data/grapher/unesco/2024-11-12/education_sdgs.py @@ -0,0 +1,28 @@ +"""Load a garden dataset and create a grapher dataset.""" + +from etl.helpers import PathFinder, create_dataset + +# Get paths and naming conventions for current step. +paths = PathFinder(__file__) + + +def run(dest_dir: str) -> None: + # + # Load inputs. + # + # Load garden dataset. + ds_garden = paths.load_dataset("education_sdgs") + + # Read table from garden dataset. + tb = ds_garden["education_sdgs"] + + # + # Save outputs. + # + # Create a new grapher dataset with the same metadata as the garden dataset. + ds_grapher = create_dataset( + dest_dir, tables=[tb], check_variables_metadata=True, default_metadata=ds_garden.metadata + ) + + # Save changes in the new grapher dataset. + ds_grapher.save() diff --git a/etl/steps/data/meadow/unesco/2024-11-12/education_opri.py b/etl/steps/data/meadow/unesco/2024-11-12/education_opri.py new file mode 100644 index 00000000000..2ad13e67c76 --- /dev/null +++ b/etl/steps/data/meadow/unesco/2024-11-12/education_opri.py @@ -0,0 +1,75 @@ +"""Load a snapshot and create a meadow dataset.""" + +import os +import zipfile + +import owid.catalog.processing as pr +from owid.catalog import Table + +from etl.helpers import PathFinder, create_dataset + +# Get paths and naming conventions for current step. +paths = PathFinder(__file__) + + +def read_csv_from_zip(zip_path, csv_file): + extract_dir = os.path.dirname(zip_path) + + # Open the ZIP archive + with zipfile.ZipFile(zip_path, "r") as z: + # Check if the CSV file exists in the ZIP archive + if csv_file not in z.namelist(): + raise ValueError(f"{csv_file} not found in the ZIP archive") + + # Extract the file from the ZIP archive + z.extract(csv_file, extract_dir) + + # Create the full file path + file_path = os.path.join(extract_dir, csv_file) + + # Read the file + df = pr.read_csv(file_path, low_memory=False) + + return df + + +def run(dest_dir: str) -> None: + # + # Load inputs. + # + # Retrieve snapshot. + snap = paths.load_snapshot("education_opri.zip") + + # Read the relevantCSV files from the ZIP archive + national_df = read_csv_from_zip(snap.path, "OPRI_DATA_NATIONAL.csv") + regional_df = read_csv_from_zip(snap.path, "OPRI_DATA_REGIONAL.csv") + label_df = read_csv_from_zip(snap.path, "OPRI_LABEL.csv") + + # + # Process data. + # + # Rename columns with regions and countries for the purpose of merging the dataframes later on + rename_dict = {"region_id": "country", "country_id": "country"} + regional_df.rename(columns=rename_dict, inplace=True) + national_df.rename(columns=rename_dict, inplace=True) + + # Concatenate and merge dataframes with regional and national data + cobimbed_df = pr.concat([regional_df, national_df], axis=0) + label_df.columns = label_df.columns.str.lower() + + # Add indicator label columnn that provides a better description of the indicator + df_with_labels = pr.merge(cobimbed_df, label_df, on="indicator_id", how="left") + + # Create a new table and add relevant metadata. + tb = Table(df_with_labels, short_name=paths.short_name) + tb = tb.format(["country", "year", "indicator_id"]) + for column in tb.columns: + tb[column].metadata.origins = [snap.metadata.origin] + # + # Save outputs. + # + # Create a new meadow dataset with the same metadata as the snapshot. + ds_meadow = create_dataset(dest_dir, tables=[tb], check_variables_metadata=True, default_metadata=snap.metadata) + + # Save changes in the new meadow dataset. + ds_meadow.save() diff --git a/etl/steps/data/meadow/unesco/2024-11-12/education_sdgs.py b/etl/steps/data/meadow/unesco/2024-11-12/education_sdgs.py new file mode 100644 index 00000000000..06c86a1dbc5 --- /dev/null +++ b/etl/steps/data/meadow/unesco/2024-11-12/education_sdgs.py @@ -0,0 +1,75 @@ +"""Load a snapshot and create a meadow dataset.""" + +import os +import zipfile + +import owid.catalog.processing as pr +from owid.catalog import Table + +from etl.helpers import PathFinder, create_dataset + +# Get paths and naming conventions for current step. +paths = PathFinder(__file__) + + +def read_csv_from_zip(zip_path, csv_file): + extract_dir = os.path.dirname(zip_path) + + # Open the ZIP archive + with zipfile.ZipFile(zip_path, "r") as z: + # Check if the CSV file exists in the ZIP archive + if csv_file not in z.namelist(): + raise ValueError(f"{csv_file} not found in the ZIP archive") + + # Extract the file from the ZIP archive + z.extract(csv_file, extract_dir) + + # Create the full file path + file_path = os.path.join(extract_dir, csv_file) + + # Read the file + df = pr.read_csv(file_path, low_memory=False) + + return df + + +def run(dest_dir: str) -> None: + # + # Load inputs. + # + # Retrieve snapshot. + snap = paths.load_snapshot("education_sdgs.zip") + + # Read the relevantCSV files from the ZIP archive + national_df = read_csv_from_zip(snap.path, "SDG_DATA_NATIONAL.csv") + regional_df = read_csv_from_zip(snap.path, "SDG_DATA_REGIONAL.csv") + label_df = read_csv_from_zip(snap.path, "SDG_LABEL.csv") + + # + # Process data. + # + # Rename columns with regions and countries for the purpose of merging the dataframes later on + rename_dict = {"region_id": "country", "country_id": "country"} + regional_df.rename(columns=rename_dict, inplace=True) + national_df.rename(columns=rename_dict, inplace=True) + + # Concatenate and merge dataframes with regional and national data + cobimbed_df = pr.concat([regional_df, national_df], axis=0) + label_df.columns = label_df.columns.str.lower() + + # Add indicator label columnn that provides a better description of the indicator + df_with_labels = pr.merge(cobimbed_df, label_df, on="indicator_id", how="left") + + # Create a new table and add relevant metadata. + tb = Table(df_with_labels, short_name=paths.short_name) + tb = tb.format(["country", "year", "indicator_id"]) + for column in tb.columns: + tb[column].metadata.origins = [snap.metadata.origin] + # + # Save outputs. + # + # Create a new meadow dataset with the same metadata as the snapshot. + ds_meadow = create_dataset(dest_dir, tables=[tb], check_variables_metadata=True, default_metadata=snap.metadata) + + # Save changes in the new meadow dataset. + ds_meadow.save() diff --git a/snapshots/unesco/2024-11-12/education_opri.py b/snapshots/unesco/2024-11-12/education_opri.py new file mode 100644 index 00000000000..8e772a6547a --- /dev/null +++ b/snapshots/unesco/2024-11-12/education_opri.py @@ -0,0 +1,24 @@ +"""Script to create a snapshot of dataset.""" + +from pathlib import Path + +import click + +from etl.snapshot import Snapshot + +# Version for current snapshot dataset. +SNAPSHOT_VERSION = Path(__file__).parent.name + + +@click.command() +@click.option("--upload/--skip-upload", default=True, type=bool, help="Upload dataset to Snapshot") +def main(upload: bool) -> None: + # Create a new snapshot. + snap = Snapshot(f"unesco/{SNAPSHOT_VERSION}/education_opri.zip") + + # Download data from source, add file to DVC and upload to S3. + snap.create_snapshot(upload=upload) + + +if __name__ == "__main__": + main() diff --git a/snapshots/unesco/2024-11-12/education_opri.zip.dvc b/snapshots/unesco/2024-11-12/education_opri.zip.dvc new file mode 100644 index 00000000000..7dd3d29b2b7 --- /dev/null +++ b/snapshots/unesco/2024-11-12/education_opri.zip.dvc @@ -0,0 +1,34 @@ +# Learn more at: +# http://docs.owid.io/projects/etl/architecture/metadata/reference/ +meta: + origin: + # Data product / Snapshot + title: UNESCO Institute for Statistics (UIS) - Education + description: |- + The UNESCO Institute for Statistics (UIS) is the official and trusted source of internationally-comparable data on education, science, culture and communication. As the official statistical agency of UNESCO, the UIS produces a wide range of state-of-the-art databases to fuel the policies and investments needed to transform lives and propel the world towards its development goals. The UIS provides free access to data for all UNESCO countries and regional groupings from 1970 to the most recent year available. + + date_published: "2024-09-01" + title_snapshot: UNESCO Institute for Statistics (UIS) - Education (OPRI) + description_snapshot: |- + This snapshot is for the Other Policy Relevant Indicators dataset. + + # Citation + producer: UNESCO Institute for Statistics + citation_full: |- + UNESCO Institute for Statistics (UIS), Education, https://uis.unesco.org/bdds, 2024 + attribution_short: UIS + + # Files + url_main: https://uis.unesco.org/bdds + url_download: https://uis.unesco.org/sites/default/files/documents/bdds/022024/OPRI.zip + date_accessed: 2024-11-12 + + # License + license: + name: CC BY 3.0 IGO + url: http://creativecommons.org/licenses/by-sa/3.0/igo/ + +outs: + - md5: c1e731a77c5a75690dbeda60fddb363f + size: 45532408 + path: education_opri.zip diff --git a/snapshots/unesco/2024-11-12/education_sdgs.py b/snapshots/unesco/2024-11-12/education_sdgs.py new file mode 100644 index 00000000000..9a5839a02fa --- /dev/null +++ b/snapshots/unesco/2024-11-12/education_sdgs.py @@ -0,0 +1,24 @@ +"""Script to create a snapshot of dataset.""" + +from pathlib import Path + +import click + +from etl.snapshot import Snapshot + +# Version for current snapshot dataset. +SNAPSHOT_VERSION = Path(__file__).parent.name + + +@click.command() +@click.option("--upload/--skip-upload", default=True, type=bool, help="Upload dataset to Snapshot") +def main(upload: bool) -> None: + # Create a new snapshot. + snap = Snapshot(f"unesco/{SNAPSHOT_VERSION}/education_sdgs.zip") + + # Download data from source, add file to DVC and upload to S3. + snap.create_snapshot(upload=upload) + + +if __name__ == "__main__": + main() diff --git a/snapshots/unesco/2024-11-12/education_sdgs.zip.dvc b/snapshots/unesco/2024-11-12/education_sdgs.zip.dvc new file mode 100644 index 00000000000..06798f4f5c6 --- /dev/null +++ b/snapshots/unesco/2024-11-12/education_sdgs.zip.dvc @@ -0,0 +1,33 @@ +# Learn more at: +# http://docs.owid.io/projects/etl/architecture/metadata/reference/ +meta: + origin: + # Data product / Snapshot + title: UNESCO Institute for Statistics (UIS) - Education + description: |- + The UNESCO Institute for Statistics (UIS) is the official and trusted source of internationally-comparable data on education, science, culture and communication. As the official statistical agency of UNESCO, the UIS produces a wide range of state-of-the-art databases to fuel the policies and investments needed to transform lives and propel the world towards its development goals. The UIS provides free access to data for all UNESCO countries and regional groupings from 1970 to the most recent year available. + + date_published: "2024-09-01" + title_snapshot: UNESCO Institute for Statistics (UIS) - Education (SDGs) + description_snapshot: |- + This snapshot is for the SDG Global and Thematic Indicators dataset. + + # Citation + producer: UNESCO Institute for Statistics + citation_full: |- + UNESCO Institute for Statistics (UIS), Education, https://uis.unesco.org/bdds, 2024 + attribution_short: UIS + + # Files + url_main: https://uis.unesco.org/bdds + url_download: https://uis.unesco.org/sites/default/files/documents/bdds/022024/SDG.zip + date_accessed: 2024-11-12 + + # License + license: + name: CC BY 3.0 IGO + url: http://creativecommons.org/licenses/by-sa/3.0/igo/ +outs: + - md5: 6503b3110b873833dc61ffbfae4753d6 + size: 26923298 + path: education_sdgs.zip From 21c62bfb26f0ea8e418a01fdd62be5918bd2e9e5 Mon Sep 17 00:00:00 2001 From: veronikasamborska1994 <32176660+veronikasamborska1994@users.noreply.github.com> Date: Tue, 12 Nov 2024 12:11:45 +0100 Subject: [PATCH 2/2] check global aggregates --- .../data/garden/unesco/2024-11-12/education.countries.json | 6 +++++- .../unesco/2024-11-12/education.excluded_countries.json | 6 +----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/etl/steps/data/garden/unesco/2024-11-12/education.countries.json b/etl/steps/data/garden/unesco/2024-11-12/education.countries.json index b305c2d552e..c4cf85f6ecc 100644 --- a/etl/steps/data/garden/unesco/2024-11-12/education.countries.json +++ b/etl/steps/data/garden/unesco/2024-11-12/education.countries.json @@ -251,7 +251,11 @@ "WB: Low income (July 2023)": "Low income countries", "WB: Lower middle income (July 2023)": "Lower-middle income countries", "WB: Upper middle income (July 2023)": "Upper-middle income countries", - "SDG: World": "World", + "SDG: World": "World (SDG)", + "WB: World": "World (WB", + "UIS: World": "World (UIS)", + "UNICEF: World": "World (UNICEF)", + "MDG: World": "World (MDG)", "SDG: Europe and Northern America": "Europe and Northern America (SDG)", "SDG: Oceania (excluding Australia and New Zealand)": "Oceania (excluding Australia and New Zealand) (SDG)", "SDG: Latin America and the Caribbean": "Latin America and the Caribbean (SDG)", diff --git a/etl/steps/data/garden/unesco/2024-11-12/education.excluded_countries.json b/etl/steps/data/garden/unesco/2024-11-12/education.excluded_countries.json index 0ed154c93e9..c09905f2ac5 100644 --- a/etl/steps/data/garden/unesco/2024-11-12/education.excluded_countries.json +++ b/etl/steps/data/garden/unesco/2024-11-12/education.excluded_countries.json @@ -197,9 +197,5 @@ "SDG: Small Island Developing States", "SDG: Southern Asia", "SDG: South-Eastern Asia", -"SDG: Western Asia", -"WB: World", -"UIS: World", -"UNICEF: World", -"MDG: World" +"SDG: Western Asia" ]