Skip to main content

Implementation of data assimilation for eWaterCycle

Project description

eWaterCycle-DA

Documentation Status PyPI github license badge fair-software badge

Code to run Data Assimilation with hydrological models on the eWaterCycle platform.

Installation

Install this package alongside your eWaterCycle installation

pip install ewatercycle-DA

Then DA becomes available to be used in eWaterCycle

from ewatercycle_DA import DA

docs

Documentation can be found here

Changelog

Changelog can be found in CHANGELOG.md on GitHub.

Quick Usage overiew

(maybe migrate this to docs?)

Can be used with or without assimilating, this will run 10 versions of the same model. By varying the setup_kwargs you can vary the model run itself.

Without assimilating

HBVForcing = ...

ensemble = DA.Ensemble(N=10)
ensemble.setup()

ensemble.initialize(model_name="HBV",
                   forcing=HBVForcing,
                   setup_kwargs={'parameters':'7.6,0.5,460,3.8,0.19,1.3,0.082,0.0061',
                                 'initial_storage':'0,100,0,5'}
                    )

ref_model = ensemble.ensemble_list[0].model

lst_Q = []
while ref_model.time < ref_model.end_time:
    ensemble.update(assimilate=False)
    lst_Q.append(ensemble.get_value("Q"))

For running HBV see seperate docs

With assimilating

...
ref_model = ...
#... same as above just add two more definitions
def H(Z):
    """returns discharge which is the last value on the state vector for HBV"""
    return Z[-1] 

ds_obs_dir = ...
ensemble.initialize_da_method(ensemble_method_name = "PF", 
                              hyper_parameters = {
                                               'like_sigma_weights' : 0.05,
                                               'like_sigma_state_vector' : 0.01,
                                                 },
                              state_vector_variables = "all", 
                              # the next three are keyword arguments but are needed:
                              observation_path = ds_obs_dir,
                              observed_variable_name = "Q",
                              measurement_operator = H, 
                           
                            )
lst_Q = []
while ref_model.time < ref_model.end_time:
    ensemble.update(assimilate=True)
    lst_Q.append(ensemble.get_value("Q"))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ewatercycle_da-0.0.6.tar.gz (20.1 MB view details)

Uploaded Source

Built Distribution

ewatercycle_da-0.0.6-py2.py3-none-any.whl (24.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ewatercycle_da-0.0.6.tar.gz.

File metadata

  • Download URL: ewatercycle_da-0.0.6.tar.gz
  • Upload date:
  • Size: 20.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for ewatercycle_da-0.0.6.tar.gz
Algorithm Hash digest
SHA256 30616ba167678076ccc2a72dbf66631d9161b7f28b243d71c991b1aa5c16e648
MD5 d33f17279e05ecc9183f2bec0ce00374
BLAKE2b-256 28929622fcf7093322c47ce7a8aa5ddd5394c8dcc7e5de32c70f66a07c8ffd00

See more details on using hashes here.

File details

Details for the file ewatercycle_da-0.0.6-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ewatercycle_da-0.0.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a44b0424007d9fdf9fb37597e9f2e49c45dba9231a7134d7eb351888217d2b29
MD5 4b5b5c1fba7a9db5667478b103aee855
BLAKE2b-256 b027e789494390194031bc666dee90983ef227e010083d257368fb54d60d5e48

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page