Integrated hydrologic model development and postprocessing for GSFLOW using pyGSFLOW

Integrated hydrologic model development and postprocessing for GSFLOW using pyGSFLOW - Published in JOSS (2022)

https://github.com/pygsflow/pygsflow

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 13 DOI reference(s) in README
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    1 of 5 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.6%) to scientific vocabulary

Keywords

groundwater groundwater-modelling gsflow integrated-modelling modflow prms pygsflow python surface-water usgs

Scientific Fields

Mathematics Computer Science - 84% confidence
Earth and Environmental Sciences Physical Sciences - 62% confidence
Last synced: 4 months ago · JSON representation

Repository

Python package to Create, Read, Write, Edit, and Visualize GSFLOW models

Basic Info
Statistics
  • Stars: 35
  • Watchers: 1
  • Forks: 23
  • Open Issues: 7
  • Releases: 4
Topics
groundwater groundwater-modelling gsflow integrated-modelling modflow prms pygsflow python surface-water usgs
Created almost 7 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct

README.md

pyGSFLOW logo

pygsflow continuous integration codecov PyPI JOSS Frontiers

pygsflow

pyGSFLOW is a python package to Create, Read, Write, Edit, and Visualize GSFLOW models

GSFLOW model development has previously been a piecemeal approach that required multiple software tools to build, edit, postprocess, and visualize models. pyGSFLOW changes this by being a tightly coupled scripting library that provides support for GSFLOW, PRMS, and MODFLOW. Custom modules for both GSFLOW and PRMS are included in this library. MODFLOW support is provided by wrapping the Flopy package (Bakker and others, 2021) with GSFLOW specific code. Together, these three pieces create a single integrated scripting package that helps to standardize and streamline model development and calibration.

This is the development repository for pyGSFLOW. Official USGS releases can be found here

API Documentation

pyGSFLOW API documentation can be found @

https://pygsflow.github.io/pygsflowdocs/

Examples

Basic examples can be found in the Tutorial Examples tab of the pyGSFLOW API documentation at https://pygsflow.github.io/pygsflowdocs/tutorials.html#

Interactive jupyter notebook example problems can be found in the examples directory.
https://github.com/pygsflow/pygsflow/tree/master/examples

Requirements

Version 1.1.0 (Master branch and from pypi) 1) Windows or Linux operating system (GSFLOW is not currently compiled for MacOS)
2) Python 3.6 or greater
3) FloPy 3.3.4 or greater, note for Python 3.6 use (pip install flopy==3.3.4) 4) NetCdf4 (optional, required for netcdf exporting and autotesting) (pip install netcdf4)

Version 1.1.1 (Develop branch) 1) Windows or Linux operating system (GSFLOW is not currently compiled for MacOS)
2) Python 3.6 or greater 3) Flopy 3.3.6 or greater (pip install flopy) note for Python 3.6 use (pip install flopy==3.3.4) 4) NetCdf4 (optional, required for netcdf exporting and autotesting) (pip install netcdf4) 5) Rasterio and rasterstats (optional, required for raster resampling and model building methods)(pip install rasterio rasterstats)

Installation

Version 1.1.0 (Master branch and from pypi)

The pygsflow repository can be installed using pip. To install the release version, open a terminal, command prompt, or anaconda prompt and type:

pip install pygsflow

Version 1.1.1 (Develop version with most recent updates)

To install the development version, open a terminal, command prompt or anaconda promt and type:

pip install https://github.com/pygsflow/pygsflow/zipball/develop

Alternatively the user can download a copy of the repository, open a command prompt or anaconda promt terminal, cd into the trunk directory and type:

pip install .

Additional Linux installation instructions

To use the default version of GSFLOW for Linux that is distributed with pyGSFLOW the user needs to set the permissions of the GSFLOW binary program to execute. From a terminal window cd into the trunk/bin directory of the pyGSFLOW repository and write: chmod u+x gsflow chmod u+x mfnwt chmod u+x CRT_1.3.1

In some cases symbolic links to gfortran-10 must be set up this can be done with sudo ln -fs /usr/bin/gfortran-10 /usr/bin/gfortran sudo ln -fs /usr/bin/gcc-10 /usr/bin/gcc sudo ln -fs /usr/bin/g++-10 /usr/bin/g++

Authors

Ayman Alzraiee, Joshua Larsen, Donald Martin, Rich Niswonger

How to Cite

pyGSFLOW builder methods citation

Larsen, J. D., Alzraiee, A. H., Martin, D. Niswonger, R. G., 2022, Rapid model development for GSFLOW with Python and pyGSFLOW. Frontiers in Earth Science, 10.

General pyGSFLOW citation

Larsen, J. D., Alzraiee, A., Niswonger, R. G., 2022, Integrated hydrologic model development and postprocessing for GSFLOW using pyGSFLOW. Journal of Open Source Software, 7(72), 3852.

Code citation

Larsen, J. D., Alzraiee, A., Niswonger, R., 2021, pyGSFLOW v1.0.0: U.S. Geological Survey Software Release, 2 July 2021, https://doi.org/10.5066/P9NPZ5AD

IPDS number

IP-128405

Contributing

Please see Contributing.md

Running Autotests Locally

pyGSFLOW uses github actions CI to automatically test code for each commit and pull request. These tests can also be run locally. To run tests locally, navigate to pygsflow's root directory, open a command prompt, anaconda prompt, or terminal window:

with nosetests: cd autotest nosetests -v

with pytest: cd autotest pytest

How to find pygsflow's root directory:

Open a python terminal and type: python import gsflow print(gsflow.__file__)

Project History

This project is a refinement and continuation of the original pygsflow repository at:

https://github.com/aymanalz/pygsflow

Disclaimer

This software is preliminary or provisional and is subject to revision. It is being provided to meet the need for timely best science. The software has not received final approval by the U.S. Geological Survey (USGS). No warranty, expressed or implied, is made by the USGS or the U.S. Government as to the functionality of the software and related material nor shall the fact of release constitute any such warranty. The software is provided on the condition that neither the USGS nor the U.S. Government shall be held liable for any damages resulting from the authorized or unauthorized use of the software

Owner

  • Name: pyGSFLOW
  • Login: pygsflow
  • Kind: organization
  • Email: pygsflow@gmail.com

pyGSFLOW is a python package for GSFLOW integrated models

GitHub Events

Total
  • Issues event: 2
  • Watch event: 3
  • Issue comment event: 7
  • Push event: 8
  • Pull request event: 1
  • Fork event: 4
Last Year
  • Issues event: 2
  • Watch event: 3
  • Issue comment event: 7
  • Push event: 8
  • Pull request event: 1
  • Fork event: 4

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 171
  • Total Committers: 5
  • Avg Commits per committer: 34.2
  • Development Distribution Score (DDS): 0.023
Past Year
  • Commits: 32
  • Committers: 1
  • Avg Commits per committer: 32.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Joshua Larsen j****n@u****v 167
lxy 3****7@q****m 1
gsflowpython 4****n 1
Payton Gardner 4****w 1
Patrick McCarthy 1****s 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 30
  • Total pull requests: 21
  • Average time to close issues: 23 days
  • Average time to close pull requests: 2 months
  • Total issue authors: 11
  • Total pull request authors: 7
  • Average comments per issue: 0.8
  • Average comments per pull request: 0.43
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jlarsen-usgs (17)
  • ccalvocm (3)
  • mrush-usgs (2)
  • thurber (1)
  • SwenMeyer1978 (1)
  • zhuzhufeifei (1)
  • boatmorrow (1)
  • NigelKinney (1)
  • sinloss (1)
  • jptraylor (1)
  • mdbartos (1)
Pull Request Authors
  • jlarsen-usgs (13)
  • jonathanqv (3)
  • spwika-usgs (2)
  • boatmorrow (2)
  • pmccarthy-usgs (1)
  • AlirezaKavousi (1)
  • sinloss (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 26 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 4
  • Total maintainers: 1
pypi.org: pygsflow

pyGSFLOW is a python package to create, run, and post-process GSFLOW-based models

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 26 Last month
Rankings
Dependent packages count: 7.3%
Forks count: 9.1%
Stargazers count: 12.5%
Average: 19.1%
Dependent repos count: 22.1%
Downloads: 44.4%
Maintainers (1)
Last synced: 4 months ago

Dependencies

etc/environment.yml conda
  • affine
  • appdirs
  • coverage
  • descartes
  • fiona
  • geos 3.8.1.*
  • matplotlib
  • netcdf4
  • numpy
  • pandas
  • pycrs
  • pyproj
  • pyshp
  • rasterio
  • requests
  • scipy
  • shapely
.github/workflows/ci.yml actions
  • actions/cache v2.1.0 composite
  • actions/checkout v2.3.4 composite
  • codecov/codecov-action v1.5.0 composite
  • conda-incubator/setup-miniconda v2.1.1 composite
  • nelonoel/branch-name v1.0.1 composite
.github/workflows/joss_journal.yml actions
  • actions/checkout v2.3.4 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite