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
A public data repository for datasets created from TransLink GTFS data.

TransLink Spatial Data What: TransLink is the statutory public transit authority for the Metro Vancouver region. This GitHub repository is a collectio

Henry Tang 3 Jan 14, 2022
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 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

832 Dec 31, 2022
A Python interface between Earth Engine and xarray

eexarray A Python interface between Earth Engine and xarray Description eexarray was built to make processing gridded, mesoscale time series data quic

Aaron Zuspan 159 Dec 23, 2022
A modern, geometric typeface by @chrismsimpson (last commit @ 85fa625 Jun 9, 2020 before deletion)

Metropolis A modern, geometric typeface. Influenced by other popular geometric, minimalist sans-serif typefaces of the new millenium. Designed for opt

Darius 183 Dec 25, 2022
Read and write rasters in parallel using Rasterio and Dask

dask-rasterio dask-rasterio provides some methods for reading and writing rasters in parallel using Rasterio and Dask arrays. Usage Read a multiband r

Dymaxion Labs 85 Aug 30, 2022
Summary statistics of geospatial raster datasets based on vector geometries.

rasterstats rasterstats is a Python module for summarizing geospatial raster datasets based on vector geometries. It includes functions for zonal stat

Matthew Perry 437 Dec 23, 2022
Google Maps keeps old satellite imagery around for a while – this tool collects what's available for a user-specified region in the form of a GIF.

google-maps-at-88-mph The folks maintaining Google Maps regularly update the satellite imagery it serves its users, but outdated versions of the image

Noah Doersing 111 Sep 27, 2022
Code and coordinates for Matt's 2021 xmas tree

xmastree2021 Code and coordinates for Matt's 2021 xmas tree This repository contains the code and coordinates used for Matt's 2021 Christmas tree, as

Stand-up Maths 117 Jan 01, 2023
Calculate & view the trajectory and live position of any earth-orbiting satellite

satellite-visualization A cross-platform application to calculate & view the trajectory and live position of any earth-orbiting satellite in 3D. This

Space Technology and Astronomy Cell - Open Source Society 3 Jan 08, 2022
Advanced raster and geometry manipulations

buzzard In a nutshell, the buzzard library provides powerful abstractions to manipulate together images and geometries that come from different kind o

Earthcube Lab 30 Jun 20, 2022
Software for Advanced Spatial Econometrics

GeoDaSpace Software for Advanced Spatial Econometrics GeoDaSpace current version 1.0 (32-bit) Development environment: Mac OSX 10.5.x (32-bit) wxPytho

GeoDa Center 38 Jan 03, 2023
WebGL2 powered geospatial visualization layers

deck.gl | Website WebGL2-powered, highly performant large-scale data visualization deck.gl is designed to simplify high-performance, WebGL-based visua

Vis.gl 10.5k Jan 08, 2023
This program analizes films database with adresses, and creates a folium map with closest films to the coordinates

Films-map-project UCU CS lab 1.2, 1st year This program analizes films database with adresses, and creates a folium map with closest films to the coor

Artem Moskovets 1 Feb 09, 2022
A compilation of several single-beam bathymetry surveys of the Caribbean

Caribbean - Single-beam bathymetry This dataset is a compilation of several single-beam bathymetry surveys of the Caribbean ocean displaying a wide ra

Fatiando a Terra Datasets 0 Jan 20, 2022
gjf: A tool for fixing invalid GeoJSON objects

gjf: A tool for fixing invalid GeoJSON objects The goal of this tool is to make it as easy as possible to fix invalid GeoJSON objects through Python o

Yazeed Almuqwishi 91 Dec 06, 2022
python toolbox for visualizing geographical data and making maps

geoplotlib is a python toolbox for visualizing geographical data and making maps data = read_csv('data/bus.csv') geoplotlib.dot(data) geoplotlib.show(

Andrea Cuttone 976 Dec 11, 2022
Construct and use map tile grids in different projection.

Morecantile +-------------+-------------+ ymax | | | | x: 0 | x: 1 | | y: 0 | y: 0

Development Seed 67 Dec 23, 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
A light-weight, versatile XYZ tile server, built with Flask and Rasterio :earth_africa:

Terracotta is a pure Python tile server that runs as a WSGI app on a dedicated webserver or as a serverless app on AWS Lambda. It is built on a modern

DHI GRAS 531 Dec 28, 2022