Python implementation of NedborAfstromnings Model (NAM) lumped rainfall–runoff model
Project description
HydNAM
HydNAM is a Python implementation of the NedborAfstromnings Model (NAM), a lumped rainfall–runoff model.
Installation
pip install hydnam
Getting Started
1. Prepare the Dataset
The dataset must contain the following properties: Date, Temperature, Precipitation, Evapotranspiration, and Discharge.
Date | Temperature | Discharge | Precipitation | Evapotranspiration |
---|---|---|---|---|
10/9/2016 | 15.4 | 0.25694 | 0 | 2.79 |
10/10/2016 | 14.4 | 0.25812 | 0 | 3.46 |
10/11/2016 | 14.9 | 0.30983 | 0 | 3.65 |
10/12/2016 | 16.1 | 0.31422 | 0 | 3.46 |
10/13/2016 | 20.1 | 0.30866 | 0 | 5.64 |
10/14/2016 | 13.9 | 0.30868 | 0 | 3.24 |
10/15/2016 | 11.1 | 0.31299 | 0 | 3.41 |
... | ... | ... | ... | ... |
Ensure that the time intervals between dates are consistent (e.g., 24 hours) for accurate model performance.
2. Initialize the NAM Model
from datetime import datetime
from hydnam.chart import plot_q
from hydnam.dataset import Dataset
from hydnam.hydnam import HydNAM
from hydnam.parameters import Parameters
dataset = Dataset(
time_series=[
datetime(2016, 10, 9),
datetime(2016, 10, 10),
datetime(2016, 10, 11),
],
temperatures=[15.4, 14.4, 14.9],
precipitations=[0.0, 0.0, 0.0],
evapotranspirations=[2.79, 3.46, 3.65],
discharges=[0.25694, 0.25812, 0.30983]
)
params = Parameters(
umax=0.01,
lmax=0.01,
cqof=0.01,
ckif=200.0,
ck12=10.0,
tof=0.0,
tif=0.0,
tg=0.0,
ckbf=500.0,
csnow=0.0,
snowtemp=0.0
)
nam = HydNAM(
dataset=dataset,
parameters=params,
area=58.8,
interval=24.0,
start=None,
end=None,
spin_off=0.0,
ignore_snow=False
)
print(f'Parameters: {nam.parameters}')
print(f'Statistics: {nam.statistics}')
df = nam.simulation_result.to_dataframe()
3. Optimize the Model
NAM.optimize()
The model will calculate and check which Parameters
are optimal for the model and use it as the main Parameters
for
the model.
4. Customize Parameters
nam.set_parameters(Parameters())
5. Show Discharge
from hydnam.chart import plot_q
...
plot_q(nam.simulation_result, only_obs_and_sim=False).show()
License
This library is released under the MIT License.
Contact
If you have any questions or issues, please open an issue on GitHub or email us at duynguyen02.dev@gmail.com.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hydnam-1.0.0.tar.gz
.
File metadata
- Download URL: hydnam-1.0.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.3 Linux/6.8.0-41-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f16355a31541c452bf662ac61a03e007fec85fc36c7ebd7e3078bc0786be520d |
|
MD5 | e7e05888deaf0fb6ce29e6463975cdf1 |
|
BLAKE2b-256 | ad13881b43772be0bfcb5cf4af7d67a0d24d268db36a02e5a74695b645b87ac5 |
File details
Details for the file hydnam-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: hydnam-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.3 Linux/6.8.0-41-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e54c59ec892e3fc3ca4e77b1f61269c09ca2bb06bf2966b600f67ad011b05c0f |
|
MD5 | 7c359c065b81bef4c9b409894bd1ebf8 |
|
BLAKE2b-256 | fc7d0082c69e023dc839c6f600180b8cda09f36c646c3812ad4fd71c939e32bd |