Research SUMMARY www .epa.gov/research Open Source SWMM: Community - Based Software Development for Storm Water Management Modeling Background EPA's Storm Water Management Model (SWMM) is used throughout the world for planning, analysis, and design related to stormwater runoff, combined and sanitary sewers, and other drainage systems in urban areas. There are many applications for drainage systems in non-urban areas as well, SWMM is a dynamic hydrology-hydraulic water quality simulation model. It is used for single event or long-term (continuous) simulation of runoff quantity and quality from primarily urban areas. The runoff component treats the land surface as a collection of sub-catchment areas that receive precipitation and generate runoff and pollutant loads. The routing portion transports this runoff through a system of pipes, channels, storage/treatment devices, pumps, and regulators. SWMM tracks the quantity and quality of runoff generated within each sub-catchment. It also tracks the flow rate, flow depth, and quality of water in each pipe and channel during a simulation period, which is made up of multiple time steps. SWMM Version 5 has been extended to model the hydrologic performance of specific types of low impact development (LID) controls. The LID controls that the user can choose to include are the following green infrastructure practices: rain gardens, bioretention cells, vegetative swales, infiltration trenches, green roofs, rooftop downspout disconnections, rain barrels or cisterns (rainwater harvesting), and continuous permeable pavement systems. SWMM 5 allows engineers and planners to represent any combination of LID controls within a study area to determine their effectiveness in managing stormwater and combined sewer overflows. An integrated environment for editing study area input data is available for Windows, allowing users to run hydrologic, hydraulic and water quality simulations, and providing users with tools to manage input and output data and visualizations. SWMM 5 was produced in a joint development effort with CDM Smith, Inc., a global consulting, engineering, construction, and operations firm. SWMM results can be used to develop combined sewer overflow consent decree long term control plans and other National Pollutant Discharge Elimination System permits. In 2016, a new Federal Source Code Policy (https://sourcecode.cio.gov/OSS/) was introduced that encouraged federal agencies to: (1) leverage existing open source software (OSS) communities, (2) engage in open software development projects, (3) adopt a regular public release schedule for software, (4) engage in two-way communication with users and contributors, (5) consider allowing code contributions from the public, and (6) provide thorough documentation. A new research project has been initiated to apply OSS development to the SWMM software, supporting cost efficiency, mission effectiveness, and improving the public experience with Government programs. Leveraging Existing Communities These Communities are software developers, users, vendors, regulators, and other stakeholders. The SWMM software is downloaded from the EPA webpage more than 30,000 times each year by users Office of Research and Development National Risk Management Research Laboratory ------- from across the world. Several software companies have used or modified components of SWMM in their commercial packages. Professional societies have developed committees focused on stormwater, urban drainage, and water quality modeling research, and applications with a vested interest in the future of SWMM. In 2015, an Open Source SWMM Initiative, independent of the EPA, was announced on http://wateranalytics.org/. This is an active group developing SWMM and EPANET, a drinking water distribution model, via the open source community development approach, and it has accomplished many improvements to SWMM. In 2016, an EPA cooperative agreement (Grant No. 83595001) established the National Center for Infrastructure Modeling and Management (NCIMM) (http://www.ncimm.org/) at the University of Texas at Austin. The cooperative agreement was established to help better serve the water community that uses and depends on EPA's SWMM and EPANET software. For the purposes of this project, the word "community" includes all interested SWMM stakeholders: consulting engineers, students, researchers, software companies, professional organizations, other interested members of the public, and EPA partners. As part of this new approach to SWMM development, EPA is reaching out to all stakeholders and accepting input on ways the community can participate in the future development of the SWMM software. EPA is actively developing a set of "contributor guidelines" for those who want to contribute code, as well as creating an efficient way for the community to suggest new features or report bugs. OSS Community Development Community-based OSS development is conducted on a shared development repository into which the community can contribute software, and/or view and comment on software changes, resulting in a better overall product. EPA established its Enterprise GitHub account in 2012 to enhance the Agency's ability to share and develop source code in an open and I Office of Research and Development I National Risk Management Research Laboratory collaborative manner using industry best practices. EPA has two OSS projects related to SWMM. One project focuses on the user interface (Ul) application: https://github.com/USEPA/SWMM- EPANET User Interface. The Ul project has been developed in the open and implemented using agile development techniques. EPA selected popular OSS tools for the development of the new SWMM Ul to reduce barriers to entry and encourage community involvement. This open source project has components that are being developed by EPA, a contractor, and other interested parties. The second project focuses on the SWMM engine source code: https://github.com/USEPA/Stormwater- Management-Model. The source code, code documentation, quality control and assurance plans, bug and feature request tracking, user manual, and example cases will all be available for the community to view. Using GitHub allows contributors to make changes on individual repositories and submit code back to the main repository for review and possible inclusion in future releases. The GitHub site helps to manage the OSS development process by automatically tracking changes in the code over time and by offering tools for reporting issues (e.g., bugs and feature requests). Under this project, several important documents will be developed to support the community-based OSS development, all of which will be available on the GitHub site for comment: • A quality assurance plan that clearly describes the OSS development process that must be followed for all code incorporated into EPA's official version of SWMM. This will include specifications about testing and code documentation. • A development roadmap and software release schedule that outlines the plan for future development of the SWMM code, along with bug fixes, and includes a list of feature requests gathered from the broad SWMM stakeholder community. • Contributor guidelines describing the steps involved and the requirements for submitting code to the EPA through a GitHub pull request. This will include a contributor waiver that must be signed before code will be incorporated and will outline how contributors are acknowledged for their work. ------- For More Information • An OSS license. The Creative Commons CCO public domain license is currently the only approved license at EPA; but other OSS licenses will be evaluated as well, and exceptions for third party codes with other licenses could be made. EPA will continue to maintain the "official" SWMM versions on its main website https://www.epa.gov/water-research/storm-water- management-model-swmm. EPA will evaluate and accept contributions from the community following procedures outlined in the contributor guidelines. Participation is key to this project; therefore, the community is encouraged to fork the SWMM code and test new ideas and approaches. Developers are encouraged to contribute their best work back to the EPA SWMM repository through pull requests. The development roadmap will help to ensure that all contributors are generally following the same vision. Community feedback will help to ensure that SWMM development is adhering to appropriate coding standards and best practice software quality assurance procedures such as continuous integration and regression testing. Anticipated Outcomes SWMM is a mission critical software program that will continue to be developed, maintained, and distributed by EPA. Through this project, EPA will investigate and leverage the benefits of OSS community development to future versions of SWMM. This approach will allow for more public input into the software at earlier stages in the development cycle. In addition, this approach will allow for more frequent updates to the SWMM software, ensuring stakeholder access to a higher quality software tool. Ultimately, EPA intends to work together with the community to be more responsive, provide more services, and create innovative improvements to the SWMM software. EPA's immediate mission-driven research agenda involves transitioning the new SWMM user interface application into community development, improving SWMM's water quality engine, continuing to develop SWMM extensions, and working with the community to define the future development path for SWMM. SWMM executables and documentation: https://www.epa.gov/water-research/storm-water- management-model-swmm SWMM GitHub site: https://github.com/USEPA/Stormwater- Management-Model Contact Information Technical Contacts: Michelle Simon (simon.michelle@epa.gov) Michael Tryby (tryby.michael@epa.gov) Office of Research and Development National Risk Management Research Laboratory EPA/600/S-18/129 ------- |