GithubHelp home page GithubHelp logo

artesiawater / waterbalans Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 2.0 2.35 MB

Python module voor het berekenen van waterbalansen zoals ontwikkeld door Maarten Ouboter

Home Page: https://waterbalans.readthedocs.io/en/latest/

License: MIT License

Python 100.00%

waterbalans's People

Contributors

artesiawater avatar dbrakenhoff avatar jwvoort avatar raoulcollenteur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

maarvd martclanor

waterbalans's Issues

Request to extent e.plot.wg.loading()

Request to extent e.plot.wq.loading():

  1. if we measured the output waterflux at water stations (uitlaten), distinguish the measured output flux and the error (sluitfout) in the graph (we temporarily added the measured output flux in our last meeting as a red line).
    image

  2. visualize the lower limit of the assumed concentration together with the increment in the plot
    image

Add documentation

Add documentation, the basic configuration was set up, but there is very little content at the moment...

Add mapping between output EAG and Excel sheet+datarange

The idea is to help users link the output at different levels in the waterbalance package to data in the Excel water balance sheets.
Also helpful would be a mapping between the names.

Not sure if this is the way to go yet, but something along these lines:

python_excel_names = {
    "wb.buckets.Verhard": {
        "q_s" : "kwel (+) / wegzijging (-)",
        "q_no": "neerslag - verdamping"
        # ...
    }
}

python_excel_data = {
    "wb.buckets.Verhard": { 
        "q_s": "Rekenblad!A1", # note this is not correct, just a random example
        "q_no": "Rekenblad!B1", 
        # ...
   }
}

adding series to EAG

When adding timeseries (i.e. Constant timeseries, or ValueSeries or Local csv files) to the full model (as opposed to just one bucket) currently a value of -9999 has to be filled in as the BakjeID (a term we maybe should also update to something more english...). This -9999 value isn't particularly intuitive. Perhaps we can come up with something better.

saving and initializing EAG with state

Currently there isnt a clear method to simulate only a short period of time starting from custom storage levels. The initial storage parameters are applied at the first time step of any simulation. It would make sense to be able to store the current state of the system, and load that state back in when running a simulation starting from a certain date.

Perhaps this is as simple as exporting a parameter dataframe with all the hInits updated to the values of the storage at time step t.

Potential bugs and other issues in Excel balances

These are not issues with the waterbalans package but issues that cause potential differences between the Excel and Python versions of the water balance calculations.

  • hTargetMin and hTargetMax (i.e. min/max water levels over specific periods) are not always copied into the Rekenblad sheet correctly, occasionally (in some years) starting a day later than the data suggests. Perhaps this differs per Excel, but it was observed at least once.
  • EFacMin and EFacMax are often listed in the Excel Rekenblad sheet for "Gedraineerd" buckets but are not used. The waterbalance package does not pick up this parameter if it is provided. Just a note for people comparing the Excel input to the Python parameters.

Makkink to Penman factors

The Makkink to Penman factors in the original Excel balances have a much higher precision. These were updated with 27e37e8 . This should improve comparison between Excel balances and Python balances.

The flag to use the Excel factors or the original published factors is hardcoded. Perhaps something that should be exposed to the user...

Keeping issue open as a reminder to take a look at that.

bug in simulating EAG with QOutMax when using numba

When simulating EAG with QOutMax, this parameter is not passed to the numba calc_waterbalance method. When passing it, the result seems off. Probably a sign problem in the code.

Fix using Snelrewaard example.

simulating linked systems of EAGs

Contact W+B about code to do this developed in Waterbalansen 't Hol project.

  • Iteration to close waterbalance errors between EAGs
  • Method to specify order, including branching?
  • ...

Improve logging

Especially when reading data from files and using timeseries from files.

  • Note when a timeseries/parameter is not used by a simulation.
  • Indicate what type a timeseries is considered to be when it is processed.
  • ...

Default parameters (comparison to Excel balances)

Users starting with the Python waterbalance module are not always aware of the fact that all parameters have a default value.

I think this could be improved by no longer allowing parameters to be missing (by default):

  1. Raise error on missing parameters unless use_default_params is set to True (default would be False).
  2. Method to compare parameter input dataframe with all parameters in the model. I.e. e.parameter_comparison(params)
  3. On use_default_params=True, add log message on simulate showing which parameters were not passed by user and for which default values were selected.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.