{"id":13948691,"url":"https://github.com/ArtesiaWater/hydropandas","last_synced_at":"2025-07-20T10:32:28.626Z","repository":{"id":41874244,"uuid":"194251141","full_name":"ArtesiaWater/hydropandas","owner":"ArtesiaWater","description":"Module for loading observation data into custom DataFrames","archived":false,"fork":false,"pushed_at":"2025-07-15T07:36:47.000Z","size":48290,"stargazers_count":64,"open_issues_count":19,"forks_count":12,"subscribers_count":6,"default_branch":"dev","last_synced_at":"2025-07-15T09:07:07.906Z","etag":null,"topics":["data","groundwater","hydrology","observations","pandas","timeseries"],"latest_commit_sha":null,"homepage":"https://hydropandas.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArtesiaWater.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-06-28T09:58:59.000Z","updated_at":"2025-07-15T07:36:50.000Z","dependencies_parsed_at":"2022-08-11T20:00:19.131Z","dependency_job_id":"d0364f7d-894f-46e0-a6c3-82bf4b2f033a","html_url":"https://github.com/ArtesiaWater/hydropandas","commit_stats":{"total_commits":1153,"total_committers":11,"mean_commits":"104.81818181818181","dds":0.4518647007805724,"last_synced_commit":"7762f0f0bf0675b6ca2d98884a89fc33ce8a2e54"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/ArtesiaWater/hydropandas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtesiaWater%2Fhydropandas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtesiaWater%2Fhydropandas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtesiaWater%2Fhydropandas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtesiaWater%2Fhydropandas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArtesiaWater","download_url":"https://codeload.github.com/ArtesiaWater/hydropandas/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtesiaWater%2Fhydropandas/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265507401,"owners_count":23778957,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data","groundwater","hydrology","observations","pandas","timeseries"],"created_at":"2024-08-08T05:01:27.980Z","updated_at":"2025-07-20T10:32:28.609Z","avatar_url":"https://github.com/ArtesiaWater.png","language":"Python","funding_links":[],"categories":["Hydrosphere"],"sub_categories":["Ocean and Hydrology Data Access"],"readme":"\u003cimg src=\"/docs/_static/Artesia_logo.jpg\" alt=\"Artesia\" width=\"200\" align=\"right\"\u003e\n\n[![PyPi](https://img.shields.io/pypi/v/hydropandas.svg)](https://pypi.python.org/pypi/hydropandas)\n[![PyPi Supported Python Versions](https://img.shields.io/pypi/pyversions/hydropandas)](https://pypi.python.org/pypi/hydropandas)\n[\u003cimg src=\"https://github.com/codespaces/badge.svg\" height=\"20\"\u003e](https://codespaces.new/ArtesiaWater/hydropandas?quickstart=1)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n\n[![hydropandas](https://github.com/ArtesiaWater/hydropandas/actions/workflows/on_pr_master.yml/badge.svg)](https://github.com/ArtesiaWater/hydropandas/actions/workflows/on_pr_master.yml)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/c1b99f474bdc49b0a47e00e4e9f66c2f)](https://app.codacy.com/gh/ArtesiaWater/hydropandas/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/c1b99f474bdc49b0a47e00e4e9f66c2f)](https://app.codacy.com/gh/ArtesiaWater/hydropandas/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_coverage)\n[![Documentation Status](https://readthedocs.org/projects/hydropandas/badge/?version=latest)](https://hydropandas.readthedocs.io/en/latest/?badge=latest)\n[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/c1b99f474bdc49b0a47e00e4e9f66c2f)](https://app.codacy.com/gh/ArtesiaWater/hydropandas/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_coverage)\n# HydroPandas\n\nHydropandas is a Python package for reading, analyzing and writing\n(hydrological) timeseries.\n\n## Reading\n\nThe HydroPandas package provides convenient read functions from various sources.\nThe table below lists all API-accessible sources. Click a link in the first column\nfor the documentation. The \"API available\" column indicates current availability\n(updated weekly).\n\n\n| source          | observations                       | API available | location             |\n|-----------------|------------------------------------|---------------|----------------------|\n| [BRO](https://hydropandas.readthedocs.io/en/stable/examples/01_groundwater_observations.html) | Groundwater                  | [![BRO](https://github.com/ArtesiaWater/hydropandas/actions/workflows/bro.yml/badge.svg)](https://github.com/ArtesiaWater/hydropandas/actions/workflows/bro.yml) | Netherlands          |\n| [KNMI](https://hydropandas.readthedocs.io/en/stable/examples/02_knmi_observations.html) | Meteorological                 | [![KNMI](https://github.com/ArtesiaWater/hydropandas/actions/workflows/knmi.yml/badge.svg)](https://github.com/ArtesiaWater/hydropandas/actions/workflows/knmi.yml) | Netherlands          |\n| [Lizard](https://hydropandas.readthedocs.io/en/stable/examples/06_lizard.html) | Groundwater                  | [![Lizard](https://github.com/ArtesiaWater/hydropandas/actions/workflows/lizard.yml/badge.svg)](https://github.com/ArtesiaWater/hydropandas/actions/workflows/lizard.yml) | Netherlands (Vitens) |\n| [Waterconnect](https://hydropandas.readthedocs.io/en/stable/examples/09_water_connect.html) | Groundwater                  | [![Waterconnect](https://github.com/ArtesiaWater/hydropandas/actions/workflows/waterconnect.yml/badge.svg)](https://github.com/ArtesiaWater/hydropandas/actions/workflows/waterconnect.yml) | South Australia      |\n| [Waterinfo](https://hydropandas.readthedocs.io/en/stable/examples/08_waterinfo.html) | Surface water quantity and quality | [![Waterinfo](https://github.com/ArtesiaWater/hydropandas/actions/workflows/waterinfo.yml/badge.svg)](https://github.com/ArtesiaWater/hydropandas/actions/workflows/waterinfo.yml) | Netherlands          |\n---\n\nSome sources also provide files readable by HydroPandas.\n\n\n| source          | observations                       | file format          | location             |\n|-----------------|------------------------------------|----------------------|----------------------|\n| [BRO](https://hydropandas.readthedocs.io/en/stable/examples/01_groundwater_observations.html) | Groundwater                  | xml          | Netherlands          |\n| [DINO](https://hydropandas.readthedocs.io/en/stable/examples/01_groundwater_observations.html) | Groundwater / surface water                  | csv          | Netherlands          |\n| [FEWS](https://hydropandas.readthedocs.io/en/stable/examples/07_fews.html) | Groundwater / surface water                  | xml          | Netherlands          |\n| [KNMI](https://hydropandas.readthedocs.io/en/stable/examples/02_knmi_observations.html) | Meteorological                 | txt          | Netherlands          |\n| [Pastastore](https://hydropandas.readthedocs.io/en/stable/examples/03_hydropandas_and_pastas.html) | Time series models                  | NA      | NA      |\n| [Waterinfo](https://hydropandas.readthedocs.io/en/stable/examples/08_waterinfo.html) | Surface water quantity and quality | csv / zip          | Netherlands          |\n| Wiski (no docs available)                | Groundwater | csv          | Netherlands          |\n---\n## Install\n\nInstall the module with pip:\n\n`pip install hydropandas`\n\nFor some functionality additional packages are required. Install all optional packages:\n\n`pip install hydropandas[full]`\n\nFor installing in development mode, clone the repository and install by\ntyping `pip install -e .[full]` from the module root directory.\n\n## Documentation\n\n-   Documentation is provided on the dedicated website\n    [hydropandas.readthedocs.io](https://hydropandas.readthedocs.io/en/stable/)\n-   Examples are available in the [examples directory on the documentation website](https://hydropandas.readthedocs.io/en/stable/examples.html)\n-   View and edit the example notebooks of hydropandas in\n    [GitHub Codespaces](https://codespaces.new/hydropandas/hydropandas?quickstart=1)\n\n## Get in touch\n\n- Questions on HydroPandas (\"How can I?\") can be asked and answered on [Github Discussions](https://github.com/ArtesiaWater/hydropandas/discussions).\n- Bugs, feature requests and other improvements can be posted as [Github Issues](https://github.com/ArtesiaWater/hydropandas/issues).\n- Find out how to contribute to HydroPandas at our [Contribution page](https://hydropandas.readthedocs.io/en/stable/contribute.html).\n\n\n## Structure\n\nThe HydroPandas package allows users to store a timeseries and metadata in a\nsingle object (Obs class). Or store a collection of timeseries with metadata\nin a single object (ObsCollection class). Both inheret from a pandas DataFrame\nand are extended with custom methods and attributes related to hydrological timeseries.\n\n### The Obs class\n\nThe Obs class holds the measurements and metadata for one timeseries. There are\ncurrently 7 specific Obs classes for different types of measurements:\n\n- GroundwaterObs: for groundwater measurements\n- WaterQualityObs: for groundwater quality measurements\n- WaterlvlObs: for surface water level measurements\n- ModelObs: for \"observations\" from a MODFLOW model\n- MeteoObs: for meteorological observations\n- PrecipitationObs: for precipitation observations, subclass of MeteoObs\n- EvaporationObs: for evaporation observations, subclass of MeteoObs\n\nEach of these Obs classes is essentially a pandas DataFrame with additional\nmethods and attributes related to the type of measurement that it holds.\nEach Obs object also contains specific methods to read data from specific sources.\n\n### The ObsCollection class\n\nThe ObsCollection class hold the data for a collection of Obs classes, e.g. \n10 timeseries of the groundwater level in a certain area. The\nObsCollection is essentialy a pandas DataFrame in which each timeseries is stored\nin a different row. Each row contains metadata (e.g. latitude and longitude\nof the observation point) and the Obs object that holds the\nmeasurements. It's recommended to use one ObsCollection per observation type — for \nexample, group 10 GroundwaterObs in one collection and 5 PrecipitationObs in another.\n\nMore information on dealing with Obs and ObsCollection objects in [the documentation](https://hydropandas.readthedocs.io/en/stable/examples/00_hydropandas_objects.html)\n\n## Authors\n\n- Onno Ebbens, Artesia\n- Ruben Caljé, Artesia\n- Davíd Brakenhoff, Artesia\n- Martin Vonk, Artesia\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FArtesiaWater%2Fhydropandas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FArtesiaWater%2Fhydropandas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FArtesiaWater%2Fhydropandas/lists"}