It's a reasonable request supported by references and supported by Ben Janke - science lead for Urban Flood Risk Mitigation.
This should be minimal effort to implement. The value in question is now hardcoded at line 702:
def _q_pi_op(p_value, s_max_array, s_max_nodata, result_nodata):
"""Calculate peak flow Q (mm) with the Curve Number method.
Args:
p_value (float): precipitation in mm.
s_max_array (numpy.ndarray): max S value per pixel.
s_max_nodata (float): nodata value for s_max_array.
result_nodata (float): return value nodata.
Returns:
ndarray of peak flow.
"""
lam = 0.2 # this value of lambda is hard-coded in the design doc.
Ben also provided very helpful text for the User's Guide & UI:
If we did expose this parameter, it might be good to provide some additional guidance in the user’s manual. For example, according to the Natural Resources Conservation Services manual describing this method, the curve numbers were derived assuming that initial abstraction equals 20% of the maximum abstraction; any adjustment to initial abstraction requires recalculation of the curve numbers (page 10-4). So, one would need to modify both initial abstraction and the curve numbers (the latter of which are user accessible already). Some guidance exists for modification of the curve numbers for a different initial abstraction (e.g. http://ponce.sdsu.edu/hawkins_initial_abstraction.pdf).
This is trivial to implement if all we do is expose that parameter. But as Ben suggests the CN should be recalculated for a new IAV - so things could get a little more complicated if we decided to add that calculation to the model as well.
We had a user request this on the forum here: https://community.naturalcapitalproject.org/t/initial-abstraction-value-urban-flood-risk-mitigation-model/1688
It's a reasonable request supported by references and supported by Ben Janke - science lead for Urban Flood Risk Mitigation.
This should be minimal effort to implement. The value in question is now hardcoded at line 702:
Ben also provided very helpful text for the User's Guide & UI:
This is trivial to implement if all we do is expose that parameter. But as Ben suggests the CN should be recalculated for a new IAV - so things could get a little more complicated if we decided to add that calculation to the model as well.