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.7.tar.gz (20.1 MB view details)

Uploaded Source

Built Distribution

ewatercycle_da-0.0.7-py2.py3-none-any.whl (24.5 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: ewatercycle_da-0.0.7.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.7.tar.gz
Algorithm Hash digest
SHA256 0fb38116097d2a07b5aba847f17af6375171d06f4fd85cd608fca0e13cc27398
MD5 09437876f0f2cfef449925ec8a1b09a4
BLAKE2b-256 98880237d508a3aef608550bc0fc13d46dd0f256eec329bf7117d5b242a43027

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ewatercycle_da-0.0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f6344d431845cfa87cb3cdb169b8f961de3b67d0fff4d6f1b8ca8eae03d631f2
MD5 e4e13795e4c88552380cb2874a147dc0
BLAKE2b-256 3e6f11613a1fb6775ab1654febad286d34d6d8bceeb5b98209278cff6b1c2bf2

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