Tuesday, October 21, 2014

Innovyze Releases InfoSWMM Generation V13, Spearheading New Era in GIS-Centric Smart Wastewater Modeling

Innovyze Press Release
 Insider BlogLinkedInTwitterYouTubeYouTube
Innovyze Releases InfoSWMM Generation V13, Spearheading New Era in GIS-Centric Smart Wastewater Modeling
Latest Release Gives Communities Groundbreaking Network Simulation Power and Full Compatibility with SWMM 5.1
Broomfield, Colorado, USA, October 21, 2014 — In its ongoing quest to equip the wastewater industry with the world’s most comprehensive and innovative smart network modeling and management solutions, Innovyze, a leading global innovator of business analytics software and technologies for smart wet infrastructure, today announced the worldwide availability of the V13 Generation of its industry-leading InfoSWMM for ArcGIS (Esri, Redlands, CA). InfoSWMM V13 provides unique new capabilities and enhancements that comprise the most advanced approach to guiding and optimizing collection systems planning, designs, operations and management.
The only urban drainage modeling solution certified by the National Association of GIS-centric Software, the full-featured InfoSWMM analysis and design program delivers the highest rate of return in the industry. All operations of a typical sewer system — from analysis and design to management functions such as water quality assessment, pollution prediction, sediment transport and deposition, urban flooding, real-time control, and record keeping — are addressed in a single, fully integrated geoengineering environment. The program’s powerful hydraulic and water quality computational engine is based on the latest SWMM 5.1 version, which is endorsed by the USEPA and certified by FEMA. These features and more deliver an enhanced modeling experience and greater realism of displayed results — advantages that translate to increased productivity, reduced costs, higher accuracy, better efficiency, and improved designs.
InfoSWMM also serves as a robust base platform for advanced modeling, operational, capital planning, and analytics-driven asset management extensions. Some of these critical applications include InfoSWMM 2D (two-dimensional surface flood modeling), CapPlan (risk-based capital planning and asset performance modeling), InfoMaster (GIS-centric asset management), and RDII Analyst (rainfall-dependent inflow and infiltration planning and analysis).
The release of InfoSWMM V13 extends previous generations’ capabilities with over 50 new features, improvements, and groundbreaking innovations in geoengineering productivity and efficiency. These advances greatly simplify, accelerate, and integrate urban drainage network engineering, helping wastewater engineers develop better designs and operational improvements faster. Among the new features are new LID modules specifically for Green Roofs and Rain Gardens, addition of a modified Horton method for infiltration, the ability to use a second user-supplied equation for groundwater outflow as well as a conduit’s OPEN/CLOSED status in both control rules premise conditions and action clauses, addition of both evaporation and seepage from conduits, ability to save a hot start file that contains the full state of the system, the addition of  conduit flow volume as a time series output variable, and summary tables enhancements.
“Our priorities have always been to advance the frontiers of smart network modeling technology and support our customers’ successes by helping them be more productive, innovative and competitive —imperatives in today’s economy,” said Paul F. Boulos, Ph.D., BCEEM, NAE, Hon.D.WRE, Dist.D.NE, F.ASCE, President, COO and Chief Technical Officer of Innovyze. “This major InfoSWMM release delivers on our promise to equip our customers with the ultimate ArcGIS-centric decision support tool for sewer collection and urban drainage systems. Like its predecessors, InfoSWMM V13 sets a new standard for quality and high-performance network modeling and management with unrivaled power and speed, cutting-edge capabilities, rich functionality and ease of use. From top to bottom, it is designed for record modeling performance that enables users to increase their productivity and quality while achieving their engineering, sustainability and business goals.”
Pricing and Availability 
Upgrade to InfoSWMM V13 (and H2OMAP SWMM V13) is now available worldwide by subscription. Subscription members can immediately download the new version free of charge directly from www.innovyze.com. The Innovyze Subscription Program is a friendly customer support and software maintenance program that ensures the longevity and usefulness of Innovyze products. It gives subscribers instant access to new functionality as it is developed, along with automatic software updates and upgrades. For the latest information on the Innovyze Subscription Program, visit www.innovyze.com or contact your local Innovyze Channel Partner.

Wednesday, October 15, 2014

How to Draw the Top Width in @INNOVYZE #InfoSWMM for Transects OR HEC-RAS Open Channels

Here is a procedure that works for me to draw the top width for transects from the InfoSWMM model results:
  1. Make a map display of the maximum top width during the simulation, the variable is MXTOP_WIDH and will added to the Arc Map TOC
  2. Use the Buffer Command in Arc Map and a field of MXTOP_WIDH
  3.  the Buffer Command in Arc Map and the Pipe or Link feature class
  4. I have Arc Map Standard so I cannot use Create Polygons from Lines or Advanced Editing which might work for you http://resources.arcgis.com/en/help/main/10.2/index.html#//01m600000015000000
  5. There is a buffer polygon made with a different width for each link
    How to Draw the Top Width in InfoSWMM for Transects



Monday, October 13, 2014

Weekday and weekend hourly time patterns for Dry Weather inflows are now correctly applied in a mutually exclusive manner in #SWMM 5.1

This is a code note about change 52 in the newer EPA SWMM 5.1.x C code

52. Weekday and weekend hourly time patterns for Dry Weather inflows are now correctly applied in a mutually exclusive manner.

 Here is the code from SWMM 5.0.022

double inflow_getDwfInflow(TDwfInflow* inflow, int month, int day, int hour)
//
//  Input:   inflow = dry weather inflow data structure
//           month = current month of year of simulation
//           day = current day of week of simulation
//           hour = current hour of day of simulation
//  Output:  returns value of dry weather inflow parameter
//  Purpose: computes dry weather inflow value at a specific point in time.
//
{
    int    i,                          // pattern type index
           p;                          // pattern index
    double f = 1.0;                    // pattern factor

    for (i=0; i<4 i="" o:p="">
    {
        p = inflow->patterns[i];
        if ( p >= 0 ) f *= inflow_getPatternFactor(p, month, day, hour);       //(5.0.019 - LR)
    }

    return f * inflow->avgValue;   

Here is the new 2014+ code,  which adjusts the pattern  factor based on the day of the week.

double inflow_getDwfInflow(TDwfInflow* inflow, int month, int day, int hour)
//
//  Input:   inflow = dry weather inflow data structure
//           month = current month of year of simulation
//           day = current day of week of simulation
//           hour = current hour of day of simulation
//  Output:  returns value of dry weather inflow parameter
//  Purpose: computes dry weather inflow value at a specific point in time.
//
{
    int    p1, p2;                     // pattern index
    double f = 1.0;                    // pattern factor

    p1 = inflow->patterns[MONTHLY_PATTERN];
    if ( p1 >= 0 ) f *= inflow_getPatternFactor(p1, month, day, hour);   // Pattern f value is 1 * The Monthly Factor
    p1 = inflow->patterns[DAILY_PATTERN];
    if ( p1 >= 0 ) f *= inflow_getPatternFactor(p1, month, day, hour);   // Pattern f value is last f * The Daily Factor
    p1 = inflow->patterns[HOURLY_PATTERN];
    p2 = inflow->patterns[WEEKEND_PATTERN];
    if ( p2 >= 0 )
    {
        if ( day == 0 || day == 6 )
            f *= inflow_getPatternFactor(p2, month, day, hour); // Pattern f value is last f * The Hourly Factor for Saturday and Sunday
        else if ( p1 >= 0 )
            f *= inflow_getPatternFactor(p1, month, day, hour); // Pattern f value is last f * The Hourly Factor Monday to Friday
    }
    else if ( p1 >= 0 ) f *= inflow_getPatternFactor(p1, month, day, hour);  // Pattern f value is last f * The Hourly Factor
    return f * inflow->avgValue;

Saturday, October 11, 2014

GUI Compilation Note for the #SWMM 5.1.x Delphi Code

This is for Students who want to make their own customized version of the SWMM5 GUI Interface. You can use the Embarcadero Starter Version for XE2 to XE7.  Here are the main files you download from the EPA There may be a problem with teechart and the starter version - see the note here http://docwiki.embarcadero.com/RADStudio/XE7/en/FireMonkey_and_TeeChart  I got it work in XE7 but I did have to remove XPPRINTER references from the Delphi code.  



CONTENTS OF SWMM5.1.007_GUI.ZIP
=============================

Note from the EPA: This archive contains source code for the Windows graphical user interface portion of Version 5.1.007 of the Storm Water Management Model (SWMM). The interface was written using Embarcadero's Delphi XE2 (www.embarcadero.com). The name of the Delphi project containing the code is Epaswmm5. All of the files for the project can be found in the GUI5_1_007.ZIP file within this archive.

Before the Epaswmm5 project can be loaded into Delphi's Integrated Development Environment (IDE), several special components must be installed into the IDE's component pallette. The source code for these components is contained in the COMPONENTS.ZIP file in this archive. Consult the Delphi Users Guide for instructions on how to install these components. 

My note:  The Delphi Starter versions for XE2 to XE7 also can create a customized SWMM5.1 GUI.  You can by the Embarcadero Starter Version for $209 USD.  As explained in the readme from the EPA Site, Delphi uses the Delphi Interface (Bullet 1), the F(form files), D(dialog files), U(Utility files), Txt (Interface Rules) as shown in Bullet 2 and Components that work with the Forms of the Delphi Compiler (Bullet 3).  See Figure 1 below for an example. 


Figure 1. Delphi XE7 Interface for SWMM 5.1.007
Here is how to use the Components


CONTENTS OF COMPONENTS.ZIP
==========================
This archive contains the source code for several 32-bit Delphi
custom components. The components and the files used to install
them are listed below.

-------------------------------
OpenTxtFileDialog (OpenDlg.pas)
-------------------------------
Windows standard Open File dialog with a preview window for text files.

---------------------
NumEdit (NumEdit.pas)
---------------------
Text box control that limits entries to valid numerical values.

-----------------------------
PageSetupDialog (PgSetup.pas)
-----------------------------
Dialog control that selects a printer and page orientation, margins,
and headers/footers.

-----------------------------
VirtualListBox (VirtList.pas)
-----------------------------
Listbox control that allows an unlimited number of items.

---------------------------
PrintControl (Xprinter.pas)
---------------------------
Nonvisual control that handles printing of text, tables, and graphics.
Includes a print preview feature. Documentation is provided in the file
Xprinter.doc.

What do the Components look like?
Figure 2. Delphi Components on a Form


EPA SWMM Build 5.1.007 (9/15/2014) with New Feature Images

SWMM 5.1 Update History
=======================

Engine Updates, more information and code shown on the EPA Website:

1.   A new feature that provides monthly adjustments for
     temperature, evaporation rate, and rainfall was added.


2.   Support for reading the new GHCN-Daily climate data
     files available from NCDC's Climate Data Online service
     was added.

3.   In addition to lateral groundwater flow, a custom
     equation can now also be used for seepage flow to
     a deeper groundwater aquifer.


4.   The [GW_FLOW] section of the project file was renamed
     to [GWF] and its format was changed to accommodate
     both lateral and deep groundwater flow equations.

5.   A new Weir parameter was added that specifies if the
     weir can surcharge using an orifice equation or not.
     Surcharging was the only option in SWMM 5.0 but was
     switched to no surcharging in earlier 5.1 releases.
     This new parameter accommodates both closed top weirs
     that can surcharge and open channel weirs that cannot.


6.   The formula used to recover infiltration capacity during
     dry periods for the Modified Horton method was revised.

7.   The initial cumulative infiltration into the upper soil
     zone for Green-Ampt infiltration had been incorrectly
     set to the maximum value instead of zero.

8.   All of the Green-Ampt infiltration functions were
     re-factored to make the code easier to follow.

9.   The calculation of infiltration out of the bottom of a
     Bio-Retention Cell or Permeable Pavement LID unit with a
     zero-depth storage layer was corrected.

10.  Most of the LID simulation routines were modified to
     provide more accurate results under flooded conditions.

11.  Results written to the detailed LID results report now
     always correspond to a full reporting time step.

12.  The name of the variable used to represent the height of
     the receiving channel bottom in a user-defined groundwater
     flow equation was corrected to match the name displayed
     in the GUI's Groundwater Editor dialog (Hcb).

13.  A problem with the program crashing when a climate file
     was used to provide evaporation rates for open channels
     and storage nodes when runoff was not computed (as when
     there were no subcatchments in the project) was fixed.

14.  Flow and pollutant routing mass balance accounting was
     modified to correctly handle negative external inflows.

15.  The procedure for computing the area available for seepage
     out of a storage node that has a tabular storage curve was
     corrected.

16.  Seepage from storage units can now be modeled using Green-
     Ampt infiltration, which makes the seepage rate a function
     of storage level. The constant seepage rate option can
     still be used by setting the G-A initial moisture deficit
     to 0.


17.  The function that finds depth as a function of volume from
     a storage curve was corrected for the case where the depth
     falls within a portion of the curve where area is constant
     with depth (i.e., vertical side walls).

GUI Updates:

1.   The Object Toolbar was restored.


2.   A new page was added to the Climatology Editor to edit
     values for monthly adjustments for temperature, evaporation,
     and rainfall.

3.   A field for the new weir surcharge option was added to the
     Weir Property editor.

4.   A problem with the current project being closed without
     asking if it should be saved first whenever a new style
     theme was selected from the Program Preferences dialog
     has been fixed.

5.   The default seepage rate from an LID storage layer was changed.

6.   The Infiltration Editor was restored for editing Green-Ampt
     parameters for storage unit seepage loss.

7.   The Groundwater Flow Equation Editor was extended to accept

     equations for deep groundwater flow.

History of EPA SWMM versions (from Wikipedia)


Tuesday, October 7, 2014

Transects in InfoSWMM and SWMM5

Transects in #InfoSWMM and #SWMM5
  • There is only one transect per link and the shape stays the same from the  upstream to the downstream node
  • The links are irregular channels with the name of the imported HEC-RAS transect defining the shape of the transect (Bullet 1)
  • The transects are converted from the station/elevation pairs to normalized depth and width tables (Bullet 2)
  • The inverts used for the links are independent of the station/elevation pairs, if the offset is zero then the  invert of the link equals the invert of the upstream or downstream node (Bullet 3)
  • The normalized tables are shown in the text report file (Bullet 4)
  • If the node depth or rim elevation is lower than the depth of the transect the depth is increased internally in the engine (Bullet 5)
  • If you only have one transect for the culvert you can assign the same transect name to both the upstream and downstream irregular links
    Transect Information

Sunday, September 28, 2014

¿Y si tuviéramos que inventar el drenaje urbano?

The following is from
http://www.iagua.es/blogs/luis-martin-martinez/y-si-tuvieramos-que-inventar-drenaje-urbano

¿Y si tuviéramos que inventar el drenaje urbano?

Imaginaos que no tuviésemos ninguna idea preconcebida sobre donde se situar las calles o los jardines en un entorno urbano, como debe moverse el agua, imaginaos que nunca hubiéramos visto una alcantarilla o un colector.

¿Cuál sería el primer paso?

Pues intentar "copiar", pero no de otras ciudades (eso es lo que queremos evitar), sino de la propia naturaleza, que lleva millones de años haciéndolo de la misma manera, por algo será.
Observamos la naturaleza de nuestro alrededor y vemos que el agua tiende a concentrarse y discurrir por las zonas más bajas (cosas de la gravedad). Y que en esas zonas, hay una mayor densidad de vegetación, son los denominados ríos y sus riberas repletas vida. Sin embargo, en las zonas más altas, donde el agua tiende a drenar hacia zonas más bajas, la vegetación es menor.
O sea que la situación en la naturaleza, de manera simplificada, es más o menos así:
Entonces, para fijar conceptos básicos:
  • zonas bajas = más agua = más vegetación
  • zonas elevadas = menos agua = menos vegetación.
Si hacemos un poco de trampa y miramos como es el drenaje urbano en una ciudad esperaríamos encontrar la misma lógica, pero esa es la lógica de la naturaleza y al parecer no se aplica en el entorno urbano, que tiene sus propias reglas. Será por eso que no lo hacemos distinto a la naturaleza, sino totalmente al contrario.
Fijaos en cómo es la estructura de una calle cualquiera:
Las zonas de vegetación, siempre situadas en alto (ya sea un metro o 10 cm) drenan hacia las zonas más bajas (la gravedad sigue haciendo de las suyas) en las que no hay vegetación, solo aceras, asfalto, coches y suciedad. Le quitamos agua a la vegetación para poder ensuciarla, acumularla en colectores impermeables (la mayoría de veces mezclada con aguas residuales), transportarla hasta una estación depuradora (si la hay y tiene la suficiente capacidad para ese evento de lluvia), depurarla y devolverla a la naturaleza, o en el mejor de los casos regar con ella la vegetación a la que se la quitamos. Todo muy lógico.
Esto no significa que debamos plantar chopos en mitad de la callesino cambiar nuestra manera de abordar el drenaje urbano, pensar de otra manera. Un drenaje más inteligente que nos permita aunar las necesidades del drenaje en un entorno urbano sin olvidar que seguimos estando en la naturaleza, el agua lo interconecta todo.
Un ejemplo sencillo de esto podemos encontrarlo en cualquier calle de una ciudad, en la que el jardín o rotonda de turno se encuentra más elevado que la acera, sin posibilidad de aprovechar el agua que cae en esta, o directamente la acera drena hacia la calzada en vez de hacia el jardín.
Una rotonda cualquiera
Una vez teniendo claros los conceptos básicos a todos se nos pueden ocurrir ideas para diseñarlo de otra manera, la clave está en querer “calentarse un poco la cabeza”, cosa bastante poco habitual. Unas modificaciones rápidas, siguiendo la lógica natural, consistirían en estas:
  • Cambiar el peralte de la rotonda hacia el interior, cosa que además agradecerán los coches.
  • Construir el jardín con su parte central más deprimida para obtener un volumen de almacenamiento.
  • Rodearla con una rigola y un bordillo con aberturas que permita la entrada del agua caída en la rotonda.
  • Instalar un desagüe hacia la red de pluviales a modo de vertedero que evite que el agua supere un cierto nivel e invada la rotonda.
Rotonda modificada
Esta filosofía es la que aplican los llamados SUDS (Sistemas Urbanos de Drenaje Sostenible) y cuya aspiración máxima es conseguir que el drenaje urbano pueda imitar lo mejor posible al ciclo natural del agua, que había antes de urbanizar. Es decir, que la naturaleza “note” lo menos posible nuestra presencia.
Algunos ejemplos de este tipo de drenaje ya construido, similar al ejemplo de la rotonda, los vemos aquí:
Ejemplos de "jardines de lluvia" Fuente: www.homesii.com
Estos “jardines de lluvia” o “áreas de biorretención”, además de aprovechar mejor el agua de lluvia, consiguen infiltrar gran parte de la escorrentía, disminuyendo la presión sobre las redes de drenaje. También tienen la capacidad de depurar los contaminantes arrastrados tras discurrir por calles y aceras.
Existen muchas tipologías de SUDS; Ã¡reas de biorretención, depósitos de infiltración, pozos de infiltración, humedales, techos verdes, etc. Pero lo importante es la filosofía que hay detrás de todo esto, un drenaje más natural y bastante más inteligente.


Tuesday, September 16, 2014

Innovyze President Dr. Paul F. Boulos Appointed to ASCE Industry Leaders Council

Innovyze Press Release
 Insider BlogLinkedInTwitterYouTubeYouTube
Innovyze President Dr. Paul F. Boulos Appointed to ASCE Industry Leaders Council


Broomfield, Colorado, USA, September 16, 2014

Innovyze, a leading global innovator of wet infrastructure modeling and simulation software and technologies, today announced that its President, COO and Chief Technical Officer, Paul F. Boulos, Ph.D., BCEEM, NAE, Hon.D.WRE, Dist.D.NE, F.ASCE, has been appointed a member of the American Society of Civil Engineers’ Industry Leaders Council (ILC).

Established in 2009, the ILC engages senior leaders from the public and private sectors to discuss trends and issues in the civil engineering profession and work with the American Society of Civil Engineers (ASCE) to formulate policy to help drive the civil engineering industry forward. The council serves as a strategic advisor in identifying emerging trends and developing solutions to key challenges facing the profession such as workforce development, sustainability, project delivery improvement, risk management, and infrastructure resilience.

Dr. Boulos joins a distinguished list of industry leaders on the council, including Anthony S. Bartolomeo, President and CEO of Pennoni Associates, Inc.; Gerald E. Buckwalter, Director of Strategy for Northrop Grumman Corp.; J. Richard Capka, COO of Dawson & Associates; Raymond P. Daddazio, President and CEO of Weidlinger Associates, Inc.; Nickolas M. DeNichilo, President and CEO of Hatch Mott MacDonald; Henry L. Green, President of National Institute of Building Sciences; Scott N. Heefner, Vice President for TASC; Ira Allan Levy, Executive Vice President for AECOM; Michael K. Loose, Senior Vice President for Parsons; Eugene A. Lupia, President for CH2M Hill; Michael T. McCullough, Vice President for Walt Disney Imagineering; Patrick J. Natale, Executive Director of ASCE; Terry F. Neimeyer, CEO & Chairman of the Board of KCI Technologies, Inc.; Robert Prieto, Senior Vice President of Fluor Corp.; Robert M. Scaer, President, COO and CIO of Gannett Fleming, Inc.; Laura J. Steinberg, Dean at Syracuse University; Christopher M. Stone, President of Clark Nexsen; Janice L. Tuchman, Editor-in-Chief of McGraw-Hill Construction; Virginia E. Valentine, President of Nevada Resorts Association; and Peter J. Zpif, Chief Engineer for Port Authority NYNJ.

Dr. Boulos is one of the world’s foremost experts on water resources and navigation engineering and the author of nine authoritative books and more than 200 technical articles on issues critical to the water and wastewater industry. He has received numerous honors from national and international scientific and engineering societies, governments, universities, and NGOs, including technical awards for excellence in scholarship from ASCE, the American Water Works Association (AWWA) and the U.S. Environmental Protection Agency (USEPA). He was recognized with the U.S. Ellis Island Medal of Honor, one of America’s highest accolades; the Pride of Heritage Award from the Lebanese American Foundation; and the Lebanese American University Alumni of the Year Award. He was also inducted into the University of Kentucky College of Engineering Hall of Distinction, the highest honor the university bestows on its alumni.

Dr. Boulos has been awarded Honorary Diplomate status by the American Academy of Water Resources Engineers (AAWRE) as well as Distinguished Diplomate status in Navigation Engineering by the Academy of Coastal, Ocean, Port & Navigation Engineers (ACOPNE), the top honors for both academies. He is a Fellow of ASCE, a Diplomate (by Eminence) of the American Academy of Environmental Engineers and Scientists (AAEES), and was elected to the National Academy of Engineering (NAE), the highest professional distinction accorded to an engineer.

Dr. Boulos is chairman of the Board of Trustees of the Lebanese American University (New York, NY, and Beirut, Lebanon) and president/chair of AAWRE. He also serves on the Board of Trustees of ACOPNE; the Boards of Directors of Innovyze, MWH Global (Broomfield, CO) and America-Mideast Educational and Training Services, Inc./AMIDEAST (Washington, D.C.); and the Dean’s International Council of the Harris School of Public Policy Studies at the University of Chicago (Chicago, IL). He has been a member of advisory boards and councils for many organizations, including the Buck Advisory Council of the Buck Institute for Research on Aging (Novato, CA), the USEPA Science Advisory Board, the Urban Water Resources Research Council of the Environmental and Water Resources Institute (EWRI), and the National Academy of Sciences/National Research Council.

Dr. Boulos received his Doctorate, Master of Science and Bachelor of Science degrees in Civil Engineering from the University of Kentucky, along with a Bachelor’s degree in General Science from the Lebanese American University. He has also completed Harvard Business School’s Advanced Management Program.

Saturday, August 30, 2014

Area Scaling Factor in #INFOSWMM and #H20MAPSWMM

Note: Area Scaling Factor in #INFOSWMM and #H20MAPSWMM  is needed if you want to update the DB from the Map after drawing a Subcatchment. The Auto Area Calculation Flag has to be turned on for this to work. Why did I write this blog? The USA conversion is really hard to remember!





2.295684113865932e-5  Area Scaling Factor for USA Units
0.0001                                Area Scaling Factor for SI Units                         

Saturday, August 16, 2014

Tweets about InfoWorks ICM from RDICKINSON

What is this blog post about?  It is a visual widget to my tweets on  InfoWorks ICM from the twitter person RDICKINSON  Why do I use Twitter?  I first started using twitter in 2008 thanks to our daughter @boonsri and my love of timelines.

Tweets about InfoSWMM from RDICKINSON

What is this blog post about?  It is a visual widget to my tweets on InfoSWMM from the twitter person RDICKINSON  Why do I use Twitter?  I first started using twitter in 2008 thanks to our daughter @boonsri and my love of timelines.  My goal is to reach 100,000 tweets if I last long enough and Twitter lasts enough years.  I would have over 100,000 tweets now if I had started in 1980 and tweets were possible in the  80's

AI Rivers of Wisdom about ICM SWMM

Here's the text "Rivers of Wisdom" formatted with one sentence per line: [Verse 1] 🌊 Beneath the ancient oak, where shadows p...