CIP-service is a project of the US Environmental Protection Agency Office of Water providing containers, logic and data for the task of associating or indexing hydrologic features with NHDPlus features at multiple resolutions. CIP-service supports a variety of purposes indexing to catchments, reaches or navigating the NHDPlus network for discovery or flow analysis. The majority of logic occurs within a containerized PostgreSQL database with additional containers providing support products such as an API, Jupyter Notebooks and sample demo applications. All components of the provided container stack are open source.
-
Docker compose compatible containerization environment such Docker engine, Docker Desktop, Rancher Desktop or the ability to translate compose projects into other environments such as Kubernetes. Each CIP-service container is portable and can be built and deployed individually into Kubernetes-like environments with minor effort. However, the prepackaged deployment logic in the project uses compose commands. If using Windows, the Rancher Desktop environment is an open source alternative to Docker Desktop.
-
Knowledge of containers, Python coding, GIS, PostgreSQL and the PLpgSQL stored procedure language is recommended.
-
Usage of the quickconfig.py setup utility requires Python 3 to be available on the host system. Most flavors of Linux will provide Python by default. Python can be added to Windows by hand, or you may already have it as part of ArcGIS Pro, QGIS or other software installations. Using Windows Subsystem for Linux is also a convenient way to have Python at the ready.
The quickconfig.py utility is meant to provide a quick and easy way to spin up a complete working environment. If seeking to evaluate whether CIP-service is useful for your needs the VPU09 recipe is ideal. This recipe pulls in a very small subset of NHDPlus data confined to the Red River/Rainy watershed in the Upper Midwest. Total disk space requirements are about 7 GB.
python config/quickconfig.py --recipe=VPU09
Other recipe values:
- ALL Loads both medium and high resolution national datasets supporting catchment indexing and network navigation. Requires about 250 GB of disk.
- MEDONLY Loads only the medium resolution national dataset supporting catchment indexing and network navigation. Requires about 25 GB of disk.
- EXTENDED Load all datasets of both medium and high resolution supporting extended capabilities including watershed delineation. Requires about 510 GB.
Each recipe downloads and loads one or more PostgreSQL dump files from an EPA Simple Storage System. Some of these files are rather large and downloading them more than once is unideal. If you have the downloads prepositioned in a location on the host, use the copyin parameters to skip the downloading.
Please review additional notes on security.
- Open a GitHub issue.
- Email WATERS Support at [email protected].
To explore these capabilities as expose via the API, see the OpenAPI documentation. Various OpenAPI 3.1 online renderers may be used to see the API rendered as document. For example, see the Swagger Next Editor. Such viewers may not allow direct linking in which case the direct link can be used to work around such issues.
The United States Environmental Protection Agency (EPA) GitHub project code is provided on an "as is" basis and the user assumes responsibility for its use. EPA has relinquished control of the information and no longer has responsibility to protect the integrity, confidentiality, or availability of the information. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by EPA. The EPA seal and logo shall not be used in any manner to imply endorsement of any commercial product or activity by EPA or the United States Government.