smash.Model.signatures#

Model.signatures(sign=None, obs_comp=True, event_seg=None)[source]#

Compute continuous or/and flood event signatures of the Model.

Hint

See the User Guide and Math / Num Documentation for more.

Parameters:
signstr, list of str or None, default None

Define signature(s) to compute. Should be one of

  • ‘Crc’, ‘Crchf’, ‘Crclf’, ‘Crch2r’, ‘Cfp2’, ‘Cfp10’, ‘Cfp50’, ‘Cfp90’ (continuous signatures)

  • ‘Eff’, ‘Ebf’, ‘Erc’, ‘Erchf’, ‘Erclf’, ‘Erch2r’, ‘Elt’, ‘Epf’ (flood event signatures)

Note

If not given, all of continuous and flood event signatures will be computed.

obs_compbool, default True

If True, compute also the signatures from observed discharge in addition to simulated discharge.

event_segdict or None, default None

A dictionary of event segmentation options when calculating flood event signatures. The keys are

  • ‘peak_quant’

  • ‘max_duration’

See smash.Model.event_segmentation for more.

Note

If not given in case flood signatures are computed, the default values will be set for these parameters.

Returns:
resSignResult

The signatures computation results represented as a SignResult object.

See also

SignResult

Represents signatures computation result.

Examples

>>> setup, mesh = smash.load_dataset("cance")
>>> model = smash.Model(setup, mesh)
>>> model.run(inplace=True)

Compute all observed and simulated signatures:

>>> res = model.signatures()
>>> res.cont["obs"]  # observed continuous signatures
       code       Crc     Crchf  ...   Cfp50      Cfp90
0  V3524010  0.516207  0.191349  ...  3.3225  42.631802
1  V3515010  0.509180  0.147217  ...  1.5755  10.628400
2  V3517010  0.514302  0.148364  ...  0.3235   2.776700

[3 rows x 9 columns]

>>> res.event["sim"]  # simulated flood event signatures
       code  season               start  ...  Elt         Epf
0  V3524010  autumn 2014-11-03 03:00:00  ...    3  106.190651
1  V3515010  autumn 2014-11-03 10:00:00  ...    0   21.160324
2  V3517010  autumn 2014-11-03 08:00:00  ...    1   5.613392

[3 rows x 12 columns]