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/[email protected]
    • #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
FDTD simulator that generates s-parameters from OFF geometry files using a GPU

Emport Overview This repo provides a FDTD (Finite Differences Time Domain) simulator called emport for solving RF circuits. Emport outputs its simulat

4 Dec 15, 2022
LicenseLocation - License Location With Python

LicenseLocation Hi,everyone! ❤ 🧡 💛 💚 💙 💜 This is my first project! ✔ Actual

The Bin 1 Jan 25, 2022
A python package that extends Google Earth Engine.

A python package that extends Google Earth Engine GitHub: https://github.com/davemlz/eemont Documentation: https://eemont.readthedocs.io/ PyPI: https:

David Montero Loaiza 307 Jan 01, 2023
Open GeoJSON data on geojson.io

geojsonio.py Open GeoJSON data on geojson.io from Python. geojsonio.py also contains a command line utility that is a Python port of geojsonio-cli. Us

Jacob Wasserman 114 Dec 21, 2022
PyTorch implementation of ''Background Activation Suppression for Weakly Supervised Object Localization''.

Background Activation Suppression for Weakly Supervised Object Localization PyTorch implementation of ''Background Activation Suppression for Weakly S

34 Dec 27, 2022
Blender addons to make the bridge between Blender and geographic data

Blender GIS Blender minimal version : 2.8 Mac users warning : currently the addon does not work on Mac with Blender 2.80 to 2.82. Please do not report

5.9k Jan 02, 2023
3D extension built off of shapely to make working with geospatial/trajectory data easier in python.

PyGeoShape 3D extension to shapely and pyproj to make working with geospatial/trajectory data easier in python. Getting Started Installation pip The e

Marc Brittain 5 Dec 27, 2022
Python bindings and utilities for GeoJSON

geojson This Python library contains: Functions for encoding and decoding GeoJSON formatted data Classes for all GeoJSON Objects An implementation of

Jazzband 765 Jan 06, 2023
A ready-to-use curated list of Spectral Indices for Remote Sensing applications.

A ready-to-use curated list of Spectral Indices for Remote Sensing applications. GitHub: https://github.com/davemlz/awesome-ee-spectral-indices Docume

David Montero Loaiza 488 Jan 03, 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 04, 2022
Minimum Bounding Box of Geospatial data

BBOX Problem definition: The spatial data users often are required to obtain the coordinates of the minimum bounding box of vector and raster data in

Ali Khosravi Kazazi 1 Sep 08, 2022
Computer Vision in Python

Mahotas Python Computer Vision Library Mahotas is a library of fast computer vision algorithms (all implemented in C++ for speed) operating over numpy

Luis Pedro Coelho 792 Dec 20, 2022
Earthengine-py-notebooks - A collection of 360+ Jupyter Python notebook examples for using Google Earth Engine with interactive mapping

earthengine-py-notebooks A collection of 360+ Jupyter Python notebook examples for using Google Earth Engine with interactive mapping Contact: Qiushen

Qiusheng Wu 1.1k Dec 29, 2022
A multi-page streamlit app for the geospatial community.

A multi-page streamlit app for the geospatial community.

Qiusheng Wu 522 Dec 30, 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
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
glTF to 3d Tiles Converter. Convert glTF model to Glb, b3dm or 3d tiles format.

gltf-to-3d-tiles glTF to 3d Tiles Converter. Convert glTF model to Glb, b3dm or 3d tiles format. Usage λ python main.py --help Usage: main.py [OPTION

58 Dec 27, 2022
🌐 Local tile server for viewing geospatial raster files with ipyleaflet or folium

🌐 Local Tile Server for Geospatial Rasters Need to visualize a rather large (gigabytes) raster you have locally? This is for you. A Flask application

Bane Sullivan 192 Jan 04, 2023
Obtain a GNSS position fix from an 11-millisecond raw GNSS signal snapshot

Obtain a GNSS position fix from an 11-millisecond raw GNSS signal snapshot without any prior knowledge about the position of the receiver and only coarse knowledge about the time.

Jonas Beuchert 2 Nov 17, 2022
Python bindings to libpostal for fast international address parsing/normalization

pypostal These are the official Python bindings to https://github.com/openvenues/libpostal, a fast statistical parser/normalizer for street addresses

openvenues 651 Dec 16, 2022