hydrofunctions
A suite of convenience functions for working with hydrology data in an interactive Python session.
Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
3 of 9 committers (33.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.8%) to scientific vocabulary
Keywords
hydrology
scientific-visualization
water
Last synced: 6 months ago
·
JSON representation
Repository
A suite of convenience functions for working with hydrology data in an interactive Python session.
Basic Info
Statistics
- Stars: 70
- Watchers: 5
- Forks: 28
- Open Issues: 10
- Releases: 9
Topics
hydrology
scientific-visualization
water
Created over 9 years ago
· Last pushed about 2 years ago
Metadata Files
Readme
Contributing
License
README.rst
===============================
HydroFunctions
===============================
.. image:: https://img.shields.io/pypi/v/hydrofunctions.svg
:target: https://pypi.python.org/pypi/hydrofunctions
:alt: Visit Hydrofunctions on PyPI
.. image:: https://github.com/mroberge/hydrofunctions/actions/workflows/test.yaml/badge.svg
:target: https://github.com/mroberge/hydrofunctions/actions/workflows/test.yaml
:alt: Unit Testing Status
.. image:: https://codecov.io/gh/mroberge/hydrofunctions/branch/master/graph/badge.svg
:target: https://codecov.io/gh/mroberge/hydrofunctions
:alt: Code Coverage Status
.. image:: https://readthedocs.org/projects/hydrofunctions/badge/?version=latest
:target: https://hydrofunctions.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://img.shields.io/github/license/mashape/apistatus.svg
:target: https://github.com/mroberge/hydrofunctions/blob/master/LICENSE
:alt: MIT license
A suite of convenience functions for exploring water data in Python.
Features
--------
* Retrieves stream data from the USGS NWIS service
* Select data using multiple site numbers, by state, county codes, or a boundary box
* Preserves NWIS metadata, including NoData values
* Helpful error messages to help you write valid requests
* Extracts data into a Pandas dataframe, json, or dict
* Plot beautiful graphs in Jupyter Notebooks
* hydrographs (or time series of any data)
* flow duration charts
* cycle plots to illustrate annual or diurnal cycles
* Interactive map for finding stream gauge ID numbers
* Plotting and manipulation through Pandas dataframes
* Retrieve USGS rating curves, peak discharges, field notes, and site files for gauging stations
* Retrieve USGS daily, monthly, and annual statistics for gauging stations
* Saves data in compact, easy-to-use parquet files instead of requesting the same dataset repeatedly
* **Massive** `Users Guide`_ **that makes Hydrology AND Data Science easy!**
Still in active development! Let me know what features you want!
Read the `Users Guide`_ for more details.
Basic Usage
-----------
First, import hydrofunctions into your project. If you plan to work with Jupyter
notebooks, then go ahead and enable automatic chart display:
.. code-block:: ipython
In [1]: import hydrofunctions as hf
%matplotlib inline
Create an NWIS data object to hold our request and the data we will retrieve.
We will request the instantaneous values ('iv') for site '01585200' for the
past 55 days:
.. code-block:: ipython
In [2]: herring = hf.NWIS('01585200', 'iv', period='P55D')
Requested data from https://waterservices.usgs.gov/nwis/iv/?format=json%2C1.1&sites=01585200&period=P55D
You can check that the request went smoothly:
.. code-block:: ipython
In [3]: herring.ok
Out [3]: True
Find out what data we received:
.. code-block:: ipython
In [4]: herring
Out [4]: USGS:01585200: WEST BRANCH HERRING RUN AT IDLEWYLDE, MD
00060: <5 * Minutes> Discharge, cubic feet per second
00065: <5 * Minutes> Gage height, feet
Start: 2019-05-25 01:05:00+00:00
End: 2019-07-19 19:05:00+00:00
This tells us the name of our site and gives a list of the parameters that we
have. For each parameter it lists how frequently the data were collected, and
it shows the common name of the parameter and its units.
Create a dataframe using only our discharge data, and list the first five items:
.. code-block:: ipython
In [5]: herring.df('discharge').head()
Out [5]:
*--a table with our data appears--*
+------------------------------+---------------------------+
| datetimeUTC | USGS:01585200:00060:00000 |
+------------------------------+---------------------------+
| 2019-05-25 01:05:00+00:00 | 1.57 |
+------------------------------+---------------------------+
| 2019-05-25 01:10:00+00:00 | 1.57 |
+------------------------------+---------------------------+
| 2019-05-25 01:15:00+00:00 | 1.51 |
+------------------------------+---------------------------+
| 2019-05-25 01:20:00+00:00 | 1.57 |
+------------------------------+---------------------------+
| 2019-05-25 01:25:00+00:00 | 1.57 |
+------------------------------+---------------------------+
If we're using Jupyter Lab, we can plot a graph of the data using built-in methods from Pandas and mathplotlib:
.. code-block:: ipython
In [6]: herring.df('q').plot()
Out [6]:
*--a stream hydrograph appears--*
.. image:: https://raw.githubusercontent.com/mroberge/hydrofunctions/master/_static/HerringHydrograph.png
:alt: a stream hydrograph for Herring Run
Learn more:
* `Users Guide`_
Easy Installation
-----------------
The easiest way to install Hydrofunctions is by typing this from your
command line:
.. code-block:: console
$ pip install hydrofunctions
Hydrofunctions depends upon Pandas and numerous other scientific packages
for Python. `Anaconda `_
is an easy, safe, open-source method for downloading everything and avoiding
conflicts with other versions of Python that might be running on your
computer.
Visit the `Installation Page `_
in the Users Guide to learn how to install
Anaconda, or if you have problems using the Easy Installation method above.
.. _`Users Guide`: https://hydrofunctions.readthedocs.io/en/latest
Owner
- Name: Martin Roberge
- Login: mroberge
- Kind: user
- Location: Towson, MD
- Company: Towson University
- Repositories: 18
- Profile: https://github.com/mroberge
GitHub Events
Total
- Watch event: 5
- Fork event: 1
Last Year
- Watch event: 5
- Fork event: 1
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| mroberge | m****s@g****m | 646 |
| elmerehbi | e****i | 12 |
| Joseph D Hughes | j****s@u****v | 5 |
| dgketchum | p****y | 1 |
| James McCreight | j****c@u****u | 1 |
| Karl Tarbet | k****t | 1 |
| Nathan Korinek | n****0@c****u | 1 |
| lapidesd | d****s@g****m | 1 |
| mopickel | 5****l | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 49
- Total pull requests: 75
- Average time to close issues: 7 months
- Average time to close pull requests: 6 days
- Total issue authors: 13
- Total pull request authors: 10
- Average comments per issue: 2.94
- Average comments per pull request: 1.0
- Merged pull requests: 69
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- mroberge (36)
- cheginit (2)
- DavidLitwin (1)
- yueyin1992 (1)
- nlamkey (1)
- mrranck (1)
- danhamill (1)
- craignwf (1)
- dgketchum (1)
- ajb474 (1)
- nkorinek (1)
- rckwzrd (1)
- lapidesd (1)
Pull Request Authors
- mroberge (61)
- jdhughes-usgs (4)
- jmccreight (2)
- ktarbet (2)
- dgketchum (2)
- mopickel (1)
- elmerehbi (1)
- lapidesd (1)
- nkorinek (1)
- thejibin (1)
Top Labels
Issue Labels
enhancement (7)
docs (2)
bug (1)
Pull Request Labels
Packages
- Total packages: 3
-
Total downloads:
- pypi 357 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 15
(may contain duplicates) - Total versions: 25
- Total maintainers: 1
proxy.golang.org: github.com/mroberge/hydrofunctions
- Documentation: https://pkg.go.dev/github.com/mroberge/hydrofunctions#section-documentation
- License: mit
-
Latest release: v0.2.4
published over 2 years ago
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced:
6 months ago
pypi.org: hydrofunctions
A suite of convenience functions for exploring water data in a Jupyter Notebook
- Homepage: https://github.com/mroberge/hydrofunctions
- Documentation: https://hydrofunctions.readthedocs.io
- License: MIT license
-
Latest release: 0.2.4
published over 2 years ago
Rankings
Dependent repos count: 6.7%
Dependent packages count: 7.3%
Forks count: 7.8%
Average: 8.6%
Stargazers count: 8.8%
Downloads: 12.3%
Maintainers (1)
Last synced:
6 months ago
conda-forge.org: hydrofunctions
- Homepage: https://github.com/mroberge/hydrofunctions
- License: MIT
-
Latest release: 0.2.1
published over 4 years ago
Rankings
Dependent repos count: 11.0%
Average: 34.2%
Forks count: 34.6%
Stargazers count: 39.8%
Dependent packages count: 51.5%
Last synced:
6 months ago
Dependencies
.github/workflows/manual-publish-release-to-pypi.yml
actions
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pypa/gh-action-pypi-publish master composite
.github/workflows/publish-release-to-pypi.yml
actions
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pypa/gh-action-pypi-publish master composite
.github/workflows/publish-to-test-pypi.yml
actions
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pypa/gh-action-pypi-publish master composite
.github/workflows/test.yaml
actions
- actions/checkout v2 composite
- actions/setup-python v2 composite
- codecov/codecov-action v1 composite
pyproject.toml
pypi
setup.py
pypi