NHS_postprocessing’s documentation!

The NHS_PostProcessing Library is a library of tools and functions for NHS(National Hydrological Services) users working with time series data. All of the tools contained in the library are built using a few different python libraries including numpy, scipy, pandas, matplotlib amongst others and it was made this way to provode a high level, interface for NHS users to perform all forms of data manipulation, analysis and visualization tasks.

It contains tools for Preprocessing data, Manipulating and aggregating data, Visualizing data and performing all of sorts of metric calculations on measured and predicted time series data. Its is divided into 5 broad sections:

Sections of the Library.
  • Data processing/manipulation

    The section allows us to take in raw data or raw model output, process it, aggregate it, and generate the data required as inputs to the rest of the library. It supports two ingestion paths: reading from a pre-built MESH_output_streamflow.csv via generate_dataframes(), or loading directly from MESH NetCDF outputs and a .tb0 observed file via generate_dataframes_from_mesh() — no intermediate CSV required. Its functions are available in the Data section. It also has a runnable binder script located here

  • Model Perfromance

    The use of statistical metrics to evaluate how well the model is performing in terms of being able to accurately replicate the measured Data. Majority of its functions are located in the Metrics section with tutorials available here with a runnable binder script located here .

  • Model Diagonistics

    This section is geared towards estimating certain process based values such as the time to peak (ttp), flow duration curve, amongst many others. Its focus is to evaluate and inform behaviours and trends of the particular model at a particular station. Some of its functions are available in the Data section and others in the Metrics section, with their respective binder tutorials here and here respectfully.

  • Multi-Model Evaluations

    The multimodel evaluations section works to compare the behaviours of different models or different configuration of same model and allow us to assess ensemble performance, identify the uncertainty ranges. Insert files here.

  • Visualizations

    The Visualizations sections allow us to visually study, compare and interprete model output behaviour allowing instantaenous visual identifications of differences and discrepancies between measured data and simulated data and between various model data. Its functions are available in the Visualizations sections with a tutorial notebook here. There is also a runnable binder script located here.

Principles of development

It’s development is based on the following priciples :

Principels of Development.
  • Reproducibility

    Its methods are made very simple and straightforward using the basic python programs ans functions so that you are able to read through the functions if neccessary and understand whats going on within each module. The library code is available on the github page.

  • Clear Documentation

    The library is built on extensive easy to understand documentation using both read the docs and sphinxs to create the documentation website, jupyter notebook to create tutorials that are easy to follow through and binder for those who want to not just follow through but also run the code themselves.

  • Project Collaboration

    The project is hosted on Github to allow people to contribute as needed, reques that certain features be added and even fork off it to add features of thier own. The project is also open to collaborations with other projects that may need the tools and functions that are available in the library.

All tutorials are available in the notebooks folder here.

Note

*This project is still under Active Development*

Interactive Notebooks

You can run the notebooks interactively by launching them through Binder. Click the link below to open the notebook in a new tab:

Indices and tables