Package: waterpyk
waterpykA python package to analyze hydrological timeseries for a site or watershed using the Google Earth Engine and USGS APIs.GitHub repo:https://github.com/erica-mccormick/waterpykDocumentation:https://waterpyk.readthedocs.io/en/latest/PyPI:https://pypi.org/project/waterpyk/Report bugs:https://github.com/erica-mccormick/waterpyk/issueswaterpyk is a simple package for extracting data from theGoogle Earth Engine(GEE) and USGS APIs and performing simple water-balance analyses.
All you need to begin is a lat/long or aUSGS gauge IDto start.For more information on the root-zone water storage capacity and deficit, seeDralle et al., 2021,McCormick et al., 2021, andRempe, McCormick et al. (in prep).Check out the tutorialfor basic waterpyk usage in GoogleColab here.Get Startedwaterpyk requiresgeopandasand ee.
Read theworkflow to install and authenticate ee(GEE) for Google Colab, pip, or conda.
You will need tosign up for a GEE accountif it is your first time.Install waterpyk:pip install waterpykTo get all of the available data and plots for a site, simply supply a list of coordinates (such as[lat, long]or [gaugeID]).:from waterpyk install main

coords = [LAT/LONG] # or
gage = [USGS_gage_ID]
yoursitename = main.StudyArea(COORDS_or_GAGE, layers = 'all')A note on thelayersparameter:
Two default options are available for extracting data.:layers = 'all'
layers = 'minimal'‘All’ will extract precipitation (P), evapotranspiration (ET) from MODIS and PML, MODIS snow cover, MODIS landcover class, and SRTM elevation, including all relevant bands.‘Minimal’ is the fastest option and extracts only the necessary data for the deficit (P, ET, and snow without extra MODIS products).Alternatively,layerscan also take a dataframe containing a row for each desired GEE asset. See the main and/or gee module docs for more information.Note that most GEE assets should be extracted with no errors, however not all date formats have been tested, so new assets may throw errors and require manual extraction outside of waterpyk.
For these cases, I suggest using thegeemappackage, which has many fantastic GEE tools and inspired some of this code as well!Now that you’ve initialized your StudyArea object, all of the dataframes of extracted data will now be available in the form of:yoursitename.daily_df_wide # includes deficit, wateryear deficit, and cumulative wateryear timeseries
yoursitename.streamflow
yoursitename.wateryear_totals
yoursitename.statsSome single values are also available as attributes in this way,
such as root-zone water storage capacity (Smax, mm) and and mean annual precipitation (MAP, mm):yoursite.smax
yoursite.MAPTo plot, supply a string for which kind of plot (see below for the 5 options), such as:yoursitename.plot(kind = 'timeseries')Extra keyword arguments are available for the plots to change the color, line types, or included data for each kind. See the plots module for default kwargs.DocsFor full documentation, seefull documentation.What Waterpyk Can DoDownload timeseries of GEE assets and:Combining bandsApplying a scaling factorInterpolating to dailyDownload streamflow for gauged watershedsDownload watershed information, such as:Boundary and flowline geometry (as GEE or geopandas format)Metadata (such as CRS, name, and gauge ID)Daily discharge (in native units, and converted to mm)Centroid latitude (for calculation of Hargreaves PET)URLs necessary to access all of the above directlyCalculate cumulative and total wateryear timeseriesCalculate the root-zone water storage (RWS) deficitCreate 4 figures, out of the box, with P, ET, Q, and deficit data, including:Wateryear cumulative timeseries (kind = 'wateryear')Daily timeseries, with options (kind = 'timeseries')Plot & calculate Spearman correlation coefficient for summer ET and wateryear P (kind = 'spearman')RWS capacity (Smax) relative to P distribution (kind = 'distribution')RWS timeseries (kind = 'RWS')ContactThis is a work in progress and is primarily intended for the Rempe Lab Group and co-authors.
Feel free to report bugs, and note that major version updates may not be backwards compatible.
For more information, contact Erica McCormick aterica.elmstead@gmail.comor the email address given on herhomepage.