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

Uploaded Source

Built Distribution

ewatercycle_da-0.0.4-py2.py3-none-any.whl (23.4 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: ewatercycle_da-0.0.4.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.4.tar.gz
Algorithm Hash digest
SHA256 f03a0ac71a57d7ccf6cfb63f07b5eea68fb1399a9c63bf4f956f75aac6ee2e5d
MD5 5d9366c92f6269f38ed2a1d2f10b4013
BLAKE2b-256 32f86751460c17c10e0298923b2d7f8b6c2b8c187be522fcec4107fb8953e2b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ewatercycle_da-0.0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 998fe2b40927855978e6b33952db137ad6df6a2e487fabc3222045753f64674d
MD5 8b1aaa892954bbe57fad3f96660a1f35
BLAKE2b-256 a18b32db2f1ab56f03fcddfd5f2e3f83aa42f1e3ef32030ca51317e6f22ed25d

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