Skip to content

Commit

Permalink
Merge pull request #125 from ArtesiaWater/dev
Browse files Browse the repository at this point in the history
New release, version 0.8.0
  • Loading branch information
OnnoEbbens authored May 19, 2023
2 parents 0039a76 + 942a017 commit 1b81c24
Show file tree
Hide file tree
Showing 34 changed files with 2,214 additions and 2,191 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,5 @@ ENV/

.ignore*
.examples/figure*
examples/test*
tests/data/excel/
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# -- Project information -----------------------------------------------------

project = "hydropandas"
copyright = "2020, Artesia"
copyright = "2023, Artesia"
author = "Artesia"

# The short X.Y version
Expand Down
59 changes: 59 additions & 0 deletions docs/contribute.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
==========
Contribute
==========

HydroPandas is an open source software project that depends on contributions
from the community. Everyone is welcome, each small contribution is valuable,
no matter if it is a fix of a typo in the documentation, bug report, an idea,
or a question.

Questions, bug reports and feature requests
-------------------------------------------

If you have question about the use of HydroPandas, feel free to ask them in the
`GitHub Discussions <https://github.com/ArtesiaWater/hydropandas/discussions>`_.
Bugs and feature requests can be submitted via
`GitHub Issues <https://github.com/ArtesiaWater/hydropandas/issues>`_.

Version control, Git, and GitHub
--------------------------------

The code is hosted on GitHub. To contribute you will need to sign up for a free
GitHub account. We use Git for version control to allow many people to work
together on the project. If you have no experience with Git we recommend to
install `Github Desktop <https://desktop.github.com/>`_.

Contributing guidelines
-----------------------

Proposals for changes to the Hydropandas code base can be submitted via a pull
request. You can find a pull request (or PR) tutorial in the
`GitHub's Help Docs. <https://help.github.com/articles/using-pull-requests/>`_.

There are roughly 6 steps for contributing to HydroPandas:

1. Fork the HydroPandas git repository
2. Create a development environment
3. Install HydroPandas dependencies
4. Make changes to code and add tests
5. Update the documentation
6. Submit a pull request

For pull request we use the following guidelines (similar to the
`geopandas guidelines <https://geopandas.org/en/stable/community/contributing.html>`_):

- All existing tests should pass. Please make sure that the test suite passes,
both locally and on GitHub Actions. Status on Github Actions will be visible
on a pull request. To trigger a check, make a PR to your own fork.
- New functionality should include tests. Please write reasonable tests for your
code and make sure that they pass on your pull request.
- Classes, methods, functions, etc. should have docstrings. The first line of a
docstring should be a standalone summary. Parameters and return values should
be documented explicitly.
- Follow PEP 8 when possible. We use
`Black <https://black.readthedocs.io/en/stable/>`_ and
`Flake8 <http://flake8.pycqa.org/en/latest/>`_ to ensure a consistent code
format throughout the project.
- We use `isort <https://pycqa.github.io/isort/>`_ to automatically sort imports.
- We encourage backward compatability between HydroPandas versions but do not
ensure it (yet) because of the rapid changes to the code base.
10 changes: 7 additions & 3 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,19 @@ Supported data sources

Currently supported datasources that can be read:

- `BRO <https://www.broloket.nl>`_
- `FEWS PI-XML <https://publicwiki.deltares.nl/display/FEWSDOC/The+Delft-Fews+Published+Interface>`_
- `DINOLoket CSV <www.dinoloket.nl>`_
- WISKI CSV
- WISKI csv files
- `Pastastore <https://github.com/pastas/pastastore>`_, for managing Pastas timeseries and models
- `KNMI data <https://www.knmi.nl/kennis-en-datacentrum/achtergrond/data-ophalen-vanuit-een-script>`_
- MODFLOW groundwater models
- IMOD groundwater models
- `Waterinfo <https://waterinfo.rws.nl>`_

ObsCollection can be exported to:

- Excel (with one tab for each time series and a single tab with all metadata)
- Shapefile
- Pastastore

Expand All @@ -32,9 +35,10 @@ See the table of contents to get started with `hydropandas`.
:caption: Contents:

Getting started <getting_started>
Example usage <examples>
Examples <examples>
User guide <user_guide>
hydropandas API-docs <source/modules>
Hydropandas API-docs <source/modules>
Contribute <contribute>


Indices and tables
Expand Down
30 changes: 16 additions & 14 deletions docs/user_guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,32 @@ User guide
The `Obs` class
---------------

The Obs class holds the measurements and metadata for one timeseries. There
The Obs class holds the measurements and metadata for one timeseries. There
are currently 5 specific Obs classes for different types of measurements:

- GroundwaterObs: for groundwater measurements
- GroundwaterQualityObs: for groundwater quality measurements
- WaterQualityObs: for (ground)water quality measurements
- WaterlvlObs: for surface water level measurements
- ModelObs: for hydropandas from a MODFLOW model
- KnmiObs: for (daily) KNMI hydropandas
- MeteoObs: for hydropandas from KNMI or other meteorological services
- PrecipitationObs: for precipitation observations, subclass of MeteoObs
- EvaporationObs: for evaporation observations, subclass of MeteoObs

Each of these Obs classes is essentially a pandas DataFrame with additional
methods and attributes related to the type of measurement that it holds. The
Each of these Obs classes is essentially a pandas DataFrame with additional
methods and attributes related to the type of measurement that it holds. The
classes also contain specific methods to read data from specific sources.

The `ObsCollection` class
-------------------------

The ObsCollection class, as the name implies, represents a collection of Obs
classes, e.g. 10 timeseries of the groundwater level in a certain area. The
ObsCollection is also a pandas DataFrame in which each timeseries is stored
in a different row. Each row contains metadata (e.g. latitude and longitude
of the observation point) and the Obs object (DataFrame) that holds the
measurements. It is recommended to let an ObsCollection contain only one Obs
type, e.g. to create an ObsCollection for 10 GroundwaterObs, and a separate
ObsCollection for 5 KnmiObs.
The ObsCollection class, as the name implies, represents a collection of Obs
classes, e.g. 10 timeseries of the groundwater level in a certain area. The
ObsCollection is also a pandas DataFrame in which each timeseries is stored
in a different row. Each row contains metadata (e.g. latitude and longitude
of the observation point) and the Obs object (DataFrame) that holds the
measurements. It is recommended to let an ObsCollection contain only one Obs
type, e.g. to create an ObsCollection for 10 GroundwaterObs, and a separate
ObsCollection for 5 WaterlvlObs.

Like the Obs class, the ObsCollection class contains a bunch of methods for
Like the Obs class, the ObsCollection class contains a bunch of methods for
reading data from different sources.
1,569 changes: 687 additions & 882 deletions examples/01_groundwater_observations.ipynb

Large diffs are not rendered by default.

319 changes: 169 additions & 150 deletions examples/02_knmi_observations.ipynb

Large diffs are not rendered by default.

Loading

0 comments on commit 1b81c24

Please sign in to comment.