Download PDF
Download page OpenDCS.
OpenDCS
The Open Data Collection System (OpenDCS) is an open-source software platform used primarily by water resource management agencies for collecting, decoding, storing, and distributing environmental time-series data. It was originally developed by a combination of federal agencies and contractors to support operations like water control, reservoir management, and flood forecasting. OpenDCS is widely used within the USACE and by other federal, state, and local agencies involved in water and environmental data management.
Key Features of OpenDCS include:
- Data Collection: Ingests data from remote sensors, such as stream gauges, weather stations, and other environmental monitoring systems.
- Decoding and Processing: Decodes raw data (often in formats from GOES satellite transmissions or other telemetry sources) into usable time-series datasets.
- Database Integration: Stores data in structured databases.
- Data Distribution: Shares data with other systems or users via APIs or file exports.
- Open-Source: Freely available under an open-source license, enabling customization and collaboration across agencies.
Additional information about OpenDCS can be found here.
Planned Activities
| Activity | Funded Amount | Delivery Date |
|---|---|---|
| Update Documentation | $35,000 (labor) | |
| Host Webinars and Workshops | $40,000 (labor) | |
| Fix Bugs as Reported | $120,000 (labor) | |
| Improve Performance and Stability | $70,000 (labor) | |
| Update Queries | $55,000 (labor) | |
| Support Cloud Migration | $50,000 (labor) | |
| Deploy Production OpenDCS in CWBI | $30,000 (labor) |
|
| Use REST_API and Web GUI in CWBI | $15,000 (labor) |
|
Update Documentation
The team will update and improve the documentation as needed throughout the year. Over time, they will expand coverage and make the information easier for users to find and understand.
Host Webinars and Workshops
The team will host webinars and workshops throughout the year to introduce new OpenDCS features. As cloud migration advances, many districts need support using OpenDCS and these training sessions will help users better understand and effectively use the system.
Fix Bugs as Reported
The team will fix bugs as users identify and report them. OpenDCS is a complex suite of software components that has evolved with many assumptions about correct behavior. When users find issues—whether system failures or behavior that doesn’t align with the documentation—the team will address them and release updates accordingly.
Improve Performance and Stability
Over the past 20 years, OpenDCS has grown through ongoing development, often requiring assumptions about how certain resources should be managed. Some components perform slower than ideal due to limited time available to the original development team for optimization. These assumptions can also impact system stability. As performance and stability issues are identified, the team will work to address them and enhance overall system reliability.
Update Queries
Many OpenDCS database queries do not properly use bind variables, creating potential security vulnerabilities—especially for web-exposed services. The team will update these queries to improve security and align with best practices.
Support Cloud Migration
To support cloud migration, the team is configuring OpenDCS for practical deployment in cloud environments. This includes containerization with Docker and enabling automatic scaling based on workload demands.
Deploy Production OpenDCS in CWBI
The team will prepare OpenDCS for deployment in the CWBI production environment. Currently running in CWBI Test, OpenDCS will be transitioned using lessons learned from the test setup to build a more maintainable and robust production infrastructure.
Use REST_API and Web GUI in CWBI
Providing direct database access as required by the current Java clients is not feasible, and setting up remote desktop infrastructure for the number of users involved is also impractical. To address this, an API and an HTML-based GUI have been developed for OpenDCS, and we are beginning to use these tools for CWBI operations. As an alternative to the web interface, it's also possible to adapt the existing Java applications to interact with the new API. Both options are under active consideration, and we are still evaluating which approach will be most suitable for the initial migration.