Skip to content

Instantly share code, notes, and snippets.

@bennyistanto
Last active May 25, 2025 07:46
Show Gist options
  • Save bennyistanto/98038d0a372874f380c4126f0c1b580a to your computer and use it in GitHub Desktop.
Save bennyistanto/98038d0a372874f380c4126f0c1b580a to your computer and use it in GitHub Desktop.
Landcover annual transitions in hectares by country

Landcover Zonal Statistics & Transition Analysis

This repository provides two complementary workflows for deriving landcover area summaries and full transition matrices from MODIS IGBP or ESA CCI landcover datasets. Both workflows produce per‑year class area CSVs and comprehensive inter‑annual transition tables, then optionally split those tables by ISO3 code.


🔧 Requirements

  • Python 3.8+
  • geopandas
  • rasterstats
  • pandas
  • numpy
  • rasterio
  • xarray (only for NetCDF inputs)
  • tqdm

Install via conda or pip:

conda install geopandas rasterio rasterstats xarray pandas numpy tqdm
# or
pip install geopandas rasterio rasterstats xarray pandas numpy tqdm

📝 Notebook 1: zonal_histogram_annualtransitions_landcover.ipynb

Purpose

  1. Compute per‑year class areas: For each annual raster (GeoTIFF/NetCDF), run a zonal histogram by your admin boundaries to count pixels per IGBP/LCCS class, convert counts to hectares, and write both per‑year and combined CSV outputs.
  2. Build full transition matrices: For every pair of consecutive years, encode each pixel’s class change as 100*source + target, perform zonal histograms on that code, and output a complete source→target matrix (including zeros) per year.

Key Steps

  1. Per‑pixel transition code:

    trans = arr_prev.astype(np.int32)*100 + arr_curr.astype(np.int32)

    Assigns each pixel a unique integer for its (source, target) classes.

  2. Zonal counting:

    stats = zonal_stats(
      zones, trans,
      affine=transform,
      categorical=True,
      all_touched=True,
      nodata=-999
    )

    Buckets pixels by transition code per zone, returning {code: count} dicts.

  3. Area conversion:

    hectares = count * pixel_area_ha

    Converts pixel counts into hectares (25 ha for MODIS; adjust for other resolutions).

  4. Memory management: Frequent gc.collect() calls free Python memory between years to avoid OOM.


📝 Notebook 2: landcover_transitions_iso3.ipynb

Purpose

Splits the master transition table by ISO3 code and aggregates multiple polygons:

sub = (
  df[df.iso_3 == iso]
    .groupby(['year','source','target'], as_index=False)['hectares']
    .sum()
    .rename(columns={'hectares':'value'})
)
sub.to_csv(f'transitions_{iso}.csv', index=False)

This ensures each country’s output contains one record per (year, source, target) with summed hectare values, even if that country has multiple boundary parts.

Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "742d308f-2b04-4193-bf12-c4af6ee86f96",
"metadata": {},
"source": [
"# Extract country table\n",
"\n",
"This small utility script reads your master ESACCI/MCD12Q1 land‐cover transition table, groups rows by each country’s ISO3 code, and then writes out one CSV per country containing only the four columns you need (`year`, `source`, `target`, and `value`). It creates the output folder if it doesn’t already exist, loads the full transitions file into a DataFrame, loops over every unique `iso_3` code, filters to that country’s records, renames `hectares` to `value`, and saves the result as `transitions_{ISO3}.csv`. A brief printout confirms how many rows were written for each country.\n"
]
},
{
"cell_type": "markdown",
"id": "c449c997-5b4d-4331-9e14-949d5689d0d6",
"metadata": {},
"source": [
"### ESACCI LCCS"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "39929c7f-47f5-4ba4-9340-9208eaee2e9e",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ABW.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_AFG.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_AGO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_AIA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ALA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ALB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_AND.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ARE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ARG.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ARM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ASM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ATA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ATF.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ATG.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_AUS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_AUT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_AZE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BDI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BEL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BEN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BES.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BFA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BGD.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BGR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BHR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BHS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BIH.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BLM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BLR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BLZ.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BMU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BOL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BRA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BRB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BRN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BTN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BVT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_BWA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CAF.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CAN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CCK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CHE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CHL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CHN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CIV.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CMR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_COD.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_COG.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_COK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_COL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_COM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CPT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CPV.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CRI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CUB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CUW.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CXR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CYM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CYP.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_CZE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_DEU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_DJI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_DMA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_DNK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_DOM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_DZA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ECU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_EGY.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ERI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ESH.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ESP.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_EST.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ETH.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_FIN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_FJI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_FLK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_FRA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_FRO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_FSM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GAB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GBR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GEO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GGY.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GHA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GIB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GIN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GLP.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GMB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GNB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GNQ.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GRC.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GRD.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GRL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GTM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GUF.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GUM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_GUY.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_HKG.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_HMD.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_HND.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_HRV.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_HTI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_HUN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_IDN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_IMN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_IND.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_IOT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_IRL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_IRN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_IRQ.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ISL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ISR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ITA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_JAM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_JEY.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_JOR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_JPN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_KAZ.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_KEN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_KGZ.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_KHM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_KIR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_KNA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_KOR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_KWT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LAO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LBN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LBR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LBY.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LCA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LIE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LKA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LSO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LTU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LUX.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_LVA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MAC.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MAF.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MAR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MCO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MDA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MDG.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MDV.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MEX.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MHL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MKD.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MLI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MLT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MMR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MNE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MNG.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MNP.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MOZ.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MRT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MSR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MTQ.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MUS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MWI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MYS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_MYT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NAM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NCL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NER.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NFK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NGA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NIC.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NIU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NLD.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NOR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NPL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NRU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_NZL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_OMN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PAK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PAN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PCN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PER.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PHL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PLW.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PNG.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_POL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PRI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PRK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PRT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PRY.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PSE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_PYF.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_QAT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_REU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ROU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_RUS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_RWA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SAU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SDN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SEN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SGP.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SGS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SHN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SJM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SLB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SLE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SLV.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SMR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SOM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SPM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SRB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SSD.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_STP.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SUR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SVK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SVN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SWE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SWZ.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SXM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SYC.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_SYR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TCA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TCD.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TGO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_THA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TJK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TKL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TKM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TLS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TON.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TTO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TUN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TUR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TUV.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TWN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_TZA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_UGA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_UKR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_UMI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_URY.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_USA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_UZB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_VAT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_VCT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_VEN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_VGB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_VIR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_VNM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_VUT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_WLF.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_WSM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XAB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XAC.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XAK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XAP.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XCE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XCH.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XCR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XDE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XDI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XDS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XGH.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XHI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XHT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XIB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XIK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XIT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XJK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XJL.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XJN.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XKA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XKI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XKK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XKO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XKT.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XKU.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XKX.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XLB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XLE.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XLR.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XMA.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XMB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XMO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XMS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XPH.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XPI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XSI.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XSK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XSP.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XSS.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XUK.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_XVO.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_YEM.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ZAF.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ZMB.csv\n",
"Wrote 41070 records to /mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3/transitions_ZWE.csv\n"
]
}
],
"source": [
"import os\n",
"import pandas as pd\n",
"\n",
"# ── CONFIG ────────────────────────────────────────────────────────────────────\n",
"# Path to the combined transitions CSV you generated\n",
"input_csv = \"/mnt/g/temp/esaccilc/zonal_stats/wld_phy_esaccilc_lccs_transitions_1993_2022.csv\"\n",
"\n",
"# Directory to hold the per-ISO3 outputs\n",
"output_dir = \"/mnt/g/temp/esaccilc/zonal_stats/esaccilc_lccs_transitions_by_iso3\"\n",
"# ───────────────────────────────────────────────────────────────────────────────\n",
"\n",
"os.makedirs(output_dir, exist_ok=True)\n",
"\n",
"# Read the full transitions table\n",
"df = pd.read_csv(input_csv)\n",
"\n",
"# For each country code, filter and write its own CSV\n",
"for iso in df[\"iso_3\"].unique():\n",
" sub = (\n",
" df[df[\"iso_3\"] == iso]\n",
" .groupby([\"year\",\"source\",\"target\"], as_index=False)[\"hectares\"]\n",
" .sum()\n",
" .rename(columns={\"hectares\": \"value\"})\n",
" )\n",
" out_path = os.path.join(output_dir, f\"transitions_{iso}.csv\")\n",
" sub.to_csv(out_path, index=False)\n",
" print(f\"Wrote {len(sub)} records to {out_path}\")\n"
]
},
{
"cell_type": "markdown",
"id": "566ccafd-1903-4ef9-a05c-1820f8aceb9e",
"metadata": {},
"source": [
"### MCD12Q1"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "1cf7f8ad-36d0-4079-9c35-a502848f1ca2",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ABW.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_AFG.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_AGO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_AIA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ALA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ALB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_AND.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ARE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ARG.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ARM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ASM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ATA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ATF.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ATG.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_AUS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_AUT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_AZE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BDI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BEL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BEN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BES.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BFA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BGD.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BGR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BHR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BHS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BIH.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BLM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BLR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BLZ.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BMU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BOL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BRA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BRB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BRN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BTN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BVT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_BWA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CAF.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CAN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CCK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CHE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CHL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CHN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CIV.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CMR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_COD.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_COG.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_COK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_COL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_COM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CPT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CPV.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CRI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CUB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CUW.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CXR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CYM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CYP.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_CZE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_DEU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_DJI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_DMA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_DNK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_DOM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_DZA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ECU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_EGY.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ERI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ESH.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ESP.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_EST.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ETH.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_FIN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_FJI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_FLK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_FRA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_FRO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_FSM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GAB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GBR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GEO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GGY.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GHA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GIB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GIN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GLP.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GMB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GNB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GNQ.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GRC.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GRD.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GRL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GTM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GUF.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GUM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_GUY.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_HKG.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_HMD.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_HND.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_HRV.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_HTI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_HUN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_IDN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_IMN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_IND.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_IOT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_IRL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_IRN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_IRQ.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ISL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ISR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ITA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_JAM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_JEY.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_JOR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_JPN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_KAZ.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_KEN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_KGZ.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_KHM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_KIR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_KNA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_KOR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_KWT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LAO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LBN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LBR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LBY.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LCA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LIE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LKA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LSO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LTU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LUX.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_LVA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MAC.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MAF.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MAR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MCO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MDA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MDG.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MDV.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MEX.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MHL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MKD.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MLI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MLT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MMR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MNE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MNG.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MNP.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MOZ.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MRT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MSR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MTQ.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MUS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MWI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MYS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_MYT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NAM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NCL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NER.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NFK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NGA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NIC.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NIU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NLD.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NOR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NPL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NRU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_NZL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_OMN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PAK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PAN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PCN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PER.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PHL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PLW.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PNG.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_POL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PRI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PRK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PRT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PRY.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PSE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_PYF.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_QAT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_REU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ROU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_RUS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_RWA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SAU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SDN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SEN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SGP.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SGS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SHN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SJM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SLB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SLE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SLV.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SMR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SOM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SPM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SRB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SSD.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_STP.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SUR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SVK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SVN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SWE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SWZ.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SXM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SYC.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_SYR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TCA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TCD.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TGO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_THA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TJK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TKL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TKM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TLS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TON.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TTO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TUN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TUR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TUV.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TWN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_TZA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_UGA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_UKR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_UMI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_URY.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_USA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_UZB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_VAT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_VCT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_VEN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_VGB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_VIR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_VNM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_VUT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_WLF.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_WSM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XAB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XAC.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XAK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XAP.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XCE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XCH.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XCR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XDE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XDI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XDS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XGH.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XHI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XHT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XIB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XIK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XIT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XJK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XJL.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XJN.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XKA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XKI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XKK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XKO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XKT.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XKU.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XKX.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XLB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XLE.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XLR.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XMA.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XMB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XMO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XMS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XPH.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XPI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XSI.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XSK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XSP.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XSS.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XUK.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_XVO.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_YEM.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ZAF.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ZMB.csv\n",
"Wrote 6358 aggregated records to /mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3/transitions_ZWE.csv\n"
]
}
],
"source": [
"import os\n",
"import pandas as pd\n",
"\n",
"# ── CONFIG ────────────────────────────────────────────────────────────────────\n",
"input_csv = \"/mnt/g/temp/mcd12q1/zonal_stats/wld_phy_mcd12q1_igbp_transitions_2002_2023.csv\"\n",
"output_dir = \"/mnt/g/temp/mcd12q1/zonal_stats/mcd12q1_igbp_transitions_by_iso3\"\n",
"# ───────────────────────────────────────────────────────────────────────────────\n",
"\n",
"os.makedirs(output_dir, exist_ok=True)\n",
"\n",
"# Read the full transitions table\n",
"df = pd.read_csv(input_csv)\n",
"\n",
"# For each country code, sum across any multiple polygons\n",
"for iso in df[\"iso_3\"].unique():\n",
" sub = (\n",
" df[df[\"iso_3\"] == iso]\n",
" .groupby([\"year\",\"source\",\"target\"], as_index=False)[\"hectares\"]\n",
" .sum()\n",
" .rename(columns={\"hectares\": \"value\"})\n",
" )\n",
" out_path = os.path.join(output_dir, f\"transitions_{iso}.csv\")\n",
" sub.to_csv(out_path, index=False)\n",
" print(f\"Wrote {len(sub)} aggregated records to {out_path}\")\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ac4af5f0-fccf-4d76-ac06-f74ed15f92dc",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment