This directory contains all visualizations generated by the gridMET bias correction and CONUS-AgWeather analysis scripts (~1.0 GB total).
The plots are available from Zenodo:
Download Plots.zip and extract its contents into the Plots/ directory at the repository root.
Plots/
├── Boxplots/ # Bias boxplots by time period (~2.5 MB)
├── Climate/ # Climate zone correlation plots (~20 MB)
├── CONUS-AgWeather_v1_ETo_Stats/ # ETo QC analysis statistics (~2.2 MB)
├── CONUS-AgWeather_v1_Var_Stats/ # Variable QC analysis statistics (~9.2 MB)
├── Correlation_Plots_All/ # All-station correlation matrices (~2.6 MB)
├── Crop_Bias_Distributions/ # Crop-type bias distributions (~10 MB)
├── East_vs_West/ # East/West regional comparisons (~8.3 MB)
├── GridMET_Plots/ # GridMET validation plots (~121 MB)
├── OpenET_accuracy/ # OpenET vs flux tower accuracy (~1.3 MB)
├── Site_Analysis_GridMET/ # Site-level GridMET analysis (~80 MB)
├── Site_Analysis_OpenET/ # Site-level OpenET analysis (~762 MB)
├── Station_Climate/ # Climate-grouped station plots (~18 MB)
└── station_map_conus_agweather.png # Station location map (~16 MB)
| Directory | Generating Script | Description |
|---|---|---|
Boxplots/ |
scripts/boxplots_stats.py |
Bias boxplots grouped by region and climate zone, with summary statistics CSVs |
Climate/ |
corr_analysis_gridmet.py |
Köppen climate-stratified Pearson correlation matrices |
CONUS-AgWeather_v1_ETo_Stats/ |
scripts/conus_agweather_eto_analysis.py |
Pre/post-QC ETo analysis plots and statistics |
CONUS-AgWeather_v1_Var_Stats/ |
scripts/conus_agweather_var_analysis.py |
Pre/post-QC variable (Rs, Rso) comparison plots |
Correlation_Plots_All/ |
corr_analysis_gridmet.py |
All-station correlation matrices between ET and other variables |
Crop_Bias_Distributions/ |
corr_analysis_gridmet.py |
Bias distributions grouped by CDL crop type |
East_vs_West/ |
corr_analysis_gridmet.py |
Regional correlation matrices (East vs West of 100th meridian) |
GridMET_Plots/ |
corr_analysis_gridmet.py |
GridMET bias comparison scatter plots |
OpenET_accuracy/ |
scripts/OpenET_flux_grouped_scatter_plots.py, scripts/monthly_climos.py, scripts/monthly_error_delta_bias_heatmaps.py, scripts/monthly_ET_vs_ETo_error_scatter.py |
OpenET vs flux tower accuracy plots |
Site_Analysis_GridMET/ |
scripts/site_analysis_gridmet.py |
Site-level GridMET vs station ET scatter plots with metrics |
Site_Analysis_OpenET/ |
scripts/site_analysis_openet.py |
Site-level OpenET model scatter plots with metrics |
Station_Climate/ |
scripts/station_climate_plots.py |
Station variable distributions by Köppen climate zone |
station_map_conus_agweather.png |
scripts/gen_map.py |
CONUS station location map with observation counts |
Script: gridmetbias/scripts/boxplots_stats.py
Bias ratio boxplots organized by time period subdirectories (e.g., Annual/, Summer (JJA)/).
Contents:
{variable}_Bias_Boxplots_{time_period}.png- Boxplots showing:- All sites combined
- East vs. West of 100th meridian
- By lumped Köppen climate zone
{variable}_Bias_Stats_{time_period}.csv- Summary statistics (n stations, n days, min, max, median, Q1, Q3, mean, std)
Variables: ETo, ETr, ea, u2, srad, tmin, tmax
Script: gridmetbias/corr_analysis_gridmet.py → biaslibs.plot_bias_corr_matrix_climate()
Pearson correlation heatmaps between monthly ET bias ratios and other variable bias ratios, stratified by Köppen climate zones.
Subdirectories:
All_pval_True/- Shows all correlationsAll_pval_False/- Shows only statistically significant correlations (p < 0.05)
Script: gridmetbias/scripts/conus_agweather_eto_analysis.py
Analysis of CONUS-AgWeather ETo data before and after quality control.
Contents:
- QC factor distributions (daily and annual)
- Station-level ETo comparison plots
- Summary statistics by climate zone
Script: gridmetbias/scripts/conus_agweather_var_analysis.py
Analysis of solar radiation (Rs, Rso) and other variables pre/post-QC.
Contents:
- Three-panel comparison plots:
- (a) Original Rs and Rso
- (b) Corrected Rs and Rso
- (c) Percent change between corrected and original
Script: gridmetbias/corr_analysis_gridmet.py → biaslibs.plot_bias_corr_matrix_all()
Correlation matrices for all stations combined, showing relationships between monthly ET bias ratios and other meteorological variable bias ratios.
Script: gridmetbias/corr_analysis_gridmet.py → biaslibs.plot_irr_crop_bias_distributions()
Bias distributions grouped by USDA Cropland Data Layer (CDL) crop types:
- Corn, Cotton, Soybeans, Wheat, Alfalfa, Other
Script: gridmetbias/corr_analysis_gridmet.py → biaslibs.plot_bias_corr_matrix_lon()
Regional comparison plots split at the 100th meridian.
Subdirectories:
All_pval_True/- All correlations shownAll_pval_False/- Significant correlations only (p < 0.05)
Contents: {ET}_{VAR}_{Region}_corr.png files
Script: gridmetbias/corr_analysis_gridmet.py → biaslibs.gridmet_bias_comp_analysis()
GridMET bias comparison visualizations.
Subdirectories:
All/- All stations combinedGridMET_Daily_All_Station_Data.csv- Daily gridMET data for all stationsGridMET_Monthly_All_Station_Data.csv- Monthly aggregated data
- Individual site directories with scatter plots
Scripts: gridmetbias/scripts/OpenET_flux_grouped_scatter_plots.py, scripts/monthly_climos.py, scripts/monthly_error_delta_bias_heatmaps.py, scripts/monthly_ET_vs_ETo_error_scatter.py
OpenET model accuracy assessment against flux tower ET.
Contents:
Figure6_croplands_monthly_openet_vs_flux.jpg- Croplands monthly OpenET vs flux scatter plots (OpenET_flux_grouped_scatter_plots.py)Figure7_croplands_monthly_climatology.jpg- Monthly ET climatology comparison (monthly_climos.py)Figure8_absolute_error_reduction_heatmaps.jpg- Error reduction heatmaps by land cover and model (monthly_error_delta_bias_heatmaps.py)Figure9_error_reduction_scatter_by_landcover.jpg- Error reduction scatter by land cover (monthly_ET_vs_ETo_error_scatter.py)
OpenET Models: EEMETRIC, SSEBOP, SIMS, ensemble_mean
Land Cover Types: Croplands, Evergreen Forests, Grasslands, Mixed Forests, Shrublands, Wetland/Riparian
Script: gridmetbias/scripts/site_analysis_gridmet.py
Site-level scatter plots comparing gridMET reference ET against station ET.
Contents:
{SITE_ID}/- Individual site directories with scatter plotsAll/- All sites combinedAll_cropland_sites_gridmet_metrics.csv- Metrics summary (R², MAE, MBE)
Plot panels: Corrected vs Uncorrected gridMET comparisons
Script: gridmetbias/scripts/site_analysis_openet.py
Site-level scatter plots for all OpenET models.
Contents:
- Individual site directories with multi-panel scatter plots
- Metrics CSVs with R², MAE, MBE for each model
Models: EEMETRIC, SSEBOP, SIMS, GEESEBAL, PTJPL, DISALEXI, ensemble_mean
Script: gridmetbias/scripts/station_climate_plots.py
Station variable distributions grouped by Köppen climate classification.
Contents: Two-panel plots for each variable:
- Left: KDE/histogram for all sites
- Right: Violin plots by climate zone (Bsk+Bsh, Bwh+Bwk, Cfa, Csa+Csb, Dfa+Dfb)
Variables: ETo, ETr, temperatures, humidity, vapor pressure, solar radiation, wind speed, precipitation
Script: gridmetbias/scripts/gen_map.py
Three-panel map of weather station locations across CONUS:
- (a) Days of weather observations
- (b) Years of weather observations
- (c) Average annual record completeness (%)
| Script | Output Directories |
|---|---|
corr_analysis_gridmet.py |
Climate/, Correlation_Plots_All/, Crop_Bias_Distributions/, East_vs_West/, GridMET_Plots/ |
scripts/boxplots_stats.py |
Boxplots/ |
scripts/conus_agweather_eto_analysis.py |
CONUS-AgWeather_v1_ETo_Stats/ |
scripts/conus_agweather_var_analysis.py |
CONUS-AgWeather_v1_Var_Stats/ |
scripts/gen_map.py |
station_map_conus_agweather.png |
scripts/OpenET_flux_grouped_scatter_plots.py |
OpenET_accuracy/ |
scripts/monthly_climos.py |
OpenET_accuracy/ |
scripts/monthly_error_delta_bias_heatmaps.py |
OpenET_accuracy/ |
scripts/monthly_ET_vs_ETo_error_scatter.py |
OpenET_accuracy/ |
scripts/site_analysis_gridmet.py |
Site_Analysis_GridMET/ |
scripts/site_analysis_openet.py |
Site_Analysis_OpenET/ |
scripts/station_climate_plots.py |
Station_Climate/ |
Journal Articles:
Volk, J. M., Dunkerly, C., Majumdar, S., Huntington, J. L., Minor, B. A., Kim, Y., Morton, C. G., ReVelle, P., Kilic, A., Melton, F., Allen, R. G., Pearson, C., Purdy, A. J., & Caldwell, T. G. (2026). Assessing and Correcting Bias in Gridded Reference Evapotranspiration over Agricultural Lands Across the Contiguous United States. Under review in Agricultural Water Management. Preprint: https://doi.org/10.31223/X54F38
Dunkerly, C., Volk, J. M., Majumdar, S., Huntington, J. L., Allen, R. G., Pearson, C., Kim, Y., Morton, C. G., Minor, B. A., ReVelle, P., Kilic, A., Melton, F., Purdy, A. J., & Caldwell, T. G. (2026). A Benchmark Dataset of Agricultural Weather Stations over the Contiguous United States for Evapotranspiration Applications. Under review in Nature Scientific Data. Preprint: https://doi.org/10.31223/X56T9Z.
Data Releases:
Volk, J., Dunkerly, C., Majumdar, S., Huntington, J., Minor, B., Kim, Y., Morton, C., ReVelle, P., Kilic, A., Melton, F., Allen, R., Pearson, C., Purdy, A., & Caldwell, T. (2026). CONUS Gridded Reference Evapotranspiration Bias Correction: Inputs, Station Validation, and Outputs (gridMET/OpenET) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.18673484
Dunkerly, C., Volk, J. M., Majumdar, S., Huntington, J. L., Allen, R. G., Pearson, C., Kim, Y., Morton, C. G., Minor, B. A., ReVelle, P., Kilic, A., Melton, F., Purdy, A. J., & Caldwell, T. G. (2026). CONUS-AgWeather, a high-quality benchmark daily agricultural weather station dataset for evapotranspiration applications in the Contiguous United States (1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.18122157