Calibrate GLM parameters for water temperature simulation. Use when you need to adjust model parameters to minimize RMSE between simulated and observed temperatures.
MIT
GLM Calibration Guide
Overview
GLM calibration involves adjusting physical parameters to minimize the difference between simulated and observed water temperatures. The goal is typically to achieve RMSE < 2.0°C.
Key Calibration Parameters
Parameter
Section
Description
Default
Range
Kw
&light
Light extinction coefficient (m⁻¹)
0.3
0.1 - 0.5
coef_mix_hyp
&mixing
Hypolimnetic mixing coefficient
0.5
0.3 - 0.7
wind_factor
&meteorology
Wind speed scaling factor
1.0
0.7 - 1.3
lw_factor
&meteorology
Longwave radiation scaling
1.0
0.7 - 1.3
ch
&meteorology
Sensible heat transfer coefficient
0.0013
0.0005 - 0.002
Parameter Effects
Parameter
Increase Effect
Decrease Effect
Kw
Less light penetration, cooler deep water
More light penetration, warmer deep water
coef_mix_hyp
More deep mixing, weaker stratification
Less mixing, stronger stratification
wind_factor
More surface mixing
Less surface mixing
lw_factor
More heat input
Less heat input
ch
More sensible heat exchange
Less heat exchange
Calibration with Optimization
fromscipy.optimizeimportminimizedefobjective(x):Kw,coef_mix_hyp,wind_factor,lw_factor,ch=x# Modify parametersparams={'Kw':round(Kw,4),'coef_mix_hyp':round(coef_mix_hyp,4),'wind_factor':round(wind_factor,4),'lw_factor':round(lw_factor,4),'ch':round(ch,6)}modify_nml('glm3.nml',params)# Run GLMsubprocess.run(['glm'],capture_output=True)# Calculate RMSErmse=calculate_rmse(sim_df,obs_df)returnrmse# Initial values (defaults)x0=[0.3,0.5,1.0,1.0,0.0013]# Run optimizationresult=minimize(objective,x0,method='Nelder-Mead',options={'maxiter':150})
Manual Calibration Strategy
Start with default parameters, run GLM, calculate RMSE
Adjust one parameter at a time
If surface too warm → increase wind_factor
If deep water too warm → increase Kw
If stratification too weak → decrease coef_mix_hyp
Iterate until RMSE < 2.0°C
Common Issues
Issue
Likely Cause
Solution
Surface too warm
Low wind mixing
Increase wind_factor
Deep water too warm
Too much light penetration
Increase Kw
Weak stratification
Too much mixing
Decrease coef_mix_hyp
Overall warm bias
Heat budget too high
Decrease lw_factor or ch
Best Practices
Change one parameter at a time when manually calibrating
Keep parameters within physical ranges
Use optimization for fine-tuning after manual adjustment