Hapi is a Python library for building Conceptual Distributed Model using HBV96 lumped model & Muskingum routing method

Overview

GitHub release (latest by date) DOI Binder Python Versions Documentation Status License: GPL v3

GitHub Clones

Current build status

All platforms:

Build Status Build status Coverage Status

Current release info

Name Downloads Version Platforms
Conda Recipe Conda Downloads Downloads Downloads Downloads Conda Version PyPI version Anaconda-Server Badge Conda Platforms Join the chat at https://gitter.im/Hapi-Nile/Hapi

Hapi Hapi

Hapi - Hydrological library for Python

Hapi is an open-source Python Framework for building raster-based conceptual distributed hydrological models using HBV96 lumped model & Muskingum routing method at a catchment scale (Farrag & Corzo, 2021), Hapi gives a high degree of flexibility to all components of the model (spatial discretization - cell size, temporal resolution, parameterization approaches and calibration (Farrag et al., 2021)).

1 2

Hapi

Main Features

  • Modified version of HBV96 hydrological model (Bergström, 1992) with 15 parameters in case of considering snow processes, and 10 parameters without snow, in addition to 2 parameters of Muskingum routing method
  • Remote sensing module to download the meteorological inputs required for the hydrologic model simulation (ECMWF)
  • GIS modules to enable the modeler to fully prepare the meteorological inputs and do all the preprocessing needed to build the model (align rasters with the DEM), in addition to various methods to manipulate and convert different forms of distributed data (rasters, NetCDF, shapefiles)
  • Sensitivity analysis module based on the concept of one-at-a-time OAT and analysis of the interaction among model parameters using the Sobol concept ((Rusli et al., 2015)) and a visualization
  • Statistical module containing interpolation methods for generating distributed data from gauge data, some distribution for frequency analysis and Maximum likelihood method for distribution parameter estimation.
  • Visualization module for animating the results of the distributed model, and the meteorological inputs
  • Optimization module, for calibrating the model based on the Harmony search method

The recent version of Hapi (Hapi 1.0.1) integrates the global hydrological parameters obtained by Beck et al., (2016), to reduce model complexity and uncertainty of parameters.

IHE-Delft sessions

  • In April 14-15 we had a two days session for Masters and PhD student in IHE-Delft to explain the different modules and the distributed hydrological model in Hapi Day 1 , Day 2

Future work

  • Developing a regionalization method for connection model parameters with some catchment characteristics for better model calibration.
  • Developing and integrate river routing method (kinematic and diffusive wave approximation)
  • Apply the model for large scale (regional/continental) cases
  • Developing a DEM processing module for generating the river network at different DEM spatial resolutions.

For using Hapi please cite Farrag et al. (2021) and Farrag & Corzo (2021) References

Farrag, M. & Corzo, G. (2021) MAfarrag/Hapi: Hapi. doi:10.5281/ZENODO.4662170

Farrag, M., Perez, G. C. & Solomatine, D. (2021) Spatio-Temporal Hydrological Model Structure and Parametrization Analysis. J. Mar. Sci. Eng. 9(5), 467. doi:10.3390/jmse9050467 Link

Beck, H. E., Dijk, A. I. J. M. van, Ad de Roo, Diego G. Miralles, T. R. M. & Jaap Schellekens, and L. A. B. (2016) Global-scale regionalization of hydrologic model parameters-Supporting materials 3599–3622. doi:10.1002/2015WR018247.Received

Bergström, S. (1992) The HBV model - its structure and applications. Smhi Rh 4(4), 35.

Rusli, S. R., Yudianto, D. & Liu, J. tao. (2015) Effects of temporal variability on HBV model calibration. Water Sci. Eng. 8(4), 291–300. Elsevier Ltd. doi:10.1016/j.wse.2015.12.002

Installing hapi

Installing hapi from the conda-forge channel can be achieved by:

conda install -c conda-forge hapi

It is possible to list all of the versions of hapi available on your platform with:

conda search hapi --channel conda-forge

Install from Github

to install the last development to time you can install the library from github

pip install git+https://github.com/MAfarrag/HAPI

pip

to install the last release you can easly use pip

pip install HAPI-Nile

Quick start

  >>> import Hapi

other code samples

Comments
  • Minor bugs

    Minor bugs

    Just a couple of bugs that need to be fixed:

    1. In the module calibration.py line 204 it is necessary to change the function name Dist_model to HapiModel since the name of the function has been changed in the new version of Hapi 0.3.0.

    2. In the module distparameters.py the arguments of the function par3dLumped should be (par_g,raster,no_parameters,no_lumped_par=None,lumped_par_pos=None,kub=1,klb=0.5,Maskingum = True):, although the variables no_lumped_par and lumped_par_pos are not needed (that's why it would be better to set them by default as None), but because the function SaveParameters states them in the line 707. So it's either change this last line mentioned or state them as None by default in the par3dLumped.

    3. It would be good to add this line of code: if ".DS_Store" in files: files.remove(".DS_Store") under line 1947 on raster.py module to ensure MacOS compatibility. (That could be done where needed as well)

    opened by juancotrino 2
  • install Hapi from YML file

    install Hapi from YML file

    gdal has to be installed from conda forge and when using YML file to create an environment the environment passes gdal to install from pip which conflict with python 3.7 (the only one that does not conflict with python 3.7 is conda forge version)

    bug 
    opened by MAfarrag 2
  • Update matplotlib requirement from <3.6.0,>=3.4.2 to >=3.4.2,<3.7.0

    Update matplotlib requirement from <3.6.0,>=3.4.2 to >=3.4.2,<3.7.0

    Updates the requirements on matplotlib to permit the latest version.

    Release notes

    Sourced from matplotlib's releases.

    REL: v3.6.2

    This is the second bugfix release of the 3.6.x series.

    This release contains several bug-fixes and adjustments:

    • Avoid mutating dictionaries passed to subplots
    • Fix bbox_inches='tight' on a figure with constrained layout enabled
    • Fix auto-scaling of ax.hist density with histtype='step'
    • Fix compatibility with PySide6 6.4
    • Fix evaluating colormaps on non-NumPy arrays
    • Fix key reporting in pick events
    • Fix thread check on PyPy 3.8
    • Handle input to ax.bar that is all NaN
    • Make rubber band more visible on Tk and Wx backends
    • Restore (and warn on) seaborn styles in style.library
    • Restore get_renderer function in deprecated tight_layout
    • nb/webagg: Fix resize handle on WebKit browsers (e.g., Safari)
    Commits
    • dc0328f REL: v3.6.2
    • d05801e Merge branch 'v3.6.1-doc' into v3.6.x
    • 7a9b9b6 DOC: Update GitHub stats for 3.6.2
    • 4334ef8 Merge pull request #24341 from meeseeksmachine/auto-backport-of-pr-24301-on-v...
    • 8334597 Backport PR #24301: Restore get_renderer function in deprecated tight_layout
    • 8e3f120 Merge pull request #24337 from meeseeksmachine/auto-backport-of-pr-24238-on-v...
    • a55a2d6 Merge pull request #24336 from meeseeksmachine/auto-backport-of-pr-24335-on-v...
    • 290eec7 Backport PR #24238: Update example and docstring to encourage the use of func...
    • f408034 Backport PR #24335: Fix missing word in ImageMagickWriter docstring.
    • 831f145 Merge pull request #24330 from meeseeksmachine/auto-backport-of-pr-24282-on-v...
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update pyproj requirement from <=3.3.0,>=3.2.1 to >=3.2.1,<3.5.0

    Update pyproj requirement from <=3.3.0,>=3.2.1 to >=3.2.1,<3.5.0

    Updates the requirements on pyproj to permit the latest version.

    Release notes

    Sourced from pyproj's releases.

    3.4.1 Release

    What's Changed

    New Contributors

    Other contributions:

    Full Changelog: https://github.com/pyproj4/pyproj/compare/3.4.0...3.4.1

    Changelog

    Sourced from pyproj's changelog.

    3.4.1

    • WHL: Add win32 to build_wheels matrix (pull #1169)
    • BUG: Changed so that the setup.cfg depends on the version code in the init.py instead of the other way around (issuue #1155)
    • BUG: Fix :meth:.CRS.to_cf for Pole rotation GRIB convention (pull #1167)
    • BUG: Fix :meth:.CRS.to_authority memory leak (pull #1178)
    • REF: Use upper case EPSG code when creating CRS (pull #1162)

    3.4.0

    • WHL: Python 3.11 Wheels (issue #1110)
    • WHL: Wheels contain PROJ 9.1.0 (pull #1132)
    • DEP: Minimum PROJ version 8.2 (issue #1011)
    • BUG: Fix transformer list for 3D transformations in :class:.TransformerGroup (discussion #1072)
    • ENH: Added authority, accuracy, and allow_ballpark kwargs to :class:.TransformerGroup (pull #1076)
    • ENH: Added force_over kwarg to :meth:.Transformer.from_crs (issue #997)
    • ENH: Added :meth:.Transformer.get_last_used_operation (issue #1071)
    • CLN: Remove deprecated skip_equivalent kwarg from transformers and errcheck kwarg from :meth:.CRS.from_cf (pull #1077)
    • REF: use regex to process PROJ strings in :meth:.CRS.to_dict (pull #1086)
    • BUG: :class:.MercatorAConversion defined only for lat_0 = 0 (issue #1089)
    • BUG: Add support for PROJ_DATA environment variable (issue #1097)
    • BUG: Ensure numpy masked arrays stay masked after projection (issue #1102)
    • BLD: Don't specify runtime_library_dirs on Cygwin (pull #1120)
    • BUG: Fix finding PROJ version with PROJ_LIB and PROJ 9.1+ (issue #1127)

    3.3.1

    • WHL: Wheels for Linux are manylinux2014 (pip 19.3+)
    • BUG: Complete database stub file with query_utm_crs_info() signature (issue #1044)
    • BUG: Reorder deps in show_versions for setuptools issue (issue #1017)
    • BUG: remove CustomConstructorCRS @​abstractmethod decorator (pull #1018)
    • BUG: Correct type annotation for AreaofUse.bounds (issue #1012)
    • BUG: :func:pyproj.datadir.get_data_dir support for conda Windows (issue #1029)
    • ENH: warn when :meth:pyproj.crs.CRS.to_wkt, :meth:pyproj.crs.CRS.to_proj4, or :meth:pyproj.crs.CRS.to_json() returns None (issue #1036)
    • ENH: Added support for int-like strings and numpy dtypes (issues #1026 and #1835)
    • ENH: Added support to pickle :class:pyproj.transformer.Transformer (issues #1058)

    3.3.0

    • WHL: Wheels contain PROJ 8.2.0
    • DEP: Minimum supported Python version 3.8 (issue #930)
    • DEP: Minimum PROJ version 8.0 (issue #940)
    • BUG: Prepend "Derived" to CRS type name if CRS is derived (issue #932)
    • BUG: Improved handling of inf values in :meth:pyproj.transformer.Transformer.transform_bounds (pull #961)
    • BUG: CRS CF conversions mismatch of PROJ parameters in rotated pole (issue #948)
    • ENH: Add support for transforming bounds at the poles in :meth:pyproj.transformer.Transformer.transform_bounds (pull #962)
    • ENH: Added :attr:pyproj.transformer.Transformer.source_crs & :attr:pyproj.transformer.Transformer.target_crs (pull #976)
    • ENH: Added :class:pyproj.crs.coordinate_operation.PoleRotationNetCDFCFConversion (issue #948)
    • ENH: Added :func:pyproj.database.get_database_metadata (issue #990)
    • ENH: Added PROJ database metadata to :func:pyproj.show_versions (issue #990)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update numpy requirement from <1.21.5,>=1.21.2 to >=1.21.2,<1.24.1

    Update numpy requirement from <1.21.5,>=1.21.2 to >=1.21.2,<1.24.1

    Updates the requirements on numpy to permit the latest version.

    Release notes

    Sourced from numpy's releases.

    v1.24.0

    NumPy 1.24 Release Notes

    The NumPy 1.24.0 release continues the ongoing work to improve the handling and promotion of dtypes, increase the execution speed, and clarify the documentation. There are also a large number of new and expired deprecations due to changes in promotion and cleanups. This might be called a deprecation release. Highlights are

    • Many new deprecations, check them out.
    • Many expired deprecations,
    • New F2PY features and fixes.
    • New "dtype" and "casting" keywords for stacking functions.

    See below for the details,

    This release supports Python versions 3.8-3.11.

    Deprecations

    Deprecate fastCopyAndTranspose and PyArray_CopyAndTranspose

    The numpy.fastCopyAndTranspose function has been deprecated. Use the corresponding copy and transpose methods directly:

    arr.T.copy()
    

    The underlying C function PyArray_CopyAndTranspose has also been deprecated from the NumPy C-API.

    (gh-22313)

    Conversion of out-of-bound Python integers

    Attempting a conversion from a Python integer to a NumPy value will now always check whether the result can be represented by NumPy. This means the following examples will fail in the future and give a DeprecationWarning now:

    np.uint8(-1)
    np.array([3000], dtype=np.int8)
    

    Many of these did succeed before. Such code was mainly useful for unsigned integers with negative values such as np.uint8(-1) giving np.iinfo(np.uint8).max.

    Note that conversion between NumPy integers is unaffected, so that np.array(-1).astype(np.uint8) continues to work and use C integer overflow logic. For negative values, it will also work to view the array: np.array(-1, dtype=np.int8).view(np.uint8). In some cases,

    ... (truncated)

    Commits
    • 8cec820 Merge pull request #22813 from charris/prepare-1.24.0-release
    • 8d33e68 REL: Prepare for the NumPy 1.24.0 release.
    • 5ac09da Merge pull request #22815 from charris/backport-22814
    • df2d26f BLD: use newer version of delocate
    • e18104e Merge pull request #22805 from charris/backport-22804
    • 6d44424 REV: revert change to numpyconfig.h for sizeof(type) hardcoding on macOS
    • c484593 Merge pull request #22795 from charris/backport-22791
    • 0904c01 Change argument to npy_floatstatus_..._barrier() functions to ensure it
    • 34653f9 Merge pull request #22793 from charris/backport-22789
    • 21f7096 BUG: Fix infinite recursion in longdouble/large integer scalar ops
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update gdal requirement from <3.4.1,>=3.3.3 to >=3.3.3,<3.6.2

    Update gdal requirement from <3.4.1,>=3.3.3 to >=3.3.3,<3.6.2

    Updates the requirements on gdal to permit the latest version.

    Release notes

    Sourced from gdal's releases.

    GDAL 3.6.1

    Bug fix release. See release notes: https://github.com/OSGeo/gdal/blob/v3.6.1/NEWS.md

    Warning: GDAL 3.6.1 officially retracts GDAL 3.6.0 which could cause corruption of the spatial index of GeoPackage files it created (in tables with 100 000 features or more): cf qgis/QGIS#51188 and OSGeo/gdal#6911. GDAL 3.6.1 fixes that issue. Setting OGR_GPKG_ALLOW_THREADED_RTREE=NO environment variable (at generation time) also works around the issue with GDAL 3.6.0. Users who have generated corrupted GeoPackage files with 3.6.0 can regnerate them with 3.6.1 with, for example, "ogr2ogr out_ok.gpkg in_corrupted.gpkg" (assuming a GeoPackage file with vector content only)

    Changelog

    Sourced from gdal's changelog.

    GDAL/OGR 3.6.1 Release Notes

    GDAL 3.6.1 is a bugfix release. It officially retracts GDAL 3.6.0 which could cause corruption of the spatial index of GeoPackage files it created (in tables with 100 000 features or more): cf qgis/QGIS#51188 and OSGeo/gdal#6911. GDAL 3.6.1 fixes that issue. Setting OGR_GPKG_ALLOW_THREADED_RTREE=NO environment variable (at generation time) also works around the issue with GDAL 3.6.0. Users who have generated corrupted GeoPackage files with 3.6.0 can regnerate them with 3.6.1 with, for example, "ogr2ogr out_ok.gpkg in_corrupted.gpkg" (assuming a GeoPackage file with vector content only)

    Build

    • Fix build with -DOGR_ENABLE_DRIVER_GML=OFF (#6647)
    • Add build support for libhdf5 1.13.2 and 1.13.3 (#6657)
    • remove RECOMMENDED flag to BRUNSLI and QB3. Add it for CURL (cf spack/spack#33856)
    • configure.cmake: fix wrong detection of pread64 for iOS
    • FindSQLite3.cmake: add logic to invalidate SQLite3_HAS_ variables if the library changes
    • detect if sqlite3 is missing mutex support
    • Fix build when sqlite3_progress_handler() is missing
    • do not use Armadillo if it lacks LAPACK support (such as on Alpine)
    • make it a FATAL_ERROR if the user used -DGDAL_USE_ARMADILLO=ON and it can't be used
    • Fix static HDF4 libraries not found on Windows
    • Internal libjpeg: rename extra symbol for iOS compatibility (#6725)
    • gdaldataset: fix false-positive gcc 12.2.1 -O2 warning about truncation of buffer
    • Add minimal support for reading 12-bit JPEG images with libjpeg-turbo 2.2dev and internal libjpeg12
    • Fix detection of blosc version number
    • Add missing includes to fix build with upcoming gcc 13

    GDAL 3.6.1

    Port

    • CPLGetExecPath(): add MacOSX and FreeBSD implementations; prevent potential one-byte overflow on Linux&Windows
    • /vsiaz/: make AppendBlob operation compatible of Azurite (#6759)
    • /vsiaz/: accept Azure connection string with only BlobEndpoint and SharedAccessSignature (#6870)
    • S3: fix issue with EC2 IDMSv2 request failing inside Docker container with default networking

    Algorithms

    ... (truncated)

    Commits
    • 6500333 Prepare for GDAL 3.6.1
    • 8c2c9d9 Merge pull request #6917 from OSGeo/backport-6915-to-release/3.6
    • 7538be4 Add missing <cstdint headers for uint*_t types
    • c997674 Merge pull request #6916 from OSGeo/backport-6911-to-release/3.6
    • 25ecdaa Merge pull request #6914 from OSGeo/backport-6907-to-release/3.6
    • f25aee2 Merge pull request #6913 from OSGeo/backport-6906-to-release/3.6
    • c4f8495 GPKG: Add heuristics to try to detect corrupted RTree generated by GDAL 3.6.0...
    • aa069fc GPKG: add debug traces and testing for issue of https://github.com/qgis/QGIS/...
    • 32d9462 GPKG: fix issue with StartTransaction() causing features to be omitted when c...
    • f2183a0 gdalwarp: speed-up warping with cutline when the source dataset or processing...
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update scikit-learn requirement from <1.0.2,>=0.24.2 to >=0.24.2,<1.2.1

    Update scikit-learn requirement from <1.0.2,>=0.24.2 to >=0.24.2,<1.2.1

    Updates the requirements on scikit-learn to permit the latest version.

    Release notes

    Sourced from scikit-learn's releases.

    Scikit-learn 1.2.0

    We're happy to announce the 1.2.0 release.

    You can read the release highlights under https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_2_0.html and the long version of the change log under https://scikit-learn.org/stable/whats_new/v1.2.html

    This version supports Python versions 3.8 to 3.11.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update pandas requirement from <1.3.5,>=1.3.2 to >=1.3.2,<1.5.3

    Update pandas requirement from <1.3.5,>=1.3.2 to >=1.3.2,<1.5.3

    Updates the requirements on pandas to permit the latest version.

    Release notes

    Sourced from pandas's releases.

    Pandas 1.5.2

    This is a patch release in the 1.5.x series and includes some regression and bug fixes. We recommend that all users upgrade to this version.

    See the full whatsnew for a list of all the changes.

    The release will be available on the defaults and conda-forge channels:

    conda install pandas
    

    Or via PyPI:

    python3 -m pip install --upgrade pandas
    

    Please report any issues with the release on the pandas issue tracker.

    Thanks to all the contributors who made this release possible.

    Commits
    • 8dab54d RLS: 1.5.2
    • d78c5e6 Backport PR #49806 on branch 1.5.x (DOC: Update what's new notes for 1.5.2 re...
    • 98c6139 Backport PR #49579 on Branch 1.5.x (BUG: Behaviour change in 1.5.0 when using...
    • 9196f8d Backport PR STYLE enable pylint: method-cache-max-size-none (#49784)
    • 8c4b559 Backport PR #49776 on branch 1.5.x (REGR: arithmetic ops recursion error with...
    • 1616fb3 Backport PR Revert "Add color and size to arguments (#44856)" (#49752)
    • 6f8e174 Backport PR #49720 on branch 1.5.x (Suppress spurious warning) (#49726)
    • 63a91d0 Backport PR #49676 on branch 1.5.x (REGR: Remove groupby's getattribute f...
    • 136271a Backport PR #49615 on branch 1.5.x (REGR: Better warning in pivot_table when ...
    • c9252cf Backport PR #49614 on branch 1.5.x (CI: Updating website sync to new server) ...
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update numpy requirement from <1.21.5,>=1.21.2 to >=1.21.2,<1.23.6

    Update numpy requirement from <1.21.5,>=1.21.2 to >=1.21.2,<1.23.6

    Updates the requirements on numpy to permit the latest version.

    Release notes

    Sourced from numpy's releases.

    v1.23.5

    NumPy 1.23.5 Release Notes

    NumPy 1.23.5 is a maintenance release that fixes bugs discovered after the 1.23.4 release and keeps the build infrastructure current. The Python versions supported for this release are 3.8-3.11.

    Contributors

    A total of 7 people contributed to this release. People with a "+" by their names contributed a patch for the first time.

    • @​DWesl
    • Aayush Agrawal +
    • Adam Knapp +
    • Charles Harris
    • Navpreet Singh +
    • Sebastian Berg
    • Tania Allard

    Pull requests merged

    A total of 10 pull requests were merged for this release.

    • #22489: TST, MAINT: Replace most setup with setup_method (also teardown)
    • #22490: MAINT, CI: Switch to cygwin/cygwin-install-action@v2
    • #22494: TST: Make test_partial_iteration_cleanup robust but require leak...
    • #22592: MAINT: Ensure graceful handling of large header sizes
    • #22593: TYP: Spelling alignment for array flag literal
    • #22594: BUG: Fix bounds checking for random.logseries
    • #22595: DEV: Update GH actions and Dockerfile for Gitpod
    • #22596: CI: Only fetch in actions/checkout
    • #22597: BUG: Decrement ref count in gentype_reduce if allocated memory...
    • #22625: BUG: Histogramdd breaks on big arrays in Windows

    Checksums

    MD5

    8a412b79d975199cefadb465279fd569  numpy-1.23.5-cp310-cp310-macosx_10_9_x86_64.whl
    1b56e8e6a0516c78473657abf0710538  numpy-1.23.5-cp310-cp310-macosx_11_0_arm64.whl
    c787f4763c9a5876e86a17f1651ba458  numpy-1.23.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
    db07645022e56747ba3f00c2d742232e  numpy-1.23.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    c63a6fb7cc16a13aabc82ec57ac6bb4d  numpy-1.23.5-cp310-cp310-win32.whl
    3fea9247e1d812600015641941fa273f  numpy-1.23.5-cp310-cp310-win_amd64.whl
    4222cfb36e5ac9aec348c81b075e2c05  numpy-1.23.5-cp311-cp311-macosx_10_9_x86_64.whl
    6c7102f185b310ac70a62c13d46f04e6  numpy-1.23.5-cp311-cp311-macosx_11_0_arm64.whl
    6b7319f66bf7ac01b49e2a32470baf28  numpy-1.23.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
    3c60928ddb1f55163801f06ac2229eb0  numpy-1.23.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    6936b6bcfd6474acc7a8c162a9393b3c  numpy-1.23.5-cp311-cp311-win32.whl
    

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update netcdf4 requirement from <1.5.9,>=1.5.5 to >=1.5.5,<1.6.3

    Update netcdf4 requirement from <1.5.9,>=1.5.5 to >=1.5.5,<1.6.3

    Updates the requirements on netcdf4 to permit the latest version.

    Changelog

    Sourced from netcdf4's changelog.

    version 1.6.2 (tag v1.6.2rel)

    • Added netCDF4.__has_set_alignment__ property to help identify if the underlying netcdf4 supports setting the HDF5 alignment.
    • Slicing multi-dimensional variables with an all False boolean index array now returns an empty numpy array (instead of raising an exception - issue #1197). Behavior now consistent with numpy slicing.
    • fix problem with compiling using netcdf-c < 4.9.0 (issue #1209)

    version 1.6.1 (tag v1.6.1rel)

    • add Dataset methods has__filter (where =zstd,blosc,bzip2,szip) to check for availability of extra compression filters.
    • release GIL for all C-lib calls (issue #1180).
    • Add support for nc_set_alignment and nc_get_alignment to control alignment of data within HDF5 files.

    version 1.6.0 (tag v1.6.0rel)

    • add support for new quantization functionality in netcdf-c 4.9.0 via "signficant_digits" and "quantize_mode" kwargs in Dataset.createVariable. Default quantization_mode is "BitGroom", but alternate methods "BitRound" and GranularBitRound" also supported.
    • opening a Dataset in append mode (mode = 'a' or 'r+') creates a Dataset if one does not already exist (similar to python open builtin). Issue #1144. Added a mode='x' option (as in python open) which is the same as mode='w' with clobber=False.
    • allow createVariable to accept either Dimension instances or Dimension names in "dimensions" tuple kwarg (issue #1145).
    • remove all vestiges of python 2 in _netCDF4.pyx and set cython language_level directive to 3 in setup.py.
    • add 'compression' kwarg to createVariable to enable new compression functionality in netcdf-c 4.9.0. 'None','zlib','szip','zstd','bzip2' 'blosc_lz','blosc_lz4','blosc_lz4hc','blosc_zlib' and 'blosc_zstd' are currently supported. 'blosc_shuffle', 'szip_mask' and 'szip_pixels_per_block' kwargs also added. compression='zlib' is equivalent to (the now deprecated) zlib=True. If the environment variable NETCDF_PLUGIN_DIR is set to point to the directory with the compression plugin lib__nc* files, then the compression plugins will be installed within the package and be automatically available (the binary wheels have this). Otherwise, the environment variable HDF5_PLUGIN_PATH needs to be set at runtime to point to plugins in order to use the new compression options.
    • MFDataset did not aggregate 'name' variable attribute (issue #1153).
    • issue warning instead of raising an exception if missing_value or _FillValue can't be cast to the variable type when creating a masked array (issue #1152).
    • Define MPI_Session for compatibility with current mpi4py (PR #1156).

    version 1.5.8 (tag v1.5.8rel)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update gdal requirement from <3.4.1,>=3.3.3 to >=3.3.3,<3.6.1

    Update gdal requirement from <3.4.1,>=3.3.3 to >=3.3.3,<3.6.1

    Updates the requirements on gdal to permit the latest version.

    Release notes

    Sourced from gdal's releases.

    GDAL 3.6.0

    • CMake is the only build system available in-tree. autoconf and nmake build systems have been removed
    • OpenFileGDB: write and update support (v10.x format only), without requiring any external dependency, with same (and actually larger) functional scope as write side of the FileGDB driver
    • RFC 86: Column-oriented read API for vector layers. Implemented in core, Arrow, Parquet, GPKG and FlatGeoBuf drivers
    • Add read/write raster JPEGXL driver for standalone JPEG-XL files. Requires libjxl
    • Add KTX2 and BASISU read/write raster drivers for texture formats. Require (forked) basisu library
    • Vector layer API: table relationship discovery & creation, Upsert() operation
    • GeoTIFF: add multi-threaded read capabilities (reqiures NUM_THREADS open option or GDAL_NUM_THREADS configuration option to be set)
    • Multiple performance improvements in GPKG driver
    • ogr_layer_algebra.py: promoted to official script (#1581)
    • Code linting and security fixes
    • Bump of shared lib major version
    • Full release notes at https://github.com/OSGeo/gdal/blob/v3.6.0/NEWS.md
    Changelog

    Sourced from gdal's changelog.

    GDAL/OGR 3.6.0 Release Notes

    Those notes include changes since GDAL 3.5.0, but not already included in a GDAL 3.5.x bugfix release.

    In a nutshell...

    • CMake is the only build system available in-tree. autoconf and nmake build systems have been removed
    • OpenFileGDB: write and update support (v10.x format only), without requiring any external dependency, with same (and actually larger) functional scope as write side of the FileGDB driver
    • RFC 86: Column-oriented read API for vector layers. Implemented in core, Arrow, Parquet, GPKG and FlatGeoBuf drivers
    • Add read/write raster JPEGXL driver for standalone JPEG-XL files. Requires libjxl
    • Add KTX2 and BASISU read/write raster drivers for texture formats. Require (forked) basisu library
    • Vector layer API: table relationship discovery & creation, Upsert() operation
    • GeoTIFF: add multi-threaded read capabilities (reqiures NUM_THREADS open option or GDAL_NUM_THREADS configuration option to be set)
    • Multiple performance improvements in GPKG driver
    • ogr_layer_algebra.py: promoted to official script (#1581)
    • Code linting and security fixes
    • Bump of shared lib major version

    New optional dependencies

    • libjxl: for JPEGXL driver (it was already a potential dependency in past versions, when using internal libtiff, to get the JXL TIFF codec)
    • libarrow_dataset: for Parquet driver
    • QB3: for QB3 codec in MRF driver
    • basisu: required for KTX2 and BASISU drivers

    New installed files

    • bin/ogr_layer_algebra.py
    • include/ogr_recordbatch.h

    Removed installed files

    None

    Backward compatibility issues

    See MIGRATION_GUIDE.TXT

    Build changes

    Enhancements:

    • Add version suffix to DLL when compiling for MinGW target
    • Add a -DBUILD_WITHOUT_64BIT_OFFSET advanced option (#5941)
    • Add a USE_ALTERNATE_LINKER option
    • Build iso8211 library conditionally to drivers requiring it

    Fixes:

    • Fix build without PNG (#5742) and JPEG (#5741)
    • Various changes for CHERI-extended architectures such CHERI-RISC-V or Arm Morello with sizeof(void*) == 16

    ... (truncated)

    Commits
    • b77481c Update for 3.6.0rc2
    • 7690a74 NEWS.md: update for 3.6.0rc2
    • c6bab7c typo fixes
    • 6ce6376 docker/alpine-normal: update dependencies, add libjxl and libkml deps [ci skip]
    • 58d46fd cppcheck fixes
    • 368e1e0 Merge pull request #6629 from OSGeo/backport-6628-to-release/3.6
    • de77c8f Add missing #include <algorithm> for std::min/std::max uses, and #include <li...
    • b7f4bb1 Merge pull request #6627 from OSGeo/backport-6623-to-release/3.6
    • bb05d40 GPKG: add compatibility with GPKG 1.0 gpkg_data_column_constraints table
    • f987d20 Merge pull request #6626 from OSGeo/backport-6625-to-release/3.6
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Releases(1.4.0)
  • 1.4.0(Dec 31, 2022)

    • remove Fiona and the reading file exception using fion
    • unify reading results of rainfall-runoff model in the readRRMResults, ReadLaterals, ReadUSHydrographs
    • refactor code and change methods to camelcase
    • add hydrodynamic model 1d config file read function
    • simplify functions with too many parameters using decorator
    • add automatic PyPI build and publish GitHub actions
    Source code(tar.gz)
    Source code(zip)
  • 1.3.5(Dec 27, 2022)

  • 1.3.4(Dec 26, 2022)

  • 1.3.3(Dec 26, 2022)

  • 1.3.2(Dec 26, 2022)

  • 1.3.1(Sep 25, 2022)

  • 1.3.0(Jun 6, 2022)

  • 1.2.1(May 18, 2022)

  • 1.0.4(Apr 14, 2021)

  • 1.0.3(Apr 11, 2021)

  • 1.0.2(Apr 7, 2021)

    Hapi - Hydrological library for Python Hapi is an open-source Python Framework for building raster-based conceptual distributed hydrological models using HBV96 lumped model & Muskingum routing method at a catchment scale, Hapi gives a high degree of flexibility to all components of the model (spatial discretization - cell size, temporal resolution, parameterization approaches, and calibration).

    Hapi

    Main Features

    • Modified version of HBV96 hydrological model (Bergström, 1992) with 15 parameters in case of considering snow processes, and 10 parameters without snow, in addition to 2 parameters of Muskingum routing method
    • Remote sensing module to download the meteorological inputs required for the hydrologic model simulation (ECMWF)
    • GIS modules to enable the modeler to fully prepare the meteorological inputs and do all the preprocessing needed to build the model (align rasters with the DEM), in addition to various methods to manipulate and convert different forms of distributed data (rasters, NetCDF, shapefiles)
    • Sensitivity analysis module based on the concept of one-at-a-time OAT and analysis of the interaction among model parameters using the Sobol concept ((Rusli et al., 2015)) and a visualization
    • Statistical module containing interpolation methods for generating distributed data from gauge data, some distribution for frequency analysis and Maximum likelihood method for distribution parameter estimation.
    • Visualization module for animating the results of the distributed model, and the meteorological inputs
    • Optimization module, for calibrating the model based on the Harmony search method
    • The recent version of Hapi (Hapi 1.0.1) integrates the global hydrological parameters obtained by Beck et al., (2016), to reduce model complexity and uncertainty of parameters.

    Future work

    • Developing a regionalization method for connection model parameters with some catchment characteristics for better model calibration.
    • Developing and integrate river routing method (kinematic and diffusive wave approximation)
    • Apply the model for large scale (regional/continental) cases
    • Developing a DEM processing module for generating the river network at different DEM spatial resolutions.
    Source code(tar.gz)
    Source code(zip)
  • V0.2-alpha(May 11, 2020)

  • V0.1-alpha(Feb 18, 2019)

Owner
Mostafa Farrag
Hydroinformatics Researcher MSc in Hydroinformatics Post Graduate Diploma in Water resources systems
Mostafa Farrag
Platform for building statistical models of cities and regions

UrbanSim UrbanSim is a platform for building statistical models of cities and regions. These models help forecast long-range patterns in real estate d

Urban Data Science Toolkit 419 Dec 30, 2022
Using Global fishing watch's data to build a machine learning model that can identify illegal fishing and poaching activities through satellite and geo-location data.

Using Global fishing watch's data to build a machine learning model that can identify illegal fishing and poaching activities through satellite and geo-location data.

Ayush Mishra 3 May 6, 2022
Geocoding library for Python.

geopy geopy is a Python client for several popular geocoding web services. geopy makes it easy for Python developers to locate the coordinates of addr

geopy 3.8k Dec 30, 2022
Python interface to PROJ (cartographic projections and coordinate transformations library)

pyproj Python interface to PROJ (cartographic projections and coordinate transformations library). Documentation Stable: http://pyproj4.github.io/pypr

null 832 Dec 31, 2022
PySAL: Python Spatial Analysis Library Meta-Package

Python Spatial Analysis Library PySAL, the Python spatial analysis library, is an open source cross-platform library for geospatial data science with

Python Spatial Analysis Library 1.1k Dec 18, 2022
Python interface to PROJ (cartographic projections and coordinate transformations library)

pyproj Python interface to PROJ (cartographic projections and coordinate transformations library). Documentation Stable: http://pyproj4.github.io/pypr

null 832 Dec 31, 2022
Python library to decrypt Airtag reports, as well as a InfluxDB/Grafana self-hosted dashboard example

Openhaystack-python This python daemon will allow you to gather your Openhaystack-based airtag reports and display them on a Grafana dashboard. You ca

Bezmenov Denys 19 Jan 3, 2023
prettymaps - A minimal Python library to draw customized maps from OpenStreetMap data.

A small set of Python functions to draw pretty maps from OpenStreetMap data. Based on osmnx, matplotlib and shapely libraries.

Marcelo de Oliveira Rosa Prates 9k Jan 8, 2023
Python library to visualize circular plasmid maps

Plasmidviewer Plasmidviewer is a Python library to visualize plasmid maps from GenBank. This library provides only the function to visualize circular

Mori Hideto 9 Dec 4, 2022
This is a simple python code to get IP address and its location using python

IP address & Location finder @DEV/ED : Pavan Ananth Sharma Dependencies: ip2geotools Note: use pip install ip2geotools to install this in your termin

Pavan Ananth Sharma 2 Jul 5, 2022
OSMnx: Python for street networks. Retrieve, model, analyze, and visualize street networks and other spatial data from OpenStreetMap.

OSMnx OSMnx is a Python package that lets you download geospatial data from OpenStreetMap and model, project, visualize, and analyze real-world street

Geoff Boeing 4k Jan 8, 2023
peartree: A library for converting transit data into a directed graph for sketch network analysis.

peartree ?? ?? peartree is a library for converting GTFS feed schedules into a representative directed network graph. The tool uses Partridge to conve

Kuan Butts 183 Dec 29, 2022
Client library for interfacing with USGS datasets

USGS API USGS is a python module for interfacing with the US Geological Survey's API. It provides submodules to interact with various endpoints, and c

Amit Kapadia 104 Dec 30, 2022
A library to access OpenStreetMap related services

OSMPythonTools The python package OSMPythonTools provides easy access to OpenStreetMap (OSM) related services, among them an Overpass endpoint, Nomina

Franz-Benjamin Mocnik 342 Dec 31, 2022
A package built to support working with spatial data using open source python

EarthPy EarthPy makes it easier to plot and manipulate spatial data in Python. Why EarthPy? Python is a generic programming language designed to suppo

Earth Lab 414 Dec 23, 2022
Download and process satellite imagery in Python using Sentinel Hub services.

Description The sentinelhub Python package allows users to make OGC (WMS and WCS) web requests to download and process satellite images within your Py

Sentinel Hub 659 Dec 23, 2022
An API built to format given addresses using Python and Flask.

An API built to format given addresses using Python and Flask. About The API returns properly formatted data, i.e. removing duplicate fields, distingu

null 1 Feb 27, 2022
Yet Another Time Series Model

Yet Another Timeseries Model (YATSM) master v0.6.x-maintenance Build Coverage Docs DOI | About Yet Another Timeseries Model (YATSM) is a Python packag

Chris Holden 60 Sep 13, 2022
Django model field that can hold a geoposition, and corresponding widget

django-geoposition A model field that can hold a geoposition (latitude/longitude), and corresponding admin/form widget. Prerequisites Starting with ve

Philipp Bosch 324 Oct 17, 2022