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 HBV becomes available as one of the eWaterCycle models

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

#... 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] 


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

Uploaded Source

Built Distribution

ewatercycle_da-0.0.3-py2.py3-none-any.whl (15.9 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for ewatercycle_da-0.0.3.tar.gz
Algorithm Hash digest
SHA256 b1df598f738a14b6eafab557f49d759f52063c6b2369e7ebdab49b1ed68de603
MD5 bcd7cc7b91b168446481026b831a627d
BLAKE2b-256 169aa38b2e971e42d38bcff3c88d7db89d364aa20f1b37792f2ef97bc9ae021d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ewatercycle_da-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 80fe395e9d42f67959216e3c5981164dc9b66383dabf280b81c70d3ab17e631b
MD5 0d52a86339c8f9a98da23b0047db5e9f
BLAKE2b-256 7fe321ac1c897f2bd4d91195ba0ae6263d6fae972696f18cf88d0d6a0e25ba38

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