From cfd459d0d632f1519ffde2ba441c9629014a7723 Mon Sep 17 00:00:00 2001 From: Raoul Collenteur Date: Wed, 25 Sep 2024 18:03:30 +0200 Subject: [PATCH] Remove legacy packages and add to the bottom --- generate_list.py | 71 +++++++++++- list.json | 279 +++++++++++++++++++++++++++++++---------------- 2 files changed, 253 insertions(+), 97 deletions(-) diff --git a/generate_list.py b/generate_list.py index d96c504..19edff5 100644 --- a/generate_list.py +++ b/generate_list.py @@ -33,13 +33,19 @@ def generate_list(): with open("README.md", "w") as file: file.write("# Open Source Python Packages in Hydrology\n") file.write( - "My attempt to list interesting open source python projects that can be used in the field of Hydrology.In a 2024 update I have automated various tasks to maintain the quality of this list, and added more information about the packages thatcan serve as potential quality indicators. In the description it is now listed when the last update on Pypi/Conda was, to highlight whether or not a package is probably active (🟢) or inactive (🔴). Also information about the FAIR data repository, description paper, and Continuous Integration testing (CI) is included. All this in the hope that more and more packages develop according to common research software developement best practices. Suggestions as issues or pull requests are welcome! \n\n" + "My attempt to list interesting open source python projects that can be used in the field of Hydrology. In a 2024 update, I automated various tasks to maintain the quality of this list, and added more information about the packages that can serve as quality indicators. The description now lists when the last update on Pypi/Conda was, to highlight whether a package is probably active (🟢) or inactive (🔴). Also information about the FAIR repository, description paper, and Continuous Integration testing (CI) is included. All this in the hope that more and more packages develop according to common research software developement best practices. Suggestions as issues or pull requests are welcome! \n\n" ) file.write("Raoul A. Collenteur, Eawag.\n\n") categories = {} + legacy_packages = [] + for package_name, package in data.items(): + if package.get("legacy", False): + legacy_packages.append((package_name, package)) + continue + category = package["category"] if category not in categories: categories[category] = [] @@ -102,11 +108,68 @@ def generate_list(): f"| [{package_name}]({url}) | {description} | {pypi_logo} {conda_logo} | {docs_logo} | {ci_logo} | {doi_paper_logo} |\n" ) - file.write("# Background Info\n") + if legacy_packages: + file.write("\n## Legacy Packages\n") file.write( - 'UPDATE: The Pypa package authority has now added ["Hydrology" as a classifier](https://github.com/pypa/warehouse/issues/5728) so we can start [collecting python packages](https://pypi.org/search/?q=&o=&c=Topic+%3A%3A+Scientific%2FEngineering+%3A%3A+Hydrology) used by the hydrological community! If you are maintaining a python package, please add `Topic :: Scientific/Engineering :: Hydrology` to your setup.py so people can find your package.\n\n' + "| Name | Description | PyPI Conda | Docs | CI | Paper |\n" ) - file.write("\n") + file.write( + "| ---- | ------------------------------------------ | ---------- | ---- | -- | ----- |\n" + ) + for package_name, package in legacy_packages: + description = package["description"] + url = package["url"] + pypi_url = package.get("pypi", "") + conda_url = package.get("conda", "") + docs_url = package.get("docs", "") + ci_status = package.get("CI", 0) + version = package.get("version", "") + last_update = package.get("last_update", "") + + if version or last_update: + if last_update: + formatted_date = format_date(last_update) + if is_date_old(last_update): + formatted_date = f"🔴 {formatted_date}" + elif is_date_recent(last_update): + formatted_date = f"🟢 {formatted_date}" + else: + formatted_date = "🔴 No date" + description += ( + f" (Version: {version}, Last Update: {formatted_date})" + ) + + pypi_logo = ( + f"[![PyPI](https://img.shields.io/badge/-3776AB?logo=python&logoColor=white)]({pypi_url})" + if pypi_url + else "" + ) + conda_logo = ( + f"[![Conda](https://img.shields.io/badge/-44A833?logo=anaconda&logoColor=white)]({conda_url})" + if conda_url + else "" + ) + docs_logo = ( + f"[![Docs](https://img.shields.io/badge/-217346?logo=readthedocs&logoColor=white)]({docs_url})" + if docs_url + else "" + ) + ci_logo = "🟢" if ci_status else "" + doi_paper_logo = ( + f"[![DOI](https://img.shields.io/badge/DOI-10.1000/xyz123-blue)]({package.get('doi_paper', '')})" + if package.get("doi_paper", "") + else "" + ) + + file.write( + f"| [{package_name}]({url}) | {description} | {pypi_logo} {conda_logo} | {docs_logo} | {ci_logo} | {doi_paper_logo} |\n" + ) + + file.write("\n# Background Info\n") + file.write( + 'UPDATE: The Pypa package authority has now added ["Hydrology" as a classifier](https://github.com/pypa/warehouse/issues/5728) so we can start [collecting python packages](https://pypi.org/search/?q=&o=&c=Topic+%3A%3A+Scientific%2FEngineering+%3A%3A+Hydrology) used by the hydrological community! If you are maintaining a python package, please add `Topic :: Scientific/Engineering :: Hydrology` to your setup.py so people can find your package.\n\n' + ) + file.write("\n") if __name__ == "__main__": diff --git a/list.json b/list.json index 722d9b0..8665312 100644 --- a/list.json +++ b/list.json @@ -10,7 +10,8 @@ "doi_software": "", "doi_paper": "https://doi.org/10.1016/j.envsoft.2010.12.009", "conda": "", - "version": "2.0.0" + "version": "2.0.0", + "legacy": "" }, "VIC": { "description": "The Variable Infiltration Capacity (VIC) Macroscale Hydrologic Model.", @@ -23,7 +24,8 @@ "doi_software": "https://zenodo.org/doi/10.5281/zenodo.593392", "doi_paper": "http://dx.doi.org/10.1029/94jd00483", "conda": "https://anaconda.org/conda-forge/VIC", - "version": "0.0.1" + "version": "0.0.1", + "legacy": "" }, "Xanthos": { "description": "Xanthos is an open-source hydrologic model, written in Python, designed to quantify and analyze global water availability.", @@ -36,7 +38,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "2.4.1" + "version": "2.4.1", + "legacy": "" }, "wrfhydropy": { "description": "wrfhydrpy is a Python API for the WRF-Hydro modelling system.", @@ -49,7 +52,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.0.21" + "version": "0.0.21", + "legacy": "" }, "EXP-HYDRO": { "description": "EXP-HYDRO is a catchment scale hydrological model that operates at a daily time-step. It takes as inputs the daily values of precipitation, air temperature, and potential evapotranspiration, and simulates daily streamflow at the catchment outlet.", @@ -62,7 +66,8 @@ "doi_software": "", "doi_paper": "https://doi.org/10.1002/hyp.11199", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "RRMPG": { "description": "Rainfall-Runoff modelling playground.", @@ -75,7 +80,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "LHMP": { "description": "Lumped Hydrological Models Playground.", @@ -88,7 +94,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "SMARTPy": { "description": "Python implementation of the rainfall-runoff model SMART", @@ -101,7 +108,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.2.2" + "version": "0.2.2", + "legacy": "" }, "PyStream": { "description": "Python implementation of the STREAM hydrological rainfall-runoff model.", @@ -114,7 +122,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.1" + "version": "0.1", + "legacy": "" }, "HydPy": { "description": "A framework for the development and application of hydrological models based on Python.", @@ -127,7 +136,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "6.1.1" + "version": "6.1.1", + "legacy": "" }, "Catchmod": { "description": "CATCHMOD is widely used rainfall runoff model in the United Kingdom. It was introduced by Wilby (1994).", @@ -140,7 +150,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "wflow": { "description": "wflow consists of a set of Python programs that can be run on the command line and perform hydrological simulations. The models are based on the PCRaster Python framework", @@ -153,7 +164,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/wflow", - "version": "2020.1.2" + "version": "2020.1.2", + "legacy": 1 }, "PyTOPKAPI": { "description": "PyTOPKAPI is a BSD licensed Python library implementing the TOPKAPI Hydrological model (Liu and Todini, 2002).", @@ -166,7 +178,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "mhmpy": { "description": "A Python-API for the mesoscale Hydrological Model.", @@ -179,7 +192,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.0.0" + "version": "0.0.0", + "legacy": "" }, "SuperflexPy": { "description": "SuperflexPy: A new open source framework for building conceptual hydrological models", @@ -192,7 +206,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "1.3.2" + "version": "1.3.2", + "legacy": "" }, "NeuralHydrology": { "description": "Python library to train neural networks with a strong focus on hydrological applications.", @@ -205,7 +220,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "1.11.0" + "version": "1.11.0", + "legacy": "" }, "DRYP": { "description": "Dryland Water Partition model.", @@ -218,7 +234,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": 1 }, "LuKars": { "description": "The LuKARS model is a lumped karst hydrological model to perform studies in karstic environments.", @@ -231,7 +248,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "SUMMA": { "description": "A hydrologic modeling framework that can be used for the systematic analysis of alternative model conceptualizations with respect to flux parameterizations, spatial configurations, and numerical solution techniques.", @@ -244,7 +262,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/SUMMA", - "version": "1.2.0" + "version": "1.2.0", + "legacy": "" }, "MetPy": { "description": "MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data.", @@ -257,7 +276,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/MetPy", - "version": "1.6.3" + "version": "1.6.3", + "legacy": "" }, "PyEto": { "description": "PyETo is a Python library for calculating reference crop evapotranspiration (ETo), sometimes referred to as potential evapotranspiration (PET). The library provides numerous functions for estimating missing meteorological data.", @@ -270,7 +290,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "pyfao56": { "description": "A Python implementation of the FAO-56 dual crop coefficient approach for crop water use estimation and irrigation scheduling.", @@ -283,7 +304,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/pyfao56", - "version": "1.3.0" + "version": "1.3.0", + "legacy": "" }, "Improver": { "description": "IMPROVER is a library of algorithms for meteorological post-processing and verification.", @@ -296,7 +318,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Improver", - "version": "1.9.0" + "version": "1.9.0", + "legacy": "" }, "MetSim": { "description": "MetSim is a meteorological simulator and forcing disaggregator for hydrologic modeling and climate applications.", @@ -309,7 +332,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/MetSim", - "version": "2.4.4" + "version": "2.4.4", + "legacy": "" }, "MELODIST": { "description": "MELODIST is an open-source toolbox written in Python for disaggregating daily meteorological time series to hourly time steps.", @@ -322,7 +346,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.1.6" + "version": "0.1.6", + "legacy": "" }, "PyCat": { "description": "Climate Analysis Tool written in python", @@ -335,7 +360,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.1.1" + "version": "0.1.1", + "legacy": "" }, "PySteps": { "description": "pySTEPS is a community-driven initiative for developing and maintaining an easy to use, modular, free and open source Python framework for short-term ensemble prediction systems.", @@ -348,7 +374,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/PySteps", - "version": "1.11.0" + "version": "1.11.0", + "legacy": "" }, "Evaporation": { "description": "Calculation of evaporation and transpiration.", @@ -361,7 +388,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "2.0.1" + "version": "2.0.1", + "legacy": "" }, "rainymotion": { "description": "Python library for radar-based precipitation nowcasting based on optical flow techniques.", @@ -374,7 +402,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "pyet": { "description": "A python-package for calculating reference and potential evaporation.", @@ -387,7 +416,8 @@ "doi_software": "https://zenodo.org/doi/10.5281/zenodo.5896799", "doi_paper": "https://doi.org/10.5194/gmd-17-7083-2024", "conda": "https://anaconda.org/conda-forge/pyet", - "version": "1.3.1" + "version": "1.3.1", + "legacy": "" }, "SPEI": { "description": "A simple Python package to calculate and visualize some popular drought indices such as the SPI, SPEI and SGI.", @@ -400,7 +430,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.5.0" + "version": "0.5.0", + "legacy": "" }, "Pytesmo": { "description": "python Toolbox for the Evaluation of Soil Moisture Observations.", @@ -413,7 +444,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.16.0" + "version": "0.16.0", + "legacy": "" }, "Phydrus": { "description": "Python implementation of the HYDRUS-1D unsaturated zone model", @@ -426,7 +458,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.2.0" + "version": "0.2.0", + "legacy": "" }, "VS2DPY": { "description": "Python implementation of the VS2D unsaturated zone model.", @@ -439,7 +472,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.3.0" + "version": "0.3.0", + "legacy": "" }, "pedon": { "description": "Python package for (unsaturated) soil properties including pedotransfer functions.", @@ -452,7 +486,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.0.6" + "version": "0.0.6", + "legacy": "" }, "FloPy": { "description": "The Python interface to MODFLOW.", @@ -465,7 +500,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/FloPy", - "version": "3.8.1" + "version": "3.8.1", + "legacy": "" }, "imod-python": { "description": "Make massive MODFLOW models.", @@ -478,7 +514,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "Idfpy": { "description": "A simple module for reading and writing iMOD IDF files. IDF is a simple binary format used by the iMOD groundwater modelling software.", @@ -491,7 +528,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "WellApplication": { "description": "Set of tools for groundwater level and water chemistry analysis.", @@ -504,7 +542,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/WellApplication", - "version": "0.5.6" + "version": "0.5.6", + "legacy": "" }, "TIMML": { "description": "A Multi-Layer, Analytic Element Model.", @@ -517,7 +556,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/TIMML", - "version": "6.4.1" + "version": "6.4.1", + "legacy": "" }, "TTim": { "description": "A Multi-Layer, Transient, Analytic Element Model.", @@ -530,7 +570,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/TTim", - "version": "0.6.6" + "version": "0.6.6", + "legacy": "" }, "PyHELP": { "description": "A Python library for the assessment of spatially distributed groundwater recharge and hydrological components with HELP.", @@ -543,7 +584,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.4.0" + "version": "0.4.0", + "legacy": "" }, "Anaflow": { "description": "A python-package containing analytical solutions for the groundwater flow equation", @@ -556,7 +598,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Anaflow", - "version": "1.1.0" + "version": "1.1.0", + "legacy": "" }, "WellTestPy": { "description": "A python-package for handling well based field campaigns.", @@ -569,7 +612,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/WellTestPy", - "version": "1.2.0" + "version": "1.2.0", + "legacy": "" }, "HydroGeoSines": { "description": "Signal In the Noise Exploration Software for Hydrogeological Datasets.", @@ -582,7 +626,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "nlmod": { "description": "Python code to process, build and visualize MODFLOW models in the Netherlands. Model data is stored in a xarray Datasets and geopandas GeoDataFrames.", @@ -595,7 +640,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.8.1" + "version": "0.8.1", + "legacy": "" }, "Hydropy": { "description": "Analysis of hydrological oriented time series.", @@ -608,7 +654,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.1.2" + "version": "0.1.2", + "legacy": "" }, "Pastas": { "description": "Analysis of hydrological time series using time series models.", @@ -621,7 +668,8 @@ "doi_software": "https://doi.org/10.5281/zenodo.1465866", "doi_paper": "http://doi.org/10.5281/zenodo.1465866", "conda": "https://anaconda.org/conda-forge/Pastas", - "version": "1.7.0" + "version": "1.7.0", + "legacy": "" }, "Hydrostats": { "description": "Tools for use in comparison studies, specifically for use in the field of hydrology.", @@ -634,7 +682,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Hydrostats", - "version": "0.78" + "version": "0.78", + "legacy": "" }, "htimeseries": { "description": "This module provides the HTimeseries class, which is a layer on top of pandas, offering a little more functionality.", @@ -647,7 +696,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "7.0.0" + "version": "7.0.0", + "legacy": "" }, "HydroAnalysis": { "description": "Python package to calculate indices and metrics useful in the everyday job of a hydrologist.", @@ -660,7 +710,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "1.0.0" + "version": "1.0.0", + "legacy": "" }, "HydroPandas": { "description": "Module for loading time series data into custom DataFrames", @@ -673,7 +724,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.12.2" + "version": "0.12.2", + "legacy": "" }, "traval": { "description": "Tools for applying automatic error detection schemes to timeseries", @@ -686,7 +738,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.5.0" + "version": "0.5.0", + "legacy": "" }, "PcRaster": { "description": "Is a collection of software targeted at the development and deployment of spatio-temporal environmental models.", @@ -699,7 +752,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/PcRaster", - "version": "4.4.1" + "version": "4.4.1", + "legacy": "" }, "PyGeoprocessing": { "description": "A Python/Cython based library that provides a set of commonly used raster, vector, and hydrological operations for GIS processing.", @@ -712,7 +766,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/PyGeoprocessing", - "version": "2.4.4" + "version": "2.4.4", + "legacy": "" }, "Pysheds": { "description": "Simple and fast watershed delineation in python.", @@ -725,7 +780,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Pysheds", - "version": "0.4" + "version": "0.4", + "legacy": "" }, "Lidar": { "description": "Terrain and hydrological analysis based on LiDAR-derived digital elevation models (DEM).", @@ -738,7 +794,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Lidar", - "version": "0.8.3" + "version": "0.8.3", + "legacy": "" }, "LMFIT": { "description": "Non-Linear Least Squares Minimization, with flexible Parameter settings, based on scipy.optimize.leastsq, and with many additional classes and methods for curve fitting.", @@ -751,7 +808,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/LMFIT", - "version": "1.3.2" + "version": "1.3.2", + "legacy": "" }, "SPOTpy": { "description": "A Statistical Parameter Optimization Tool for Python.", @@ -764,7 +822,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/SPOTpy", - "version": "1.6.2" + "version": "1.6.2", + "legacy": "" }, "PyGLUE": { "description": "Generalised Likelihood Uncertainty Estimation (GLUE) Framework.", @@ -777,7 +836,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.0.4" + "version": "0.0.4", + "legacy": "" }, "Pyemu": { "description": "Python modules for model-independent uncertainty analyses, data-worth analyses, and interfacing with PEST(++).", @@ -790,7 +850,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Pyemu", - "version": "1.3.7" + "version": "1.3.7", + "legacy": "" }, "HPGL": { "description": "High Performance Geostatistics Library.", @@ -803,7 +864,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "HydroErr": { "description": "Goodness of Fit metrics for use in comparison studies, specifically in the field of hydrology.", @@ -816,7 +878,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/HydroErr", - "version": "1.24" + "version": "1.24", + "legacy": "" }, "Climate-indices": { "description": "Climate indices for drought monitoring, community reference implementations in Python.", @@ -829,7 +892,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "2.0.1" + "version": "2.0.1", + "legacy": "" }, "HydroLM": { "description": "The HydroLM package contains a class and functions for automating linear regressions OLS for hydrologists.", @@ -842,7 +906,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "1.0.7" + "version": "1.0.7", + "legacy": "" }, "PySDI": { "description": "Pysdi is a set of open source scripts that compute non-parametric standardized drought indices (SDI) using raster data sets as input data.", @@ -855,7 +920,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.2.6.3.1" + "version": "0.2.6.3.1", + "legacy": "" }, "xskillscore": { "description": "Metrics for verifying forecasts.", @@ -868,7 +934,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/xskillscore", - "version": "0.0.26" + "version": "0.0.26", + "legacy": "" }, "HKVFEWSPY": { "description": "Connection to the Delft FEWS servers.", @@ -881,7 +948,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "1.0.2" + "version": "1.0.2", + "legacy": "" }, "Openradar": { "description": "Library for processing a set of dutch, german and belgian precipitation radars into calibrated composites.", @@ -894,7 +962,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "1.0.1" + "version": "1.0.1", + "legacy": "" }, "Ecohydrolib": { "description": "Libraries and command-line scripts for performing ecohydrology data preparation workflows.", @@ -907,7 +976,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "1.29" + "version": "1.29", + "legacy": "" }, "Ulmo": { "description": "Clean, simple and fast access to public hydrology and climatology data.", @@ -920,7 +990,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Ulmo", - "version": "0.8.8" + "version": "0.8.8", + "legacy": "" }, "PyHIS": { "description": "PyHIS is a python library for querying CUAHSI*-HIS** web services.", @@ -933,7 +1004,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.1.1-alpha" + "version": "0.1.1-alpha", + "legacy": "" }, "Wetterdienst": { "description": "Python Toolset For Accessing Weather Data From German Weather Service.", @@ -946,7 +1018,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Wetterdienst", - "version": "0.95.1" + "version": "0.95.1", + "legacy": "" }, "Dataretrieval": { "description": "Dataretrieval is a Python package for obtaining USGS or EPA water quality data, streamflow data, and metadata directly from web services.", @@ -959,7 +1032,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Dataretrieval", - "version": "1.0.10" + "version": "1.0.10", + "legacy": "" }, "ESMPY": { "description": "Earth System Modeling Framework (ESMF) Python interface.", @@ -972,7 +1046,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/ESMPY", - "version": "8.6.1" + "version": "8.6.1", + "legacy": "" }, "PyHSPF": { "description": "Python extensions to the Hydrological Simulation Program in Fortran (HSPF).", @@ -985,7 +1060,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.2.4" + "version": "0.2.4", + "legacy": "" }, "PYWR": { "description": "Spatial allocation tool.", @@ -998,7 +1074,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/PYWR", - "version": "1.26.0" + "version": "1.26.0", + "legacy": "" }, "SPHY": { "description": "Spatial Processes in HYdrology (SPHY) model.", @@ -1011,7 +1088,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "2.2.1" + "version": "2.2.1", + "legacy": "" }, "xsboringen": { "description": "(In Dutch) A python library for processing and plotting borehole and CPT data, developed for open data formats in the Netherlands.", @@ -1024,7 +1102,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "PyMT": { "description": "PyMT is an Open Source Python package that provides the necessary tools used for the coupling of models that expose the Basic Model Interface (BMI).", @@ -1037,7 +1116,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/PyMT", - "version": "0.5.1" + "version": "0.5.1", + "legacy": "" }, "Landlab": { "description": "The Landlab project creates an environment in which scientists can build a numerical landscape model without having to code all of the individual components.", @@ -1050,7 +1130,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Landlab", - "version": "2.8.0" + "version": "2.8.0", + "legacy": "" }, "EFlowCalc": { "description": "Calculator of Streamflow Characteristics.", @@ -1063,7 +1144,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.1.0" + "version": "0.1.0", + "legacy": "" }, "IRIS": { "description": "A powerful, format-agnostic, and community-driven Python library for analysing and visualising Earth science data.", @@ -1076,7 +1158,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/IRIS", - "version": "1.0.7" + "version": "1.0.7", + "legacy": "" }, "Hydrointerp": { "description": "A Python package for interpolating hydrologic data.", @@ -1089,7 +1172,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "1.2.13" + "version": "1.2.13", + "legacy": "" }, "Hydrofunctions": { "description": "A suite of convenience functions for working with hydrology data in an interactive Python session.", @@ -1102,7 +1186,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Hydrofunctions", - "version": "0.2.4" + "version": "0.2.4", + "legacy": "" }, "Shyft": { "description": "Shyft is the open-source toolbox for the energy-market domain, funded and supported by Statkraft.", @@ -1115,7 +1200,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "18.0.0.post1" + "version": "18.0.0.post1", + "legacy": "" }, "Hydroshare": { "description": "HydroShare is a collaborative website for better access to data and models in the hydrologic sciences.", @@ -1128,7 +1214,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "" + "version": "", + "legacy": "" }, "Hydrobox": { "description": "Hydrological preprocessing and analysis toolbox build upon pandas and numpy.", @@ -1141,7 +1228,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.2.0" + "version": "0.2.0", + "legacy": "" }, "Wetland": { "description": "Wetland is a toolset for mapping surface water and wetland hydrological dynamics using fine-resolution aerial imagery within Google Earth Engine (GEE).", @@ -1154,7 +1242,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "0.1.0" + "version": "0.1.0", + "legacy": "" }, "iRONS": { "description": "iRONS (interactive Reservoir Operation Notebooks and Software) is a python package that enables the simulation, forecasting and optimisation of reservoir systems.", @@ -1167,7 +1256,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "1.0" + "version": "1.0", + "legacy": "" }, "Mesas": { "description": "Multiresolution Estimation of StorAge Selection functions.", @@ -1180,7 +1270,8 @@ "doi_software": "", "doi_paper": "", "conda": "https://anaconda.org/conda-forge/Mesas", - "version": "1.20240418" + "version": "1.20240418", + "legacy": "" }, "pydsstools": { "description": "Python library for simple [HEC-DSS](https://www.hec.usace.army.mil/software/hec-dss/) functions.", @@ -1193,7 +1284,8 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "2.3.2" + "version": "2.3.2", + "legacy": "" }, "eWaterCycle": { "description": "Platform to do computational hydrology using many of the above mentioned models.", @@ -1206,6 +1298,7 @@ "doi_software": "", "doi_paper": "", "conda": "", - "version": "2.3.1" + "version": "2.3.1", + "legacy": "" } } \ No newline at end of file