Digital Cities - Water Utilities


A digital twin application employing a leveled approach to monitoring and optimization. A comprehensive overview of the city's water infrastructure, including flood prediction analytics. The focus then shifts to individual pump stations, integrating efficiency monitoring at each site. The app drills down to detailed insights into the performance of each pump, ensuring thorough and efficient management of the city's water systems.



ContributorXMPro
TypeBlueprint
Import Password Dem0nstr@t1on
How to Import Click Here














Application

Three level of a digital city water utilities. Starting with an overview where the live data and status of reservoirs, pump station and treatment plants can be viewed in whole on an interactive map. Flood prediction is actively displayed for the whole area. The next level is the facility level, specifically a pump station for this demonstration, which focuses on aggregate asset performance and energy efficiency. Finally a drilldown of the pump assets for a refined condition monitoring insights and preventative actions. The application is configured using:

1.0 Landing Page

Block Description
D3 A visualization for interactive facilities on a map
Circular Gauge Display the flood prediction status
Recommendations View current open recommendations for all items
Indicator Indicate the rate of change for live data
Image Showing the weather icons for the forecast
Select Box Select a facility

2.0 Pump Station Overview

Block Description
Circular Gauge Display the energy consumption percentage
Indicator Indicate the rate of change for live data
Image Map View the plant schematic and live data
Radio Buttons Toggle between 2D and 3D views
Unity Visualize the 3D unity model
D3 Live camera view
Recommendations To view current open recommendations for the plant

3.0 Pump Drilldown

Block Description
Chart To display the live operational data
Indicator Indicate the rate of change for live data
Button Display running status
Unity Visualize the 3D unity model
D3 Live camera view
D3 XMPro Co-pilot
Recommendations To view current open recommendations for the pump

Recommendations

Flood Prediction

Proactive detection of potential flood events for timely preventive action.

Condition Monitoring Overview

Comprehensive surveillance of water utility infrastructure for operational health.

Condition Monitoring Asset

Detailed monitoring of each pump’s performance and condition within the system

Data Streams

[1] Flood Prediction

An example of how to contextualize simulated data, predict flooding, receive intelligent suggestions, run recommendations and output the data and results to the Application Designer. The data stream is configured using:

Agent Description
CSV Listener Simulate Weather Data
Calculated Field Model Path
JSON Serializer Pack Result
Python Flood Prediction Model
Broadcast Broadcast
XMPro App Send Data to XMPro App [Single]
XMPro App Send Data to XMPro App [Chart]
Alter Attributes Alter Attributes
Run Recommendation Run Recommendation

[2] Water Facilities

An example of how to stream facility data to the Application Designer. The data stream is configured using:

Agent Description
CSV Listener Simulate Facility Data
Broadcast Broadcast
XMPro App City Water Facilities [Single]
Run Recommendation Run Recommendation

[3] Pump Station

Data related to the pump station assets.

Agent Description
CSV Listener Simulate Pump Station Asset Data
SQL Context Provider Positions
Join transformation Join Positions
Read Recommendations Read Recommendation
Join transformation Join Recommendations
Calculated Field Low & High Indicators
Alter Attributes Alter Attributes
Group & Merge Merge Together
Broadcast Broadcast
XMPro App Pump Station [Single]
Run Recommendation Run Recommendation

[4] Water Pumps

Monitor multiple pump data in real-time for pumps in a water pump station.

Agent Description
MQTT Listener Pumps Data
Read Recommendations Read Recommendation
Join transformation Join
Round Rounding
Broadcast Broadcast
Calculated Field Unity Pump [1] Model Variables
Group & Merge Group & Merge
SQL Context Provider Map Positioning
Join transformation Join Map Positions
Broadcast Broadcast
XMPro App Pump [Single]
XMPro App Pump [Chart]
Run Recommendation Run Recommendation
Calculated Field Unity Pumps [3] Model Variables
Group & Merge Group & Merge to Asset
Window Window
Group & Merge Group & Merge to Station
XMPro App Pumps [Single]

[5] Flow Control

Monitor flow data in real-time for a water pump station.

Agent Description
MQTT Listener Flow Control Telemetry
XMPro App Flow Control

[6] Flow Control Telemetry

Simulate flow data in real-time for a water pump station.

Agent Description
CSV Listener Simulate Intake & Discharge
MQTT Action Agent Emit Data

[7] Pumps

Simulate multiple pump data in real-time for pumps in a water pump station.

Agent Description
CSV Listener Data PMP01
CSV Listener Data PMP02
CSV Listener Data PMP03
union Union
MQTT Action Agent Emit Data

Notebook

The Notebook Flood Prediction.ipynb can re-run to generate the model file for the Python agent. The datasets used with this model development are in the same folder as the notebook file, you can find them by clicking on the CSV - Weather Data SIngaporeitem in the links list. This process involves training a model and saving the weights - be sure to place the resulting file in a location that the Stream Host can access. Also update the path in the Calculated Field agent for [1] Flood Prediction so that the correct file is used to supply the weights.

Steps to Import

1. Create/confirm variables

Ensure the following variables are available to be used in the data stream:

  • App Designer URL
  • App Designer Integration Key (Encrypted)

2. Import SQL Tables

  • Execute SQL files so that the DemoWorkManagementPump and DemoMaintenanceHistory tables are present and contain data.

3. Save the Python Model

  • Download and save the svr_pipeline_model.joblib Joblib file to a chosen directory that is accessible by the Stream Host.
  • Note this directory as it needs to be updated in the [1] Flood Prediction Data Stream.
  • Ensure scikit-learn, pandas and joblib are installed in the same Python environment.
    • example: pip install pandas in terminal.

4. Import the Data Streams

Follow the guide for applicable parts:

  • Select the highest agent version number on import, if prompted
  • Assign Access to others as required
  • XMPro agents () - ensure the URL & Integration Key are selected
  • Recommendation agent () - ensure the URL & Integration Key are selected
  • Read Recommendation () - Do not configure yet, this will be configured once the recommendation is imported
  • Calculated Field () - ensure the correct model file paths are configured (path chosen in step 2)
  • Python agent () - ensure the correct Python version is selected, a stream host has access to a Python runtime, the paths are set and the script is applied.
  • SQL Context Provider () - ensure the correct SQL credentials are entered.
  • Click Apply and save the data stream
  • Publish the data stream and open the live view
  • Ensure there is data in the live view by monitoring the agents

5. Import the Recommendations

Map the data stream to import

Recommendation Name Category Data Stream
Condition Monitoring Asset Utilities (or own choice) City Water Condition Monitoring
Condition Monitoring Overview Utilities (or own choice) City Water Overview
Flood Prediction Utilities (or own choice) City Flood Prediction

Assign Access to others as required

6. Set Read Recommendation Agents

Configure the following Read Recommendation agents along with the URL and Key fields:

6.1 Pump Unity & Pumps Unity

Recommendation: Condition Monitoring Asset
Rules: All

7. Import the Application

1.0 Landing Page

Map the data source on import:

Data Source Name Data Stream Agent Option
City Water Facilities [Single] [2] Water Facilities City Water Facilities [Single]
City Flood Prediction [Single] [1] Flood Prediction City Flood Prediction [Single]
City Flood Prediction [Chart] [1] Flood Prediction City Flood Prediction [Chart]


2.0 Pump Station Overview

Map the data source on import:

Data Source Name Data Stream Agent Option
City Water Facilities [Single] [2] Water Facilities City Water Facilities [Single]
Pump [Single] [4] Water Pumps Pump [Single]
Pump Station [Single] [3] Pump Station Pump Station [Single]
Pumps [Single] [4] Water Pumps Pumps [Single]


3.0 Pump Drilldown

Map the data source on import:

Data Source Name Data Stream Agent Option
Pump [Single] [4] Water Pumps Pump [Single]
Pump [Chart] [4] Water Pumps Pump [Chart]


  • After importing, on the Landing Page download Water Utilities Map.html Change the URL in the D3 map to link to the Pump Station Overview page and reupload to the D3 element
    • Specifically the lines:
      "url": "https://xmpro-ad.azurewebsites.net/render;appId=2379;pageId=9890;appVersion=1;categoryId=;categoryName="
  • Assign Access to others as required
  • Ensure the App Data connection properties are configured and valid
  • Edit the application to link the recommendations - Select all recommendations mentioned in this guide.

    Page Location Entity ID
    1.0 Landing Page Bottom Right null
    2.0 Pump Station Overview Bottom Right null
    3.0 Pump Drilldown Middle Right Parameter.AssetId
  • Save the application
  • Publish the application
  • Ensure there is data in the application and that the Unity model is receiving its data by hovering over and observing the values
MIT License For assistance or requests, please contact support@xmpro.com