A suite of convenience functions for working with hydrology data in an interactive Python session.
.. 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.
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.
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
_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 <https://www.anaconda.com/products/individual>
_
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 <https://hydrofunctions.readthedocs.io/en/master/installation.html>
_
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