46
Total runs
38
Successful
8
Failed
83%
Success rate
25
Known outputs
2026-05-09
Last run
About This System
Coverage
Ethiopia, Kenya and Somalia.
Variables
Daily temperature (tas), relative humidity (rh), vapour pressure deficit (vpd) and precipitation (pr) at 0.25Β° resolution.
Sources
AgERA5 reanalysis (historical), CHIRPS v2 (precipitation), ISIMIP3b projections (SSP2-4.5 Β· SSP5-8.5).
Quality
Every output validated for time coverage, grid consistency, unit correctness and spatial bounds before delivery.
Data Inventory
| Country | Variable | Scenario | Period | Status | Run ID | Date | Duration |
|---|---|---|---|---|---|---|---|
| ETH | pr | historical | 2010β2025 | SUCCESS | run_20260508_135829 | 2026-05-08 | 0s |
| ETH | pr | ssp245 | 2040β2070 | SUCCESS | run_20260509_135031 | 2026-05-09 | 33s |
| ETH | rh | historical | 2010β2025 | SUCCESS | run_20260508_135829 | 2026-05-08 | 0s |
| ETH | rh | ssp245 | 2040β2070 | SUCCESS | run_20260509_135244 | 2026-05-09 | 20s |
| ETH | tas | historical | 2010β2025 | SUCCESS | run_20260508_135829 | 2026-05-08 | 0s |
| ETH | tas | historical | 2010β2020 | FAILED | run_20260507_203252 | 2026-05-07 | 14s |
| ETH | tas | ssp245 | 2040β2070 | SUCCESS | run_20260509_135244 | 2026-05-09 | 20s |
| ETH | vpd | historical | 2010β2025 | SUCCESS | run_20260508_135829 | 2026-05-08 | 0s |
| ETH | vpd | ssp245 | 2040β2070 | SUCCESS | run_20260509_135244 | 2026-05-09 | 20s |
| KEN | pr | historical | 2010β2025 | SUCCESS | run_20260508_141138 | 2026-05-08 | 3s |
| KEN | pr | ssp245 | 2040β2070 | SUCCESS | run_20260509_135904 | 2026-05-09 | 82s |
| KEN | rh | historical | 2010β2025 | SUCCESS | run_20260509_075815 | 2026-05-09 | 10s |
| KEN | rh | ssp245 | 2040β2070 | SUCCESS | run_20260509_135904 | 2026-05-09 | 82s |
| KEN | tas | historical | 2010β2025 | FAILED | run_20260509_065040 | 2026-05-09 | 1726s |
| KEN | tas | ssp245 | 2040β2070 | SUCCESS | run_20260509_135904 | 2026-05-09 | 82s |
| KEN | vpd | historical | 2010β2025 | SUCCESS | run_20260509_075902 | 2026-05-09 | 46s |
| KEN | vpd | ssp245 | 2040β2070 | SUCCESS | run_20260509_135904 | 2026-05-09 | 82s |
| SOM | pr | historical | 2010β2025 | SUCCESS | run_20260509_092108 | 2026-05-09 | 50s |
| SOM | pr | ssp245 | 2040β2070 | SUCCESS | run_20260509_140057 | 2026-05-09 | 91s |
| SOM | rh | historical | 2010β2025 | SUCCESS | run_20260509_092408 | 2026-05-09 | 131s |
| SOM | rh | ssp245 | 2040β2070 | SUCCESS | run_20260509_140057 | 2026-05-09 | 91s |
| SOM | tas | historical | 2010β2025 | SUCCESS | run_20260509_093328 | 2026-05-09 | 1710s |
| SOM | tas | ssp245 | 2040β2070 | SUCCESS | run_20260509_140057 | 2026-05-09 | 91s |
| SOM | vpd | historical | 2010β2025 | SUCCESS | run_20260509_130438 | 2026-05-09 | 1483s |
| SOM | vpd | ssp245 | 2040β2070 | SUCCESS | run_20260509_140057 | 2026-05-09 | 91s |
Run History
SUCCESS run_20260509_140057
SUCCESS run_20260509_140057
Python 3.13.3
xarray 2026.4.0
commit de9d8d3
mode strict
SUCCESS regrid β som / pr,rh,tas,vpd (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country somalia --scenario ssp_245 --variable pr rh tas --start-year 2040 --end-year 2070 --max-workers 1
| somalia_pr_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
| somalia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
| somalia_tas_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β SKIP |
| distribution | β OK |
| _grid_consistency | |
| somalia_pr_ssp245_2040_2070_025deg_clipped.nc | β OK |
| somalia_rh_ssp245_2040_2070_025deg_clipped.nc | β OK |
| somalia_tas_ssp245_2040_2070_025deg_clipped.nc | β OK |
stdout
Completed in 5.46s Validated rename/regrid output in 0.52s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/somalia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/somalia_adm0.geojson --output data/merged_files/somalia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 1 Completed in 7.21s Validated clipped output in 1.01s Workflow slice completed in 14.21s === somalia ssp_245 tas === Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-somalia/ssp_245/tas --target-grid data/merged_files/somalia_pr_2010_2025.nc --output data/merged_files/somalia_tas_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 --convert-kelvin-to-celsius Completed in 5.24s Validated rename/regrid output in 0.58s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/somalia_tas_ssp245_2040_2070_025deg.nc --boundary data/boundaries/somalia_adm0.geojson --output data/merged_files/somalia_tas_ssp245_2040_2070_025deg_clipped.nc --compression-level 1 Completed in 7.03s Validated clipped output in 1.00s Workflow slice completed in 13.85s Workflow completed successfully.
SUCCESS vpd_compute β som / pr,rh,tas,vpd (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_future_vpd_workflow.py --country somalia --scenario ssp_245 --start-year 2040 --end-year 2070 --max-workers 1 --run-diagnostics
| somalia_vpd_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
- QC JSON sidecar written to: data\merged_files_so\diagnostics\somalia_vpd_ssp245_2040_2070_025deg_clipped_qc.json === somalia ssp_245 vpd === [somalia ssp_245] Checking input files... [somalia ssp_245] Opening inputs... [somalia ssp_245] Resampling tas to daily mean... [somalia ssp_245] Resampling rh to daily mean... [somalia ssp_245] Checking requested year coverage... [somalia ssp_245] Aligning daily tas and rh timestamps... [somalia ssp_245] Computing Tetens VPD... [somalia ssp_245] Checking aligned output coverage... [somalia ssp_245] Writing output to data/merged_files/somalia_vpd_ssp245_2040_2070_025deg_clipped.nc... Wrote output file: D:\IRLI\climate-agent\data\merged_files\somalia_vpd_ssp245_2040_2070_025deg_clipped.nc [somalia ssp_245] Validating output... [somalia ssp_245] Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/somalia_vpd_ssp245_2040_2070_025deg_clipped.nc --var vpd --time-index 6416 --out-dir data/merged_files_so/diagnostics Completed in 6.20s Workflow slice completed in 12.51s Future VPD workflow completed successfully.
somalia_pr_ssp245_2040_2070_025deg_clipped.nc
Variable
pr (mm/day)
Dimensions
11323 time Γ 54 lat Γ 41 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -1.375β11.875,
lon 41.125β51.125
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
36.4% non-NaN pixels
Value range
0.0 β 280.5728
Mean Β± std
0.7795 Β± 3.7549
Percentiles
p05=0.0 p25=0.0
p50=0.0 p75=0.0491
p95=3.8159
somalia_rh_ssp245_2040_2070_025deg_clipped.nc
Variable
rh (%)
Dimensions
11323 time Γ 54 lat Γ 41 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -1.375β11.875,
lon 41.125β51.125
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
36.4% non-NaN pixels
Value range
8.4327 β 97.675
Mean Β± std
60.624 Β± 11.9862
Percentiles
p05=40.8207 p25=51.927
p50=60.8223 p75=69.5648
p95=79.8854
somalia_tas_ssp245_2040_2070_025deg_clipped.nc
Variable
tas (degC)
Dimensions
11323 time Γ 54 lat Γ 41 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -1.375β11.875,
lon 41.125β51.125
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
36.4% non-NaN pixels
Value range
15.3538 β 38.3201
Mean Β± std
28.1926 Β± 2.6571
Percentiles
p05=22.9786 p25=26.9163
p50=28.4878 p75=29.9112
p95=32.0141
somalia_vpd_ssp245_2040_2070_025deg_clipped.nc
Variable
vpd (hPa)
Dimensions
11323 time Γ 54 lat Γ 41 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -1.375β11.875,
lon 41.125β51.125
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
36.4% non-NaN pixels
Value range
0.7325 β 48.2182
Mean Β± std
15.3373 Β± 5.6651
Percentiles
p05=7.1034 p25=11.1593
p50=14.7892 p75=18.904
p95=25.478
SUCCESS run_20260509_135904
SUCCESS run_20260509_135904
Python 3.13.3
xarray 2026.4.0
commit de9d8d3
mode strict
SUCCESS regrid β ken / pr,rh,tas,vpd (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country kenya --scenario ssp_245 --variable pr rh tas --start-year 2040 --end-year 2070 --max-workers 1
| kenya_pr_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
| kenya_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
| kenya_tas_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β SKIP |
| distribution | β OK |
| _grid_consistency | |
| kenya_pr_ssp245_2040_2070_025deg_clipped.nc | β OK |
| kenya_rh_ssp245_2040_2070_025deg_clipped.nc | β OK |
| kenya_tas_ssp245_2040_2070_025deg_clipped.nc | β OK |
stdout
Completed in 5.08s Validated rename/regrid output in 0.45s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/kenya_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/kenya_adm0.geojson --output data/merged_files/kenya_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 1 Completed in 5.31s Validated clipped output in 0.76s Workflow slice completed in 11.61s === kenya ssp_245 tas === Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-kenya/ssp_245/tas --target-grid data/merged_files/kenya_pr_2010_2025.nc --output data/merged_files/kenya_tas_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 --convert-kelvin-to-celsius Completed in 5.11s Validated rename/regrid output in 0.42s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/kenya_tas_ssp245_2040_2070_025deg.nc --boundary data/boundaries/kenya_adm0.geojson --output data/merged_files/kenya_tas_ssp245_2040_2070_025deg_clipped.nc --compression-level 1 Completed in 4.99s Validated clipped output in 0.77s Workflow slice completed in 11.29s Workflow completed successfully.
SUCCESS vpd_compute β ken / pr,rh,tas,vpd (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_future_vpd_workflow.py --country kenya --scenario ssp_245 --start-year 2040 --end-year 2070 --max-workers 1 --run-diagnostics
| kenya_vpd_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
- QC JSON sidecar written to: data\merged_files_ke\diagnostics\kenya_vpd_ssp245_2040_2070_025deg_clipped_qc.json === kenya ssp_245 vpd === [kenya ssp_245] Checking input files... [kenya ssp_245] Opening inputs... [kenya ssp_245] Resampling tas to daily mean... [kenya ssp_245] Resampling rh to daily mean... [kenya ssp_245] Checking requested year coverage... [kenya ssp_245] Aligning daily tas and rh timestamps... [kenya ssp_245] Computing Tetens VPD... [kenya ssp_245] Checking aligned output coverage... [kenya ssp_245] Writing output to data/merged_files/kenya_vpd_ssp245_2040_2070_025deg_clipped.nc... Wrote output file: D:\IRLI\climate-agent\data\merged_files\kenya_vpd_ssp245_2040_2070_025deg_clipped.nc [kenya ssp_245] Validating output... [kenya ssp_245] Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/kenya_vpd_ssp245_2040_2070_025deg_clipped.nc --var vpd --time-index 6416 --out-dir data/merged_files_ke/diagnostics Completed in 6.54s Workflow slice completed in 12.13s Future VPD workflow completed successfully.
kenya_pr_ssp245_2040_2070_025deg_clipped.nc
Variable
pr (mm/day)
Dimensions
11323 time Γ 39 lat Γ 31 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -4.625β4.875,
lon 34.125β41.625
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
61.8% non-NaN pixels
Value range
0.0 β 202.3472
Mean Β± std
1.6682 Β± 4.7783
Percentiles
p05=0.0 p25=0.0
p50=0.0 p75=0.8597
p95=9.2891
kenya_rh_ssp245_2040_2070_025deg_clipped.nc
Variable
rh (%)
Dimensions
11323 time Γ 39 lat Γ 31 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -4.625β4.875,
lon 34.125β41.625
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
61.8% non-NaN pixels
Value range
9.0199 β 99.0484
Mean Β± std
61.2257 Β± 13.109
Percentiles
p05=39.9706 p25=51.523
p50=61.1055 p75=71.3505
p95=82.257
kenya_tas_ssp245_2040_2070_025deg_clipped.nc
Variable
tas (degC)
Dimensions
11323 time Γ 39 lat Γ 31 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -4.625β4.875,
lon 34.125β41.625
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
61.8% non-NaN pixels
Value range
10.9518 β 35.1729
Mean Β± std
26.2802 Β± 3.8766
Percentiles
p05=18.6633 p25=23.9223
p50=27.1651 p75=29.1741
p95=31.3182
kenya_vpd_ssp245_2040_2070_025deg_clipped.nc
Variable
vpd (hPa)
Dimensions
11323 time Γ 39 lat Γ 31 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -4.625β4.875,
lon 34.125β41.625
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
61.8% non-NaN pixels
Value range
0.1645 β 41.3676
Mean Β± std
14.0058 Β± 6.4295
Percentiles
p05=4.5324 p25=8.8494
p50=13.499 p75=18.6372
p95=25.1832
SUCCESS run_20260509_135244
SUCCESS run_20260509_135244
Python 3.13.3
xarray 2026.4.0
commit de9d8d3
mode strict
SKIPPED regrid β eth / rh,tas,vpd (exit 0, attempt 1)
(skipped β outputs exist)
No validation recorded.
SKIPPED vpd_compute β eth / rh,tas,vpd (exit 0, attempt 1)
(skipped β outputs exist)
No validation recorded.
ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc
Variable
rh (%)
Dimensions
11323 time Γ 45 lat Γ 59 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat 3.625β14.625,
lon 33.125β47.625
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
55.7% non-NaN pixels
Value range
5.3271 β 99.3214
Mean Β± std
57.6185 Β± 17.6768
Percentiles
p05=29.4943 p25=43.9595
p50=56.5843 p75=72.9008
p95=85.0358
ethiopia_tas_ssp245_2040_2070_025deg_clipped.nc
Variable
tas (degC)
Dimensions
11323 time Γ 45 lat Γ 59 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat 3.625β14.625,
lon 33.125β47.625
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
55.7% non-NaN pixels
Value range
9.7947 β 38.1303
Mean Β± std
24.2131 Β± 4.2086
Percentiles
p05=17.5463 p25=20.9385
p50=24.2188 p75=27.4005
p95=31.0295
ethiopia_vpd_ssp245_2040_2070_025deg_clipped.nc
Variable
vpd (hPa)
Dimensions
11323 time Γ 45 lat Γ 59 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat 3.625β14.625,
lon 33.125β47.625
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
55.7% non-NaN pixels
Value range
0.2065 β 57.9346
Mean Β± std
13.8118 Β± 7.9114
Percentiles
p05=3.4914 p25=7.3701
p50=12.5822 p75=19.0429
p95=28.1894
SUCCESS run_20260509_135031
SUCCESS run_20260509_135031
Python 3.13.3
xarray 2026.4.0
commit de9d8d3
mode strict
SUCCESS regrid β eth / pr (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable pr --start-year 2040 --end-year 2070 --max-workers 1 --run-diagnostics
| ethiopia_pr_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
- Value max: 227.4901 - Value mean Β± std: 2.4584 Β± 7.3154 - Diagnostic plot written to: data\merged_files_et\diagnostics\ethiopia_pr_ssp245_2040_2070_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_et\diagnostics\ethiopia_pr_ssp245_2040_2070_025deg_clipped_qc.json === ethiopia ssp_245 pr === Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/pr --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_pr_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 --convert-pr-to-mm-day Completed in 6.29s Validated rename/regrid output in 1.70s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_pr_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_pr_ssp245_2040_2070_025deg_clipped.nc --compression-level 1 Completed in 6.85s Validated clipped output in 1.05s Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/ethiopia_pr_ssp245_2040_2070_025deg_clipped.nc --var pr --time-index 6416 --out-dir data/merged_files_et/diagnostics Completed in 6.68s Workflow slice completed in 22.73s Workflow completed successfully.
ethiopia_pr_ssp245_2040_2070_025deg_clipped.nc
Variable
pr (mm/day)
Dimensions
11323 time Γ 45 lat Γ 59 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat 3.625β14.625,
lon 33.125β47.625
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
55.7% non-NaN pixels
Value range
0.0 β 227.4901
Mean Β± std
2.4584 Β± 7.3154
Percentiles
p05=0.0 p25=0.0
p50=0.0 p75=0.5738
p95=15.7442
SUCCESS run_20260509_130438
SUCCESS run_20260509_130438
Python 3.13.3
xarray 2026.4.0
commit de9d8d3
mode strict
SUCCESS agera5_merge_som_vpd β som / vpd (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\merge_agera5_fast.py --country somalia --variable vpd --start 2010 --end 2025
No validation recorded.
stdout
[merge] 5844 files -> somalia_vpd_2010_2025.nc [year] 2010: 365 files ... 21.2 MB [year] 2011: 365 files ... 21.2 MB [year] 2012: 366 files ... 21.3 MB [year] 2013: 365 files ... 21.2 MB [year] 2014: 365 files ... 21.2 MB [year] 2015: 365 files ... 21.2 MB [year] 2016: 366 files ... 21.3 MB [year] 2017: 365 files ... 21.2 MB [year] 2018: 365 files ... 21.2 MB [year] 2019: 365 files ... 21.2 MB [year] 2020: 366 files ... 21.3 MB [year] 2021: 365 files ... 21.2 MB [year] 2022: 365 files ... 21.2 MB [year] 2023: 365 files ... 21.2 MB [year] 2024: 366 files ... 21.3 MB [year] 2025: 365 files ... 21.2 MB [concat] 16 years ... [write] 5844 time steps ... [ok] D:\IRLI\climate-agent\data\merged_files\somalia_vpd_2010_2025.nc
SUCCESS merge β som / vpd (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country somalia --variable vpd --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics --skip-merge
| somalia_vpd_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β OK |
| spatial_bounds | β OK |
| anomaly | β WARN |
| distribution | β OK |
stdout
- Value min: 1.5873 - Value p05/p25/median/p75/p95: 15.5795 / 23.4953 / 30.0542 / 35.8919 / 44.4936 - Value max: 87.2159 - Value mean Β± std: 29.9568 Β± 8.9851 - Diagnostic plot written to: data\merged_files_so\diagnostics\somalia_vpd_2010_2025_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_so\diagnostics\somalia_vpd_2010_2025_025deg_clipped_qc.json === somalia historical vpd === Skipping merge step and reusing existing merged file... Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/somalia_vpd_2010_2025.nc --target-grid data/merged_files/somalia_pr_2010_2025.nc --output data/merged_files/somalia_vpd_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 13.57s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/somalia_vpd_2010_2025_025deg.nc --boundary data/boundaries/somalia_adm0.geojson --output data/merged_files/somalia_vpd_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 4.73s Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/somalia_vpd_2010_2025_025deg_clipped.nc --var vpd --time-index 0 --out-dir data/merged_files_so/diagnostics Completed in 6.38s Historical workflow completed successfully.
somalia_vpd_2010_2025_025deg_clipped.nc
Variable
vpd (hPa)
Dimensions
5844 time Γ 54 lat Γ 41 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -1.375β11.875,
lon 41.125β51.125
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
37.3% non-NaN pixels
Value range
1.5873 β 87.2159
Mean Β± std
29.9568 Β± 8.9851
Percentiles
p05=15.5795 p25=23.4953
p50=30.0542 p75=35.8919
p95=44.4936
SUCCESS run_20260509_093328
SUCCESS run_20260509_093328
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SUCCESS agera5_merge_som_tas β som / tas (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\merge_agera5_fast.py --country somalia --variable temp --start 2010 --end 2025
No validation recorded.
stdout
[merge] 5844 files -> somalia_temp_2010_2025.nc [year] 2010: 365 files ... 21.2 MB [year] 2011: 365 files ... 21.2 MB [year] 2012: 366 files ... 21.3 MB [year] 2013: 365 files ... 21.2 MB [year] 2014: 365 files ... 21.2 MB [year] 2015: 365 files ... 21.2 MB [year] 2016: 366 files ... 21.3 MB [year] 2017: 365 files ... 21.2 MB [year] 2018: 365 files ... 21.2 MB [year] 2019: 365 files ... 21.2 MB [year] 2020: 366 files ... 21.3 MB [year] 2021: 365 files ... 21.2 MB [year] 2022: 365 files ... 21.2 MB [year] 2023: 365 files ... 21.2 MB [year] 2024: 366 files ... 21.3 MB [year] 2025: 365 files ... 21.2 MB [concat] 16 years ... [write] 5844 time steps ... [ok] D:\IRLI\climate-agent\data\merged_files\somalia_temp_2010_2025.nc
SUCCESS merge β som / tas (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country somalia --variable temp --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics --skip-merge
| somalia_temp_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β OK |
| spatial_bounds | β OK |
| anomaly | β SKIP |
| distribution | β OK |
stdout
- Value min: 10.1631 - Value p05/p25/median/p75/p95: 21.0219 / 25.2818 / 26.9939 / 28.4080 / 30.6044 - Value max: 38.2920 - Value mean Β± std: 26.6158 Β± 2.8915 - Diagnostic plot written to: data\merged_files_so\diagnostics\somalia_temp_2010_2025_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_so\diagnostics\somalia_temp_2010_2025_025deg_clipped_qc.json === somalia historical temp === Skipping merge step and reusing existing merged file... Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/somalia_temp_2010_2025.nc --target-grid data/merged_files/somalia_pr_2010_2025.nc --output data/merged_files/somalia_temp_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 27.44s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/somalia_temp_2010_2025_025deg.nc --boundary data/boundaries/somalia_adm0.geojson --output data/merged_files/somalia_temp_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 8.82s Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/somalia_temp_2010_2025_025deg_clipped.nc --var t2m --time-index 0 --out-dir data/merged_files_so/diagnostics Completed in 14.27s Historical workflow completed successfully.
somalia_temp_2010_2025_025deg_clipped.nc
Variable
t2m (Β°C)
Dimensions
5844 time Γ 54 lat Γ 41 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -1.375β11.875,
lon 41.125β51.125
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
37.3% non-NaN pixels
Value range
10.1631 β 38.292
Mean Β± std
26.6158 Β± 2.8915
Percentiles
p05=21.0219 p25=25.2818
p50=26.9939 p75=28.408
p95=30.6044
SUCCESS run_20260509_092408
SUCCESS run_20260509_092408
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SUCCESS merge β som / rh (exit 0, attempt 2)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country somalia --variable rh --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics --skip-merge
| somalia_rh_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β OK |
| spatial_bounds | β OK |
| anomaly | β OK |
| distribution | β OK |
stdout
- Value min: 5.4121 - Value p05/p25/median/p75/p95: 49.8514 / 72.3568 / 82.4859 / 88.1575 / 94.3362 - Value max: 100.0000 - Value mean Β± std: 78.6175 Β± 13.5768 - Diagnostic plot written to: data\merged_files_so\diagnostics\somalia_rh_2010_2025_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_so\diagnostics\somalia_rh_2010_2025_025deg_clipped_qc.json === somalia historical rh === Skipping merge step and reusing existing merged file... Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/somalia_rh_2010_2025.nc --target-grid data/merged_files/somalia_pr_2010_2025.nc --output data/merged_files/somalia_rh_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 22.37s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/somalia_rh_2010_2025_025deg.nc --boundary data/boundaries/somalia_adm0.geojson --output data/merged_files/somalia_rh_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 8.59s Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/somalia_rh_2010_2025_025deg_clipped.nc --var rh --time-index 0 --out-dir data/merged_files_so/diagnostics Completed in 10.89s Historical workflow completed successfully.
somalia_rh_2010_2025_025deg_clipped.nc
Variable
rh (%)
Dimensions
5844 time Γ 54 lat Γ 41 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -1.375β11.875,
lon 41.125β51.125
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
37.3% non-NaN pixels
Value range
5.4121 β 100.0
Mean Β± std
78.6175 Β± 13.5768
Percentiles
p05=49.8514 p25=72.3568
p50=82.4859 p75=88.1575
p95=94.3362
SUCCESS run_20260509_092108
SUCCESS run_20260509_092108
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SUCCESS merge β som / pr (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country somalia --variable pr --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics
| somalia_pr_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
- Longitude step: 0.25 (ascending) - Time length: 5844 - Duplicate time values: 0 - Finite ratio: 0.3731 - Value min: 0.0000 - Value p05/p25/median/p75/p95: 0.0000 / 0.0000 / 0.0000 / 0.0000 / 5.3833 - Value max: 189.0288 - Value mean Β± std: 0.8171 Β± 3.4869 - Diagnostic plot written to: data\merged_files_so\diagnostics\somalia_pr_2010_2025_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_so\diagnostics\somalia_pr_2010_2025_025deg_clipped_qc.json === somalia historical pr === Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/somalia_pr_2010_2025.nc --boundary data/boundaries/somalia_adm0.geojson --output data/merged_files/somalia_pr_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 12.79s Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/somalia_pr_2010_2025_025deg_clipped.nc --var precip --time-index 0 --out-dir data/merged_files_so/diagnostics Completed in 14.32s Historical workflow completed successfully.
somalia_pr_2010_2025_025deg_clipped.nc
Variable
precip (mm/day)
Dimensions
5844 time Γ 54 lat Γ 41 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -1.375β11.875,
lon 41.125β51.125
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
37.3% non-NaN pixels
Value range
0.0 β 189.0288
Mean Β± std
0.8171 Β± 3.4869
Percentiles
p05=0.0 p25=0.0
p50=0.0 p75=0.0
p95=5.3833
SUCCESS run_20260509_080142
SUCCESS run_20260509_080142
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SUCCESS agera5_merge_som_rh β som / pr,rh,tas,vpd (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\merge_agera5_fast.py --country somalia --variable rh --start 2010 --end 2025
No validation recorded.
stdout
[merge] 5844 files -> somalia_rh_2010_2025.nc [year] 2010: 365 files ... 21.2 MB [year] 2011: 365 files ... 21.2 MB [year] 2012: 366 files ... 21.3 MB [year] 2013: 365 files ... 21.2 MB [year] 2014: 365 files ... 21.2 MB [year] 2015: 365 files ... 21.2 MB [year] 2016: 366 files ... 21.3 MB [year] 2017: 365 files ... 21.2 MB [year] 2018: 365 files ... 21.2 MB [year] 2019: 365 files ... 21.2 MB [year] 2020: 366 files ... 21.3 MB [year] 2021: 365 files ... 21.2 MB [year] 2022: 365 files ... 21.2 MB [year] 2023: 365 files ... 21.2 MB [year] 2024: 366 files ... 21.3 MB [year] 2025: 365 files ... 21.2 MB [concat] 16 years ... [write] 5844 time steps ... [ok] D:\IRLI\climate-agent\data\merged_files\somalia_rh_2010_2025.nc
SUCCESS run_20260509_075902
SUCCESS run_20260509_075902
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SUCCESS merge β ken / vpd (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country kenya --variable vpd --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics --skip-merge
| kenya_vpd_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β OK |
| spatial_bounds | β OK |
| anomaly | β OK |
| distribution | β OK |
stdout
- Value min: 1.9982 - Value p05/p25/median/p75/p95: 11.3114 / 19.4090 / 26.9387 / 34.2296 / 43.2219 - Value max: 71.0206 - Value mean Β± std: 26.9965 Β± 9.8746 - Diagnostic plot written to: data\merged_files_ke\diagnostics\kenya_vpd_2010_2025_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_ke\diagnostics\kenya_vpd_2010_2025_025deg_clipped_qc.json === kenya historical vpd === Skipping merge step and reusing existing merged file... Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/kenya_vpd_2010_2025.nc --target-grid data/merged_files/kenya_pr_2010_2025.nc --output data/merged_files/kenya_vpd_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 11.48s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/kenya_vpd_2010_2025_025deg.nc --boundary data/boundaries/kenya_adm0.geojson --output data/merged_files/kenya_vpd_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 8.41s Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/kenya_vpd_2010_2025_025deg_clipped.nc --var vpd --time-index 0 --out-dir data/merged_files_ke/diagnostics Completed in 7.55s Historical workflow completed successfully.
kenya_vpd_2010_2025_025deg_clipped.nc
Variable
vpd (hPa)
Dimensions
5844 time Γ 39 lat Γ 31 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -4.625β4.875,
lon 34.125β41.625
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
63.1% non-NaN pixels
Value range
1.9982 β 71.0206
Mean Β± std
26.9965 Β± 9.8746
Percentiles
p05=11.3114 p25=19.409
p50=26.9387 p75=34.2296
p95=43.2219
SUCCESS run_20260509_075815
SUCCESS run_20260509_075815
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SKIPPED merge β ken / rh (exit 0, attempt 1)
(skipped β outputs exist)
No validation recorded.
kenya_rh_2010_2025_025deg_clipped.nc
Variable
rh (%)
Dimensions
5844 time Γ 39 lat Γ 31 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -4.625β4.875,
lon 34.125β41.625
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
63.1% non-NaN pixels
Value range
10.8043 β 100.0
Mean Β± std
80.0391 Β± 13.4485
Percentiles
p05=53.4746 p25=72.1263
p50=83.1895 p75=90.381
p95=96.7813
FAILED run_20260509_065040
FAILED run_20260509_065040
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SUCCESS agera5_merge_ken_tas β ken / tas (exit 0, attempt 2)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\merge_agera5_fast.py --country kenya --variable temp --start 2010 --end 2025
No validation recorded.
stdout
[skip] kenya_temp_2010_2025.nc already exists
FAILED merge β ken / tas (exit 1, attempt 3)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country kenya --variable temp --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics --skip-merge
No validation recorded.
stdout
=== kenya historical temp === Skipping merge step and reusing existing merged file...
Tool run_historical_workflow.py failed after 3 attempt(s). Last stderr: elf._args, **kwargs)
File "src/netCDF4/_netCDF4.pyx", line 2521, in netCDF4._netCDF4.Dataset.__init__
File "src/netCDF4/_netCDF4.pyx", line 2158, in netCDF4._netCDF4._ensure_nc_success
OSError: [Errno -101] NetCDF: HDF error: 'D:\\IRLI\\climate-agent\\data\\merged_files\\kenya_temp_2010_2025.nc'
stderr
return cls(manager, group=group, mode=mode, lock=lock, autoclose=autoclose)
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\netCDF4_.py", line 429, in __init__
self.format = self.ds.data_model
^^^^^^^
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\netCDF4_.py", line 538, in ds
return self._acquire()
~~~~~~~~~~~~~^^
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\netCDF4_.py", line 532, in _acquire
with self._manager.acquire_context(needs_lock) as root:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "C:\Python313\Lib\contextlib.py", line 141, in __enter__
return next(self.gen)
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\file_manager.py", line 207, in acquire_context
file, cached = self._acquire_with_cache_info(needs_lock)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\file_manager.py", line 225, in _acquire_with_cache_info
file = self._opener(*self._args, **kwargs)
File "src/netCDF4/_netCDF4.pyx", line 2521, in netCDF4._netCDF4.Dataset.__init__
File "src/netCDF4/_netCDF4.pyx", line 2158, in netCDF4._netCDF4._ensure_nc_success
OSError: [Errno -101] NetCDF: HDF error: 'D:\\IRLI\\climate-agent\\data\\merged_files\\kenya_temp_2010_2025.nc'
FAILED run_20260508_215627
FAILED run_20260508_215627
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SUCCESS agera5_merge_ken_tas β ken / tas (exit 0, attempt 2)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\merge_agera5_fast.py --country kenya --variable temp --start 2010 --end 2025
No validation recorded.
stdout
[skip] kenya_temp_2010_2025.nc already exists
FAILED merge β ken / tas (exit 1, attempt 3)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country kenya --variable temp --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics --skip-merge
No validation recorded.
stdout
=== kenya historical temp === Skipping merge step and reusing existing merged file...
Tool run_historical_workflow.py failed after 3 attempt(s). Last stderr: elf._args, **kwargs)
File "src/netCDF4/_netCDF4.pyx", line 2521, in netCDF4._netCDF4.Dataset.__init__
File "src/netCDF4/_netCDF4.pyx", line 2158, in netCDF4._netCDF4._ensure_nc_success
OSError: [Errno -101] NetCDF: HDF error: 'D:\\IRLI\\climate-agent\\data\\merged_files\\kenya_temp_2010_2025.nc'
stderr
return cls(manager, group=group, mode=mode, lock=lock, autoclose=autoclose)
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\netCDF4_.py", line 429, in __init__
self.format = self.ds.data_model
^^^^^^^
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\netCDF4_.py", line 538, in ds
return self._acquire()
~~~~~~~~~~~~~^^
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\netCDF4_.py", line 532, in _acquire
with self._manager.acquire_context(needs_lock) as root:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "C:\Python313\Lib\contextlib.py", line 141, in __enter__
return next(self.gen)
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\file_manager.py", line 207, in acquire_context
file, cached = self._acquire_with_cache_info(needs_lock)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "D:\IRLI\climate-agent\climate-agent-env\Lib\site-packages\xarray\backends\file_manager.py", line 225, in _acquire_with_cache_info
file = self._opener(*self._args, **kwargs)
File "src/netCDF4/_netCDF4.pyx", line 2521, in netCDF4._netCDF4.Dataset.__init__
File "src/netCDF4/_netCDF4.pyx", line 2158, in netCDF4._netCDF4._ensure_nc_success
OSError: [Errno -101] NetCDF: HDF error: 'D:\\IRLI\\climate-agent\\data\\merged_files\\kenya_temp_2010_2025.nc'
SUCCESS run_20260508_141537
SUCCESS run_20260508_141537
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode fast
SUCCESS merge β ken / rh (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country kenya --variable rh --start-year 2010 --end-year 2025 --max-workers 1 --fast-mode --run-diagnostics
| kenya_rh_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
- Value max: 100.0000 - Value mean Β± std: 80.0391 Β± 13.4485 - Diagnostic plot written to: data\merged_files_ke\diagnostics\kenya_rh_2010_2025_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_ke\diagnostics\kenya_rh_2010_2025_025deg_clipped_qc.json === kenya historical rh === Running merge step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/merge_netcdf_kenya_relative_humidity.py --input-dir data/kenya_relative_humidity_mean/netcdf --output data/merged_files/kenya_rh_2010_2025.nc Completed in 13m 27.9s Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/kenya_rh_2010_2025.nc --target-grid data/merged_files/kenya_pr_2010_2025.nc --output data/merged_files/kenya_rh_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 4.81s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/kenya_rh_2010_2025_025deg.nc --boundary data/boundaries/kenya_adm0.geojson --output data/merged_files/kenya_rh_2010_2025_025deg_clipped.nc --compression-level 0 Completed in 3.44s Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/kenya_rh_2010_2025_025deg_clipped.nc --var rh --time-index 0 --out-dir data/merged_files_ke/diagnostics Completed in 3.66s Historical workflow completed successfully.
kenya_rh_2010_2025_025deg_clipped.nc
Variable
rh (%)
Dimensions
5844 time Γ 39 lat Γ 31 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -4.625β4.875,
lon 34.125β41.625
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
63.1% non-NaN pixels
Value range
10.8043 β 100.0
Mean Β± std
80.0391 Β± 13.4485
Percentiles
p05=53.4746 p25=72.1263
p50=83.1895 p75=90.381
p95=96.7813
SUCCESS run_20260508_141158
SUCCESS run_20260508_141158
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SUCCESS run_20260508_141138
SUCCESS run_20260508_141138
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
SKIPPED merge β ken / pr (exit 0, attempt 1)
(skipped β outputs exist)
No validation recorded.
kenya_pr_2010_2025_025deg_clipped.nc
Variable
precip (mm/day)
Dimensions
5844 time Γ 39 lat Γ 31 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat -4.625β4.875,
lon 34.125β41.625
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
63.1% non-NaN pixels
Value range
0.0 β 367.1527
Mean Β± std
1.8459 Β± 6.4147
Percentiles
p05=0.0 p25=0.0
p50=0.0 p75=0.0
p95=11.7318
SUCCESS run_20260508_135829
SUCCESS run_20260508_135829
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
FAILED run_20260508_111839
FAILED run_20260508_111839
Python 3.13.3
xarray 2026.4.0
commit 130e2bf
mode strict
FAILED merge β eth,ken,som / pr,tas,rh,vpd (exit 1, attempt 3)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia kenya somalia --variable pr temp rh vpd --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics
No validation recorded.
stdout
- Duplicate time values: 0 - Finite ratio: 0.5548 - Value min: 0.0000 - Value p05/p25/median/p75/p95: 0.0000 / 0.0000 / 0.0000 / 0.8443 / 14.4296 - Value max: 238.9802 - Value mean Β± std: 2.3226 Β± 5.8316 - Diagnostic plot written to: data\merged_files_et\diagnostics\ethiopia_pr_2010_2025_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_et\diagnostics\ethiopia_pr_2010_2025_025deg_clipped_qc.json === ethiopia historical pr === Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_pr_2010_2025.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_pr_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 11.74s Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/ethiopia_pr_2010_2025_025deg_clipped.nc --var precip --time-index 0 --out-dir data/merged_files_et/diagnostics Completed in 10.35s === ethiopia historical temp === Running merge step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/merge_netcdf_ethiopia_temperature.py --input-dir data/ethiopia_temperature/netcdf --output data/merged_files/ethiopia_temp_2010_2025.nc
Tool run_historical_workflow.py failed after 3 attempt(s). Last stderr: ess.CalledProcessError: Command '['D:\\IRLI\\climate-agent\\climate-agent-env\\Scripts\\python.exe', 'codes/merge_netcdf_ethiopia_temperature.py', '--input-dir', 'data/ethiopia_temperature/netcdf', '--output', 'data/merged_files/ethiopia_temp_2010_2025.nc']' returned non-zero exit status 3221226505.
stderr
Traceback (most recent call last): File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 381, inmain() ~~~~^^ File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 360, in main process_work_item(work_item, args) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 343, in process_work_item process_one(country, variable, args) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 249, in process_one run_command(merge_command, dry_run=args.dry_run) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 199, in run_command subprocess.run(command, cwd=WORKSPACE_ROOT, check=True) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python313\Lib\subprocess.py", line 577, in run raise CalledProcessError(retcode, process.args, output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['D:\\IRLI\\climate-agent\\climate-agent-env\\Scripts\\python.exe', 'codes/merge_netcdf_ethiopia_temperature.py', '--input-dir', 'data/ethiopia_temperature/netcdf', '--output', 'data/merged_files/ethiopia_temp_2010_2025.nc']' returned non-zero exit status 3221226505.
SUCCESS run_20260508_103743
SUCCESS run_20260508_103743
Python 3.13.3
xarray 2026.4.0
commit efe67fc
mode strict
SKIPPED merge β eth / pr (exit 0, attempt 1)
(skipped β outputs exist)
No validation recorded.
ethiopia_pr_2010_2025_025deg_clipped.nc
Variable
precip (mm/day)
Dimensions
5844 time Γ 45 lat Γ 59 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat 3.625β14.625,
lon 33.125β47.625
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
55.5% non-NaN pixels
Value range
0.0 β 238.9802
Mean Β± std
2.3226 Β± 5.8316
Percentiles
p05=0.0 p25=0.0
p50=0.0 p75=0.8443
p95=14.4296
SUCCESS run_20260507_212038
SUCCESS run_20260507_212038
Python 3.13.3
xarray 2026.4.0
commit 4e4c82b
mode strict
SUCCESS merge β eth / tas (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable temp --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics --skip-merge
| ethiopia_temp_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β OK |
| spatial_bounds | β OK |
| anomaly | β SKIP |
| distribution | β OK |
stdout
- Value min: 3.7380 - Value p05/p25/median/p75/p95: 14.4933 / 19.4721 / 23.4754 / 26.8846 / 31.2599 - Value max: 40.7170 - Value mean Β± std: 23.1780 Β± 5.1701 - Diagnostic plot written to: data\merged_files_et\diagnostics\ethiopia_temp_2010_2025_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_et\diagnostics\ethiopia_temp_2010_2025_025deg_clipped_qc.json === ethiopia historical temp === Skipping merge step and reusing existing merged file... Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/ethiopia_temp_2010_2025.nc --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_temp_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 3.75s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_temp_2010_2025_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_temp_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 3.05s Running diagnostics step... $ C:\Python313\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/ethiopia_temp_2010_2025_025deg_clipped.nc --var t2m --time-index 0 --out-dir data/merged_files_et/diagnostics Completed in 5.67s Historical workflow completed successfully.
ethiopia_temp_2010_2025_025deg_clipped.nc
Variable
t2m (Β°C)
Dimensions
5844 time Γ 45 lat Γ 59 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat 3.625β14.625,
lon 33.125β47.625
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
55.7% non-NaN pixels
Value range
3.738 β 40.717
Mean Β± std
23.178 Β± 5.1701
Percentiles
p05=14.4933 p25=19.4721
p50=23.4754 p75=26.8846
p95=31.2599
SUCCESS run_20260507_210718
SUCCESS run_20260507_210718
Python 3.13.3
xarray 2026.4.0
commit 6cc5098
mode strict
SUCCESS merge β eth / tas (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable temp --start-year 2010 --end-year 2025 --max-workers 1 --skip-merge
| ethiopia_temp_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β OK |
| spatial_bounds | β OK |
| anomaly | β SKIP |
| distribution | β OK |
stdout
Loaded source dataset from: data\merged_files\ethiopia_temp_2010_2025.nc Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_temp_2010_2025_025deg.nc Input: data\merged_files\ethiopia_temp_2010_2025_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_temp_2010_2025_025deg_clipped.nc === ethiopia historical temp === Skipping merge step and reusing existing merged file... Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/ethiopia_temp_2010_2025.nc --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_temp_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 6.92s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_temp_2010_2025_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_temp_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 3.92s Historical workflow completed successfully.
SUCCESS run_20260507_210607
SUCCESS run_20260507_210607
Python 3.13.3
xarray 2026.4.0
commit 6cc5098
mode strict
SKIPPED merge β eth / tas (exit 0, attempt 1)
(skipped β outputs exist)
No validation recorded.
SUCCESS run_20260507_210525
SUCCESS run_20260507_210525
Python 3.13.3
xarray 2026.4.0
commit 6cc5098
mode strict
SKIPPED merge β eth / tas (exit None, attempt 1)
(skipped β outputs exist)
No validation recorded.
FAILED run_20260507_203252
FAILED run_20260507_203252
Python 3.13.3
xarray 2026.4.0
commit 6cc5098
mode strict
FAILED merge β eth / tas (exit 143, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable temp --start-year 2010 --end-year 2020 --max-workers 1
No validation recorded.
stdout
=== ethiopia historical temp === Running merge step... $ C:\Python313\python.exe codes/merge_netcdf_ethiopia_temperature.py --input-dir data/ethiopia_temperature/netcdf --output data/merged_files/ethiopia_temp_2010_2020.nc
Tool run_historical_workflow.py failed after 1 attempt(s). Last stderr:
FAILED run_20260507_202952
FAILED run_20260507_202952
Python 3.13.3
xarray 2026.4.0
commit 6cc5098
mode strict
FAILED merge β eth / tas (exit 1, attempt 3)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable temp --start-year 2010 --end-year 2020 --max-workers 1
No validation recorded.
stdout
Found 5844 files Merged file written to: data\merged_files\ethiopia_temp_2010_2020.nc Time steps: 5844 === ethiopia historical temp === Running merge step... $ C:\Python313\python.exe codes/merge_netcdf_ethiopia_temperature.py --input-dir data/ethiopia_temperature/netcdf --output data/merged_files/ethiopia_temp_2010_2020.nc Completed in 10m 9.7s
Tool run_historical_workflow.py failed after 3 attempt(s). Last stderr: )
^
File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 264, in validate_output
raise ValueError(
f"Time range mismatch for {output_path.name}: {int(years.min())}-{int(years.max())}"
)
ValueError: Time range mismatch for ethiopia_temp_2010_2020.nc: 2010-2025
stderr
process_work_item(work_item, args)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 343, in process_work_item
process_one(country, variable, args)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 253, in process_one
validate_output(
~~~~~~~~~~~~~~~^
paths["raw_output"],
^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
end_year=args.end_year,
^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 264, in validate_output
raise ValueError(
f"Time range mismatch for {output_path.name}: {int(years.min())}-{int(years.max())}"
)
ValueError: Time range mismatch for ethiopia_temp_2010_2020.nc: 2010-2025
SUCCESS run_20260507_145941
SUCCESS run_20260507_145941
Python 3.13.3
xarray 2026.4.0
commit scripts:1c1bf3cf
mode fast
SUCCESS vpd_compute β eth / vpd (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_future_vpd_workflow.py --country ethiopia --scenario ssp_245 --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
| ethiopia_vpd_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
=== ethiopia ssp_245 vpd === [ethiopia ssp_245] Checking input files... [ethiopia ssp_245] Opening inputs... [ethiopia ssp_245] Resampling tas to daily mean... [ethiopia ssp_245] Resampling rh to daily mean... [ethiopia ssp_245] Checking requested year coverage... [ethiopia ssp_245] Aligning daily tas and rh timestamps... [ethiopia ssp_245] Computing Tetens VPD... [ethiopia ssp_245] Checking aligned output coverage... [ethiopia ssp_245] Writing output to data/merged_files/ethiopia_vpd_ssp245_2040_2070_025deg_clipped.nc... Wrote output file: D:\IRLI\climate-agent\data\merged_files\ethiopia_vpd_ssp245_2040_2070_025deg_clipped.nc [ethiopia ssp_245] Validating output... Workflow slice completed in 1.59s Future VPD workflow completed successfully.
SUCCESS run_20260507_145918
SUCCESS run_20260507_145918
Python 3.13.3
xarray 2026.4.0
commit scripts:1c1bf3cf
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode --run-diagnostics
| ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
- Value max: 99.3214 - Value mean Β± std: 57.6185 Β± 17.6768 - Diagnostic plot written to: data\merged_files_et\diagnostics\ethiopia_rh_ssp245_2040_2070_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_et\diagnostics\ethiopia_rh_ssp245_2040_2070_025deg_clipped_qc.json === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 3.65s Validated rename/regrid output in 0.88s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 1.94s Validated clipped output in 0.17s Running diagnostics step... $ C:\Python313\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --var rh --time-index 6416 --out-dir data/merged_files_et/diagnostics Completed in 4.97s Workflow slice completed in 11.69s Workflow completed successfully.
SUCCESS run_20260507_145642
SUCCESS run_20260507_145642
Python 3.13.3
xarray 2026.4.0
commit scripts:1c1bf3cf
mode fast
SUCCESS regrid β eth / tas (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable tas --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
| ethiopia_tas_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β SKIP |
| distribution | β OK |
stdout
Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). Converted from Kelvin to degC: tas. Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_tas_ssp245_2040_2070_025deg.nc Input: data\merged_files\ethiopia_tas_ssp245_2040_2070_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_tas_ssp245_2040_2070_025deg_clipped.nc === ethiopia ssp_245 tas === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/tas --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_tas_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 --convert-kelvin-to-celsius Completed in 3.81s Validated rename/regrid output in 0.73s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_tas_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_tas_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 1.77s Validated clipped output in 0.18s Workflow slice completed in 6.49s Workflow completed successfully.
FAILED run_20260507_145407
FAILED run_20260507_145407
Python 3.13.3
xarray 2026.4.0
commit scripts:1c1bf3cf
mode fast
FAILED merge β ken / pr (exit 1, attempt 3)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country kenya --variable pr --start-year 2010 --end-year 2025 --max-workers 1 --fast-mode
No validation recorded.
stdout
=== kenya historical pr ===
Tool run_historical_workflow.py failed after 3 attempt(s). Last stderr: ^^^^^^^^^^^^^^^
File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 218, in ensure_path_exists
raise FileNotFoundError(f"Expected output was not written: {path}")
FileNotFoundError: Expected output was not written: D:\IRLI\climate-agent\data\merged_files\kenya_pr_2010_2025.nc
stderr
Traceback (most recent call last): File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 380, inmain() ~~~~^^ File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 359, in main process_work_item(work_item, args) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 342, in process_work_item process_one(country, variable, args) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_historical_workflow.py", line 261, in process_one ensure_path_exists(paths["raw_output"]) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 218, in ensure_path_exists raise FileNotFoundError(f"Expected output was not written: {path}") FileNotFoundError: Expected output was not written: D:\IRLI\climate-agent\data\merged_files\kenya_pr_2010_2025.nc
SUCCESS run_20260507_144143
SUCCESS run_20260507_144143
Python 3.13.3
xarray 2026.4.0
commit scripts:1c1bf3cf
mode strict
SUCCESS merge β eth / pr (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable pr --start-year 2010 --end-year 2025 --max-workers 1 --run-diagnostics
| ethiopia_pr_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β OK |
| spatial_bounds | β OK |
| anomaly | β OK |
| distribution | β OK |
stdout
- Longitude step: 0.25 (ascending) - Time length: 5844 - Duplicate time values: 0 - Finite ratio: 0.5548 - Value min: 0.0000 - Value p05/p25/median/p75/p95: 0.0000 / 0.0000 / 0.0000 / 0.8443 / 14.4296 - Value max: 238.9802 - Value mean Β± std: 2.3226 Β± 5.8316 - Diagnostic plot written to: data\merged_files_et\diagnostics\ethiopia_pr_2010_2025_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_et\diagnostics\ethiopia_pr_2010_2025_025deg_clipped_qc.json === ethiopia historical pr === Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_pr_2010_2025.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_pr_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 3.66s Running diagnostics step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/ethiopia_pr_2010_2025_025deg_clipped.nc --var precip --time-index 0 --out-dir data/merged_files_et/diagnostics Completed in 5.38s Historical workflow completed successfully.
ethiopia_pr_2010_2025_025deg_clipped.nc
Variable
precip (mm/day)
Dimensions
5844 time Γ 45 lat Γ 59 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat 3.625β14.625,
lon 33.125β47.625
Timesteps
5844 (0 duplicates,
0 missing years)
Land coverage
55.5% non-NaN pixels
Value range
0.0 β 238.9802
Mean Β± std
2.3226 Β± 5.8316
Percentiles
p05=0.0 p25=0.0
p50=0.0 p75=0.8443
p95=14.4296
SUCCESS run_20260507_143528
SUCCESS run_20260507_143528
Python 3.13.3
xarray 2026.4.0
commit scripts:1c1bf3cf
mode fast
SUCCESS merge β eth / vpd (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable vpd --start-year 2010 --end-year 2025 --max-workers 1 --fast-mode
| ethiopia_vpd_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β WARN |
| distribution | β OK |
stdout
Time steps: 5844 Loaded source dataset from: data\merged_files\ethiopia_vpd_2010_2025.nc Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_vpd_2010_2025_025deg.nc Input: data\merged_files\ethiopia_vpd_2010_2025_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_vpd_2010_2025_025deg_clipped.nc === ethiopia historical vpd === Running merge step... $ C:\Python313\python.exe codes/merge_netcdf_ethiopia_vapour_pressure_deficit.py --input-dir data/ethiopia_vapour_pressure_deficit/netcdf --output data/merged_files/ethiopia_vpd_2010_2025.nc Completed in 11m 15.6s Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/ethiopia_vpd_2010_2025.nc --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_vpd_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 8.33s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_vpd_2010_2025_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_vpd_2010_2025_025deg_clipped.nc --compression-level 0 Completed in 2.18s Historical workflow completed successfully.
FAILED run_20260507_143033
FAILED run_20260507_143033
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
No validation recorded.
stdout
Loaded source dataset from: data\projection_data\isimip-download-ethiopia\ssp_245\hurs (4 files) Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Input: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 4.27s Validated rename/regrid output in 0.82s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 1.83s Validated clipped output in 0.18s Workflow slice completed in 7.10s Workflow completed successfully.
FAILED regrid β ken / rh (exit 1, attempt 3)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country kenya --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
No validation recorded.
stdout
Loaded source dataset from: data\projection_data\isimip-download-kenya\ssp_245\hurs (4 files) Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). === kenya ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-kenya/ssp_245/hurs --target-grid data/merged_files/kenya_pr_2010_2025.nc --output data/merged_files/kenya_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0
Tool run_projection_workflow.py failed after 3 attempt(s). Last stderr: data/isimip-download-kenya/ssp_245/hurs', '--target-grid', 'data/merged_files/kenya_pr_2010_2025.nc', '--output', 'data/merged_files/kenya_rh_ssp245_2040_2070_025deg.nc', '--method', 'linear', '--start-year', '2040', '--end-year', '2070', '--compression-level', '0']' returned non-zero exit status 1.
stderr
Traceback (most recent call last): File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 521, inmain() ~~~~^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 500, in main process_work_item(work_item, args) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 479, in process_work_item process_one(country, scenario, variable, args) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 414, in process_one run_command(rename_command, dry_run=args.dry_run) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 199, in run_command subprocess.run(command, cwd=WORKSPACE_ROOT, check=True) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python313\Lib\subprocess.py", line 577, in run raise CalledProcessError(retcode, process.args, output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['C:\\Python313\\python.exe', 'codes/rename_and_regrid_netcdf.py', '--source', 'data/projection_data/isimip-download-kenya/ssp_245/hurs', '--target-grid', 'data/merged_files/kenya_pr_2010_2025.nc', '--output', 'data/merged_files/kenya_rh_ssp245_2040_2070_025deg.nc', '--method', 'linear', '--start-year', '2040', '--end-year', '2070', '--compression-level', '0']' returned non-zero exit status 1.
SUCCESS run_20260507_143018
SUCCESS run_20260507_143018
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode --run-diagnostics
| ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
- Value max: 99.3214 - Value mean Β± std: 57.6185 Β± 17.6768 - Diagnostic plot written to: data\merged_files_et\diagnostics\ethiopia_rh_ssp245_2040_2070_025deg_clipped_diagnostic.png - QC JSON sidecar written to: data\merged_files_et\diagnostics\ethiopia_rh_ssp245_2040_2070_025deg_clipped_qc.json === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 3.65s Validated rename/regrid output in 0.88s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 1.94s Validated clipped output in 0.17s Running diagnostics step... $ C:\Python313\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --var rh --time-index 6416 --out-dir data/merged_files_et/diagnostics Completed in 4.97s Workflow slice completed in 11.69s Workflow completed successfully.
ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc
Variable
rh (%)
Dimensions
11323 time Γ 45 lat Γ 59 lon
Resolution
0.25Β° Γ 0.25Β°
Bbox
lat 3.625β14.625,
lon 33.125β47.625
Timesteps
11323 (0 duplicates,
0 missing years)
Land coverage
55.7% non-NaN pixels
Value range
5.3271 β 99.3214
Mean Β± std
57.6185 Β± 17.6768
Percentiles
p05=29.4943 p25=43.9595
p50=56.5843 p75=72.9008
p95=85.0358
SUCCESS run_20260507_142231
SUCCESS run_20260507_142231
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
| ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
Loaded source dataset from: data\projection_data\isimip-download-ethiopia\ssp_245\hurs (4 files) Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Input: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 4.26s Validated rename/regrid output in 0.73s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 2.13s Validated clipped output in 0.17s Workflow slice completed in 7.29s Workflow completed successfully.
WARNING run_20260507_133029
WARNING run_20260507_133029
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
WARNING merge β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable rh --start-year 2010 --end-year 2025 --max-workers 1 --fast-mode
| ethiopia_rh_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β FAIL |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
| anomaly | β OK |
| distribution | β OK |
stdout
Time steps: 5844 Loaded source dataset from: data\merged_files\ethiopia_rh_2010_2025.nc Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_2010_2025_025deg.nc Input: data\merged_files\ethiopia_rh_2010_2025_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_rh_2010_2025_025deg_clipped.nc === ethiopia historical rh === Running merge step... $ C:\Python313\python.exe codes/merge_netcdf_ethiopia_relative_humidity.py --input-dir data/ethiopia_relative_humidity_mean/netcdf --output data/merged_files/ethiopia_rh_2010_2025.nc Completed in 11m 30.9s Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/ethiopia_rh_2010_2025.nc --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 8.97s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_2010_2025_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_2010_2025_025deg_clipped.nc --compression-level 0 Completed in 3.49s Historical workflow completed successfully.
SUCCESS run_20260506_223547
SUCCESS run_20260506_223547
Python 3.13.3
xarray 2026.4.0
commit unknown
mode strict
SUCCESS merge β eth / tas (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable temp --start-year 2010 --end-year 2025 --max-workers 1
| ethiopia_temp_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
Time steps: 5844 Loaded source dataset from: data\merged_files\ethiopia_temp_2010_2025.nc Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_temp_2010_2025_025deg.nc Input: data\merged_files\ethiopia_temp_2010_2025_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_temp_2010_2025_025deg_clipped.nc === ethiopia historical temp === Running merge step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/merge_netcdf_ethiopia_temperature.py --input-dir data/ethiopia_temperature/netcdf --output data/merged_files/ethiopia_temp_2010_2025.nc Completed in 10m 38.4s Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/ethiopia_temp_2010_2025.nc --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_temp_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 4.28s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_temp_2010_2025_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_temp_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 3.66s Historical workflow completed successfully.
SUCCESS run_20260506_221419
SUCCESS run_20260506_221419
Python 3.13.3
xarray 2026.4.0
commit unknown
mode strict
SUCCESS merge β eth / rh (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable rh --start-year 2010 --end-year 2025 --max-workers 1
| ethiopia_rh_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
Time steps: 5844 Loaded source dataset from: data\merged_files\ethiopia_rh_2010_2025.nc Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_2010_2025_025deg.nc Input: data\merged_files\ethiopia_rh_2010_2025_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_rh_2010_2025_025deg_clipped.nc === ethiopia historical rh === Running merge step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/merge_netcdf_ethiopia_relative_humidity.py --input-dir data/ethiopia_relative_humidity_mean/netcdf --output data/merged_files/ethiopia_rh_2010_2025.nc Completed in 11m 15.7s Running rename/regrid step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/rename_and_regrid_netcdf.py --source data/merged_files/ethiopia_rh_2010_2025.nc --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_2010_2025_025deg.nc --method linear --compression-level 0 Completed in 10.67s Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_2010_2025_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 3.25s Historical workflow completed successfully.
SUCCESS run_20260506_221235
SUCCESS run_20260506_221235
Python 3.13.3
xarray 2026.4.0
commit unknown
mode strict
SUCCESS merge β eth / pr (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable pr --start-year 2010 --end-year 2025 --max-workers 1
| ethiopia_pr_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
Input: data\merged_files\ethiopia_pr_2010_2025.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_pr_2010_2025_025deg_clipped.nc === ethiopia historical pr === Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_pr_2010_2025.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_pr_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 2.74s Historical workflow completed successfully.
SUCCESS run_20260506_220945
SUCCESS run_20260506_220945
Python 3.13.3
xarray 2026.4.0
commit unknown
mode strict
SUCCESS merge β eth / pr (exit 0, attempt 1)
D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe D:\IRLI\climate-agent\scripts\run_historical_workflow.py --country ethiopia --variable pr --start-year 2010 --end-year 2025 --max-workers 1
| ethiopia_pr_2010_2025_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β OK |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
Input: data\merged_files\ethiopia_pr_2010_2025.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_pr_2010_2025_025deg_clipped.nc === ethiopia historical pr === Running clip step... $ D:\IRLI\climate-agent\climate-agent-env\Scripts\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_pr_2010_2025.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_pr_2010_2025_025deg_clipped.nc --compression-level 1 Completed in 3.87s Historical workflow completed successfully.
SUCCESS run_20260506_211432
SUCCESS run_20260506_211432
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
| ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
Loaded source dataset from: data\projection_data\isimip-download-ethiopia\ssp_245\hurs (4 files) Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Input: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 4.49s Validated rename/regrid output in 0.96s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 2.74s Validated clipped output in 0.24s Workflow slice completed in 8.44s Workflow completed successfully.
SUCCESS run_20260506_211253
SUCCESS run_20260506_211253
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
| ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
Loaded source dataset from: data\projection_data\isimip-download-ethiopia\ssp_245\hurs (4 files) Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Input: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 4.49s Validated rename/regrid output in 0.96s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 2.74s Validated clipped output in 0.24s Workflow slice completed in 8.44s Workflow completed successfully.
SUCCESS run_20260506_211201
SUCCESS run_20260506_211201
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
| ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
Loaded source dataset from: data\projection_data\isimip-download-ethiopia\ssp_245\hurs (4 files) Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Input: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 4.02s Validated rename/regrid output in 0.81s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 2.30s Validated clipped output in 0.22s Workflow slice completed in 7.35s Workflow completed successfully.
SUCCESS run_20260506_210848
SUCCESS run_20260506_210848
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode --run-diagnostics
| ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
- Value min: 5.3271 - Value max: 99.3214 - Value mean: 57.6185 - Diagnostic plot written to: data\merged_files_et\diagnostics\ethiopia_rh_ssp245_2040_2070_025deg_clipped_diagnostic.png === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 4.33s Validated rename/regrid output in 0.82s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 2.13s Validated clipped output in 0.20s Running diagnostics step... $ C:\Python313\python.exe codes/diagnose_final_netcdf.py --file data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --var rh --time-index 6416 --out-dir data/merged_files_et/diagnostics Completed in 5.80s Workflow slice completed in 13.40s Workflow completed successfully.
SUCCESS run_20260506_210707
SUCCESS run_20260506_210707
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
| ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
Loaded source dataset from: data\projection_data\isimip-download-ethiopia\ssp_245\hurs (4 files) Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Input: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 3.96s Validated rename/regrid output in 0.76s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 2.17s Validated clipped output in 0.20s Workflow slice completed in 7.09s Workflow completed successfully.
SUCCESS run_20260506_210616
SUCCESS run_20260506_210616
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
SUCCESS regrid β eth / rh (exit 0, attempt 1)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
| ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc | |
| existence | β OK |
| variable_present | β OK |
| non_nan_coverage | β OK |
| time_coverage | β OK |
| daily_axis | β OK |
| units | β SKIP |
| grid_match | β SKIP |
| spatial_bounds | β SKIP |
stdout
Loaded source dataset from: data\projection_data\isimip-download-ethiopia\ssp_245\hurs (4 files) Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Input: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc Boundary: data\boundaries\ethiopia_adm0.geojson Output: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 4.64s Validated rename/regrid output in 1.19s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0 Completed in 3.23s Validated clipped output in 0.29s Workflow slice completed in 9.35s Workflow completed successfully.
FAILED run_20260506_205337
FAILED run_20260506_205337
Python 3.13.3
xarray 2026.4.0
commit unknown
mode fast
FAILED regrid β eth / rh (exit 1, attempt 3)
C:\Python313\python.exe D:\IRLI\climate-agent\scripts\run_projection_workflow.py --country ethiopia --scenario ssp_245 --variable rh --start-year 2040 --end-year 2070 --max-workers 1 --fast-mode
No validation recorded.
stdout
Loaded source dataset from: data\projection_data\isimip-download-ethiopia\ssp_245\hurs (4 files) Clipped source dataset to years 2040-2070 on 'time' (14610 -> 11323 records). Applied variable renaming and regridding using target grid: data\merged_files\ethiopia_pr_2010_2025.nc (method=linear). Wrote output file: data\merged_files\ethiopia_rh_ssp245_2040_2070_025deg.nc === ethiopia ssp_245 rh === Running rename/regrid step... $ C:\Python313\python.exe codes/rename_and_regrid_netcdf.py --source data/projection_data/isimip-download-ethiopia/ssp_245/hurs --target-grid data/merged_files/ethiopia_pr_2010_2025.nc --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --method linear --start-year 2040 --end-year 2070 --compression-level 0 Completed in 3.61s Validated rename/regrid output in 0.78s Running clip step... $ C:\Python313\python.exe codes/clip_netcdf_by_shapefile.py --input data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc --boundary data/boundaries/ethiopia_adm0.geojson --output data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc --compression-level 0
Tool run_projection_workflow.py failed after 3 attempt(s). Last stderr: es/clip_netcdf_by_shapefile.py', '--input', 'data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc', '--boundary', 'data/boundaries/ethiopia_adm0.geojson', '--output', 'data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc', '--compression-level', '0']' returned non-zero exit status 1.
stderr
Traceback (most recent call last): File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 521, inmain() ~~~~^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 500, in main process_work_item(work_item, args) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 479, in process_work_item process_one(country, scenario, variable, args) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 443, in process_one run_command(clip_shape_command, dry_run=args.dry_run) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\IRLI\climate-agent\scripts\run_projection_workflow.py", line 199, in run_command subprocess.run(command, cwd=WORKSPACE_ROOT, check=True) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python313\Lib\subprocess.py", line 577, in run raise CalledProcessError(retcode, process.args, output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['C:\\Python313\\python.exe', 'codes/clip_netcdf_by_shapefile.py', '--input', 'data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg.nc', '--boundary', 'data/boundaries/ethiopia_adm0.geojson', '--output', 'data/merged_files/ethiopia_rh_ssp245_2040_2070_025deg_clipped.nc', '--compression-level', '0']' returned non-zero exit status 1.