Also known as
Model type Tool
Model part of larger framework LandLab
Incorporated models or components:
Spatial dimensions 2D
Spatial extent Landscape-Scale, Watershed-Scale
Model domain Terrestrial, Hydrology, Climate
One-line model description Generate random sequence of spatially-resolved precipitation events
Extended model description A component to generate a sequence of spatially resolved storms over a grid, following a lightly modified version (see below) of the stochastic methods of Singer & Michaelides, Env Res Lett 12, 104011, 2017, & Singer et al., Geosci. Model Dev., accepted, 10.5194/gmd-2018-86.

The method is heavily stochastic, and at the present time is intimately calibrated against the conditions at Walnut Gulch, described in those papers. In particular, assumptions around intensity-duration calibration and orographic rainfall are "burned in" for now, and are not accessible to the user. The various probability distributions supplied to the various run methods default to WG values, but are easily modified. This calibration reflects a US desert southwest "monsoonal" climate, and the component distinguishes (optionally) between two seasons, "monsoonal" and "winter". The intensity-duration relationship is shared between the seasons, and so may prove useful in a variety of storm-dominated contexts.

The default is to disable the orographic rainfall functionality of the component. However, if orographic_scenario == 'Singer', the component requires a 'topographic__elevation' field to already exist on the grid at the time of instantiation.

The component has two ways of simulating a "year". This choice is controlled by the 'limit' parameter of the yield methods. If limit == 'total_rainfall', the component will continue to run until the total rainfall for the season and/or year exceeds a stochastically generated value. This method is directly comparable to the Singer & Michaelides method, but will almost always result in years which are not one calendar year long, unless the input distributions are very carefully recalibrated for each use case. If limit == 'total_time', the component will terminate a season and/or year once the elapsed time exceeds one year. In this case, the total rainfall will not correspond to the stochastically generated total. You can access the actual total for the last season using the property `(median_)total_rainfall_last_season`.

Note that this component cannot simulate the occurrence of more than one storm at the same time. Storms that should be synchronous will instead occur sequentially, with no interstorm time. This limitation means that if enough storms occur in a year that numstorms*mean_storm_duration exceeds one year, the number of simulated storms will saturate. This limitation may be relaxed in the future.

The component offers the option to modify the maximum number of storms simulated per year. If you find simulations encountering this limit too often, you may need to raise this limit. Conversely, it could be lowered to reduce memory usage over small grids. However, in increasing the value, beware - the component maintains two limit*nnodes arrays, which will chew through memory if the limit gets too high. The default will happily simulate grids up to around 50 km * 50 km using the default probability distributions.


precipitation, stochastic precipitation,

First name Daniel
Last name Hobley
Type of contact
Institute / Organization
Postal address 1
Postal address 2
Town / City Boulder
Postal code 80309
State Colorado
Country United States
Email address

Supported platforms Unix, Linux, Mac OS, Windows
Other platform
Programming language Python
Other program language
Code optimized Single Processor
Multiple processors implemented
Nr of distributed processors
Nr of shared processors
Start year development 2017
Does model development still take place? No
If above answer is no, provide end year model development 2020
Code development status Only maintenance
When did you indicate the 'code development status'? 2020
Model availability As code
Source code availability
(Or provide future intension)
Through web repository
Source web address
Source csdms web address
Program license type BSD or MIT X11
Program license type other
Memory requirements
Typical run time

Describe input parameters grid : ModelGrid

A Landlab model grid of any type.

number_of_years : int
The number of years over which to generate storms.

orographic_scenario : {None, 'Singer', func}
Whether to use no orographic rule, or to adopt S&M's 2017 calibration for Walnut Gulch. Alternatively, provide a function here that turns the provided elevation of the storm center into a length-11 curve weighting to select which orographic scenario to apply.

Input format ASCII
Other input format
Describe output parameters "rainfall__flux":

{ "dtype": float, "intent": "out", "optional": False, "units": "mm/hr", "mapping": "node", "doc": "Depth of water delivered per unit time in each storm", }

"rainfall__total_depth_per_year": { "dtype": float, "intent": "out", "optional": False, "units": "mm/yr", "mapping": "node", "doc": "Depth of water delivered in total in each model year", }

"topographic__elevation": { "dtype": float, "intent": "in", "optional": True, "units": "m", "mapping": "node", "doc": "Land surface topographic elevation", }

Output format ASCII
Other output format
Pre-processing software needed? No
Describe pre-processing software
Post-processing software needed? No
Describe post-processing software
Visualization software needed? No
If above answer is yes
Other visualization software

Describe processes represented by the model
Describe key physical parameters and equations
Describe length scale and resolution constraints
Describe time scale and resolution constraints
Describe any numerical limitations and issues

Describe available calibration data sets
Upload calibration data sets if available:
Describe available test data sets
Upload test data sets if available:
Describe ideal data for testing

Do you have current or future plans for collaborating with other researchers?
Is there a manual available? No
Upload manual if available:
Model website if any
Model forum / discussion board

This part will be filled out by CSDMS staff

OpenMI compliant Not yet"Not yet" is not in the list (Yes, No but planned, No but possible, No not possible) of allowed values for the "Code openmi compliant or not" property.
BMI compliant Not yet"Not yet" is not in the list (Yes, No but planned, No but possible, No not possible) of allowed values for the "Code IRF or not" property.
WMT component Not yet"Not yet" is not in the list (Yes, In progress, No but possible, No not possible) of allowed values for the "Code CMT compliant or not" property.
PyMT component Not yet"Not yet" is not in the list (Yes, In progress, No but possible, No not possible) of allowed values for the "Code PyMT compliant or not" property.
Is this a data component
Can be coupled with:
Model info
Citation indices SpatialPrecipitationDistribution
Nr. of pubs: --
Citations: 0
h-index: --"--" is not a number.
Qrcode SpatialPrecipitationDistribution.png
Link to this page




Citation indices SpatialPrecipitationDistribution
Nr. of pubs: --
Citations: 0
h-index: --"--" is not a number.

See more publications of SpatialPrecipitationDistribution



Input Files

Output Files