New module: savana.rainfall, zone-stratified validation of global
precipitation products (CHIRPS, ERA5-Land, GPM IMERG, MERRA-2,
PERSIANN-CDR, TerraClimate by default) against GPCC gauge observations,
reproducing a published West Africa study's methodology as the default
configuration while accepting your own stations, products, zones, and
application weights at every stage
RainfallAssessment chainable orchestrator and one-call
validate_against_gpcc() convenience function
Continuous (Bias, PBIAS, MAE, RMSE, r, r², NSE, KGE) and categorical (POD,
FAR, CSI, ETS, frequency bias) validation metrics at any aggregation level,
plus rain-detection threshold-sensitivity analysis
Application-weighted composite scoring and an interactive Excel
decision-support workbook (dropdown-driven SELECTOR/SCORECARD sheets)
Interactive preview maps before running a full assessment: station
locations, product climatology, inter-product bias, real GPCC point
observations overlaid on a product's raster, and per-station bias against
GPCC ground truth
Grounded facts/summary/Q&A (savana.rainfall.insights), following the same
pattern as the classification module's savana.insights
SavanaGeoAgent now accepts a RainfallAssessment (rainfall=) in
addition to, or instead of, a SavanaClassifier (clf=), one agent, one
conversation, either or both result sets