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 SIngapore
item 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
andDemoMaintenanceHistory
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
andjoblib
are installed in the same Python environment.- example:
pip install pandas
in terminal.
- example:
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="
- Specifically the lines:
- 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