删除发版无关的文件

This commit is contained in:
2026-03-13 10:12:08 +08:00
parent 9aa0646bc6
commit a310522812
203 changed files with 2 additions and 3716873 deletions
-388
View File
@@ -1,388 +0,0 @@
from typing import Any, List, Dict, Optional
import logging
from datetime import datetime, timedelta, timezone, time as dt_time
import msgpack
from fastapi import APIRouter
from pydantic import BaseModel
from py_linq import Enumerable
import app.infra.db.influxdb.api as influxdb_api
import app.services.time_api as time_api
from app.infra.cache.redis_client import redis_client, encode_datetime, decode_datetime
router = APIRouter()
logger = logging.getLogger(__name__)
# Basic Node/Link Latest Record Queries
@router.get("/querynodelatestrecordbyid/")
async def fastapi_query_node_latest_record_by_id(id: str) -> Any:
return influxdb_api.query_latest_record_by_ID(id, type="node")
@router.get("/querylinklatestrecordbyid/")
async def fastapi_query_link_latest_record_by_id(id: str) -> Any:
return influxdb_api.query_latest_record_by_ID(id, type="link")
@router.get("/queryscadalatestrecordbyid/")
async def fastapi_query_scada_latest_record_by_id(id: str) -> Any:
return influxdb_api.query_latest_record_by_ID(id, type="scada")
# Time-based Queries
@router.get("/queryallrecordsbytime/")
async def fastapi_query_all_records_by_time(querytime: str) -> dict[str, list]:
results: tuple = influxdb_api.query_all_records_by_time(query_time=querytime)
return {"nodes": results[0], "links": results[1]}
@router.get("/queryallrecordsbytimeproperty/")
async def fastapi_query_all_record_by_time_property(
querytime: str, type: str, property: str, bucket: str = "realtime_simulation_result"
) -> dict[str, list]:
results: tuple = influxdb_api.query_all_record_by_time_property(
query_time=querytime, type=type, property=property, bucket=bucket
)
return {"results": results}
@router.get("/queryallschemerecordsbytimeproperty/")
async def fastapi_query_all_scheme_record_by_time_property(
querytime: str,
type: str,
property: str,
schemename: str,
bucket: str = "scheme_simulation_result",
) -> dict[str, list]:
"""
查询指定方案某一时刻的所有记录,查询 'node''link' 的某一属性值
"""
results: list = influxdb_api.query_all_scheme_record_by_time_property(
query_time=querytime,
type=type,
property=property,
scheme_name=schemename,
bucket=bucket,
)
return {"results": results}
@router.get("/querysimulationrecordsbyidtime/")
async def fastapi_query_simulation_record_by_ids_time(
id: str, querytime: str, type: str, bucket: str = "realtime_simulation_result"
) -> dict[str, list]:
results: tuple = influxdb_api.query_simulation_result_by_ID_time(
ID=id, type=type, query_time=querytime, bucket=bucket
)
return {"results": results}
@router.get("/queryschemesimulationrecordsbyidtime/")
async def fastapi_query_scheme_simulation_record_by_ids_time(
scheme_name: str,
id: str,
querytime: str,
type: str,
bucket: str = "scheme_simulation_result",
) -> dict[str, list]:
results: tuple = influxdb_api.query_scheme_simulation_result_by_ID_time(
scheme_name=scheme_name, ID=id, type=type, query_time=querytime, bucket=bucket
)
return {"results": results}
# Date-based Queries with Caching
@router.get("/queryallrecordsbydate/")
async def fastapi_query_all_records_by_date(querydate: str) -> dict:
is_today_or_future = time_api.is_today_or_future(querydate)
logger.info(f"isToday or future: {is_today_or_future}")
cache_key = f"queryallrecordsbydate_{querydate}"
if not is_today_or_future:
data = redis_client.get(cache_key)
if data:
results = msgpack.unpackb(data, object_hook=decode_datetime)
logger.info("return from cache redis")
return results
logger.info("query from influxdb")
nodes_links: tuple = influxdb_api.query_all_records_by_date(query_date=querydate)
results = {"nodes": nodes_links[0], "links": nodes_links[1]}
if not is_today_or_future:
logger.info("save to cache redis")
redis_client.set(cache_key, msgpack.packb(results, default=encode_datetime))
logger.info("return results")
return results
@router.get("/queryallrecordsbytimerange/")
async def fastapi_query_all_records_by_time_range(
starttime: str, endtime: str
) -> dict[str, list]:
cache_key = f"queryallrecordsbytimerange_{starttime}_{endtime}"
if not time_api.is_today_or_future(starttime):
data = redis_client.get(cache_key)
if data:
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
return loaded_dict
nodes_links: tuple = influxdb_api.query_all_records_by_time_range(
starttime=starttime, endtime=endtime
)
results = {"nodes": nodes_links[0], "links": nodes_links[1]}
if not time_api.is_today_or_future(starttime):
redis_client.set(cache_key, msgpack.packb(results, default=encode_datetime))
return results
@router.get("/queryallrecordsbydatewithtype/")
async def fastapi_query_all_records_by_date_with_type(
querydate: str, querytype: str
) -> list:
cache_key = f"queryallrecordsbydatewithtype_{querydate}_{querytype}"
data = redis_client.get(cache_key)
if data:
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
return loaded_dict
results = influxdb_api.query_all_records_by_date_with_type(
query_date=querydate, query_type=querytype
)
packed = msgpack.packb(results, default=encode_datetime)
redis_client.set(cache_key, packed)
return results
@router.get("/queryallrecordsbyidsdatetype/")
async def fastapi_query_all_records_by_ids_date_type(
ids: str, querydate: str, querytype: str
) -> list:
cache_key = f"queryallrecordsbydatewithtype_{querydate}_{querytype}"
data = redis_client.get(cache_key)
results = []
if data:
results = msgpack.unpackb(data, object_hook=decode_datetime)
else:
results = influxdb_api.query_all_records_by_date_with_type(
query_date=querydate, query_type=querytype
)
packed = msgpack.packb(results, default=encode_datetime)
redis_client.set(cache_key, packed)
query_ids = ids.split(",")
# Using Enumerable from py_linq as in original code
e_results = Enumerable(results)
lst_results = e_results.where(lambda x: x["ID"] in query_ids).to_list()
return lst_results
@router.get("/queryallrecordsbydateproperty/")
async def fastapi_query_all_records_by_date_property(
querydate: str, querytype: str, property: str
) -> list[dict]:
cache_key = f"queryallrecordsbydateproperty_{querydate}_{querytype}_{property}"
data = redis_client.get(cache_key)
if data:
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
return loaded_dict
result_dict = influxdb_api.query_all_record_by_date_property(
query_date=querydate, type=querytype, property=property
)
packed = msgpack.packb(result_dict, default=encode_datetime)
redis_client.set(cache_key, packed)
return result_dict
# Curve Queries
@router.get("/querynodecurvebyidpropertydaterange/")
async def fastapi_query_node_curve_by_id_property_daterange(
id: str, prop: str, startdate: str, enddate: str
):
return influxdb_api.query_curve_by_ID_property_daterange(
id, type="node", property=prop, start_date=startdate, end_date=enddate
)
@router.get("/querylinkcurvebyidpropertydaterange/")
async def fastapi_query_link_curve_by_id_property_daterange(
id: str, prop: str, startdate: str, enddate: str
):
return influxdb_api.query_curve_by_ID_property_daterange(
id, type="link", property=prop, start_date=startdate, end_date=enddate
)
# SCADA Data Queries
@router.get("/queryscadadatabydeviceidandtime/")
async def fastapi_query_scada_data_by_device_id_and_time(ids: str, querytime: str):
query_ids = ids.split(",")
logger.info(querytime)
return influxdb_api.query_SCADA_data_by_device_ID_and_time(
query_ids_list=query_ids, query_time=querytime
)
@router.get("/queryscadadatabydeviceidandtimerange/")
async def fastapi_query_scada_data_by_device_id_and_time_range(
ids: str, starttime: str, endtime: str
):
print(f"query_ids: {ids}, starttime: {starttime}, endtime: {endtime}")
query_ids = ids.split(",")
return influxdb_api.query_SCADA_data_by_device_ID_and_timerange(
query_ids_list=query_ids, start_time=starttime, end_time=endtime
)
@router.get("/queryfillingscadadatabydeviceidandtimerange/")
async def fastapi_query_filling_scada_data_by_device_id_and_time_range(
ids: str, starttime: str, endtime: str
):
print(f"query_ids: {ids}, starttime: {starttime}, endtime: {endtime}")
query_ids = ids.split(",")
return influxdb_api.query_filling_SCADA_data_by_device_ID_and_timerange(
query_ids_list=query_ids, start_time=starttime, end_time=endtime
)
@router.get("/querycleaningscadadatabydeviceidandtimerange/")
async def fastapi_query_cleaning_scada_data_by_device_id_and_time_range(
ids: str, starttime: str, endtime: str
):
print(f"query_ids: {ids}, starttime: {starttime}, endtime: {endtime}")
query_ids = ids.split(",")
return influxdb_api.query_cleaning_SCADA_data_by_device_ID_and_timerange(
query_ids_list=query_ids, start_time=starttime, end_time=endtime
)
@router.get("/querysimulationscadadatabydeviceidandtimerange/")
async def fastapi_query_simulation_scada_data_by_device_id_and_time_range(
ids: str, starttime: str, endtime: str
):
print(f"query_ids: {ids}, starttime: {starttime}, endtime: {endtime}")
query_ids = ids.split(",")
return influxdb_api.query_simulation_SCADA_data_by_device_ID_and_timerange(
query_ids_list=query_ids, start_time=starttime, end_time=endtime
)
@router.get("/querycleanedscadadatabydeviceidandtimerange/")
async def fastapi_query_cleaned_scada_data_by_device_id_and_time_range(
ids: str, starttime: str, endtime: str
):
print(f"query_ids: {ids}, starttime: {starttime}, endtime: {endtime}")
query_ids = ids.split(",")
return influxdb_api.query_cleaned_SCADA_data_by_device_ID_and_timerange(
query_ids_list=query_ids, start_time=starttime, end_time=endtime
)
@router.get("/queryscadadatabydeviceidanddate/")
async def fastapi_query_scada_data_by_device_id_and_date(ids: str, querydate: str):
query_ids = ids.split(",")
return influxdb_api.query_SCADA_data_by_device_ID_and_date(
query_ids_list=query_ids, query_date=querydate
)
@router.get("/queryallscadarecordsbydate/")
async def fastapi_query_all_scada_records_by_date(querydate: str):
is_today_or_future = time_api.is_today_or_future(querydate)
logger.info(f"isToday or future: {is_today_or_future}")
cache_key = f"queryallscadarecordsbydate_{querydate}"
if not is_today_or_future:
data = redis_client.get(cache_key)
if data:
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
logger.info("return from cache redis")
return loaded_dict
logger.info("query from influxdb")
result_dict = influxdb_api.query_all_SCADA_records_by_date(query_date=querydate)
if not is_today_or_future:
logger.info("save to cache redis")
packed = msgpack.packb(result_dict, default=encode_datetime)
redis_client.set(cache_key, packed)
logger.info("return results")
return result_dict
@router.get("/queryallschemeallrecords/")
async def fastapi_query_all_scheme_all_records(
schemetype: str, schemename: str, querydate: str
) -> tuple:
cache_key = f"queryallschemeallrecords_{schemetype}_{schemename}_{querydate}"
data = redis_client.get(cache_key)
if data:
loaded_dict = msgpack.unpackb(data, object_hook=decode_datetime)
return loaded_dict
results = influxdb_api.query_scheme_all_record(
scheme_type=schemetype, scheme_name=schemename, query_date=querydate
)
packed = msgpack.packb(results, default=encode_datetime)
redis_client.set(cache_key, packed)
return results
@router.get("/queryschemeallrecordsproperty/")
async def fastapi_query_all_scheme_all_records_property(
schemetype: str, schemename: str, querydate: str, querytype: str, queryproperty: str
) -> Optional[List]:
cache_key = f"queryallschemeallrecords_{schemetype}_{schemename}_{querydate}"
data = redis_client.get(cache_key)
all_results = None
if data:
all_results = msgpack.unpackb(data, object_hook=decode_datetime)
else:
all_results = influxdb_api.query_scheme_all_record(
scheme_type=schemetype, scheme_name=schemename, query_date=querydate
)
packed = msgpack.packb(all_results, default=encode_datetime)
redis_client.set(cache_key, packed)
results = None
if querytype == "node":
results = all_results[0]
elif querytype == "link":
results = all_results[1]
return results
@router.get("/queryinfluxdbbuckets/")
async def fastapi_query_influxdb_buckets():
return influxdb_api.query_buckets()
@router.get("/queryinfluxdbbucketmeasurements/")
async def fastapi_query_influxdb_bucket_measurements(bucket: str):
return influxdb_api.query_measurements(bucket=bucket)
############################################################
# download history data
############################################################
class Download_History_Data_Manually(BaseModel):
"""
download_date:样式如 datetime(2025, 5, 4)
"""
download_date: datetime
@router.post("/download_history_data_manually/")
async def fastapi_download_history_data_manually(
data: Download_History_Data_Manually,
) -> None:
item = data.dict()
tz = timezone(timedelta(hours=8))
begin_dt = datetime.combine(item.get("download_date").date(), dt_time.min).replace(
tzinfo=tz
)
end_dt = datetime.combine(item.get("download_date").date(), dt_time(23, 59, 59)).replace(
tzinfo=tz
)
begin_time = begin_dt.isoformat()
end_time = end_dt.isoformat()
influxdb_api.download_history_data_manually(
begin_time=begin_time, end_time=end_time
)
-61
View File
@@ -4,10 +4,8 @@ import json
import os
import shutil
import threading
import pandas as pd
from fastapi import APIRouter, HTTPException, File, UploadFile, Query
from fastapi.responses import PlainTextResponse
import app.infra.db.influxdb.api as influxdb_api
import app.services.simulation as simulation
import app.services.globals as globals
from app.infra.cache.redis_client import redis_client
@@ -30,8 +28,6 @@ from app.algorithms.sensor import (
pressure_sensor_placement_sensitivity,
pressure_sensor_placement_kmeans,
)
import app.algorithms.cleaning.flow as flow_data_clean
import app.algorithms.cleaning.pressure as pressure_data_clean
from app.services.network_import import network_update
from app.services.simulation_ops import (
project_management,
@@ -573,63 +569,6 @@ async def fastapi_pressure_sensor_placement(
return "success"
@router.post("/scadadevicedatacleaning/")
async def fastapi_scada_device_data_cleaning(
network: str = Query(...),
ids_list: List[str] = Query(...),
start_time: str = Query(...),
end_time: str = Query(...),
user_name: str = Query(...),
) -> str:
item = {
"network": network,
"ids": ids_list,
"start_time": start_time,
"end_time": end_time,
"user_name": user_name,
}
query_ids_list = item["ids"][0].split(",")
scada_data = influxdb_api.query_SCADA_data_by_device_ID_and_timerange(
query_ids_list=query_ids_list,
start_time=item["start_time"],
end_time=item["end_time"],
)
scada_device_info = influxdb_api.query_pg_scada_info(item["network"])
scada_device_info_dict = {info["id"]: info for info in scada_device_info}
type_groups: dict[str, list[str]] = {}
for device_id in query_ids_list:
device_info = scada_device_info_dict.get(device_id, {})
device_type = device_info.get("type", "unknown")
type_groups.setdefault(device_type, []).append(device_id)
for device_type, device_ids in type_groups.items():
if device_type not in ["pressure", "pipe_flow"]:
continue
type_scada_data = {
device_id: scada_data[device_id]
for device_id in device_ids
if device_id in scada_data
}
if not type_scada_data:
continue
time_list = [record["time"] for record in next(iter(type_scada_data.values()))]
df = pd.DataFrame({"time": time_list})
for device_id in device_ids:
if device_id in type_scada_data:
values = [record["value"] for record in type_scada_data[device_id]]
df[device_id] = values
if device_type == "pressure":
cleaned_value_df = pressure_data_clean.clean_pressure_data_df_km(df)
elif device_type == "pipe_flow":
cleaned_value_df = flow_data_clean.clean_flow_data_df_kf(df)
cleaned_value_df = pd.DataFrame(cleaned_value_df)
cleaned_df = pd.concat([df["time"], cleaned_value_df], axis=1)
influxdb_api.import_multicolumn_data_from_dict(
data_dict=cleaned_df.to_dict("list"),
raw=False,
)
return "success"
@router.post("/runsimulationmanuallybydate/")
async def fastapi_run_simulation_manually_by_date(
data: RunSimulationManuallyByDate,
-2
View File
@@ -6,7 +6,6 @@ from app.api.v1.endpoints import (
scada,
extension,
snapshots,
data_query,
users,
schemes,
misc,
@@ -83,7 +82,6 @@ api_router.include_router(visuals.router, tags=["Visuals"])
# Simulation & Data
api_router.include_router(simulation.router, tags=["Simulation Control"])
api_router.include_router(data_query.router, tags=["Data Query & InfluxDB"])
api_router.include_router(scada.router, tags=["SCADA"])
api_router.include_router(snapshots.router, tags=["Snapshots"])
api_router.include_router(users.router, tags=["Users"])
-5
View File
@@ -34,11 +34,6 @@ class Settings(BaseSettings):
TIMESCALEDB_DB_PORT: str = "5433"
TIMESCALEDB_DB_USER: str = "postgres"
TIMESCALEDB_DB_PASSWORD: str = "password"
# InfluxDB
INFLUXDB_URL: str = "http://localhost:8086"
INFLUXDB_TOKEN: str = "token"
INFLUXDB_ORG: str = "org"
INFLUXDB_BUCKET: str = "bucket"
# Metadata Database Config (PostgreSQL)
METADATA_DB_NAME: str = "system_hub"
View File
File diff suppressed because it is too large Load Diff
-6
View File
@@ -1,6 +0,0 @@
# influxdb数据库连接信息
url = "http://127.0.0.1:8086" # 替换为你的InfluxDB实例地址
token = "kMPX2V5HsbzPpUT2B9HPBu1sTG1Emf-lPlT2UjxYnGAuocpXq_f_0lK4HHs-TbbKyjsZpICkMsyXG_V2D7P7yQ==" # 替换为你的InfluxDB Token
# _ENCODED_TOKEN = "eEdETTVSWnFSSkF1ekFHUy1vdFhVZEMyTkZkWTc1cUpBalJMcUFCNHA1V2NJSUFsSVVwT3BUOF95QTE2QU9IbUpXZXJ3UV8wOGd3Yjg0c3k0MmpuWlE9PQ=="
# token = base64.b64decode(_ENCODED_TOKEN).decode("utf-8")
org = "TJWATERORG" # 替换为你的Organization名称
-33
View File
@@ -1,33 +0,0 @@
from influxdb_client import InfluxDBClient, Point, WriteOptions
from influxdb_client.client.query_api import QueryApi
import influxdb_info
# 配置 InfluxDB 连接
url = influxdb_info.url
token = influxdb_info.token
org = influxdb_info.org
bucket = "SCADA_data"
# 创建 InfluxDB 客户端
client = InfluxDBClient(url=url, token=token, org=org)
# 创建查询 API 对象
query_api = client.query_api()
# 构建查询语句
query = f'''
from(bucket: "{bucket}")
|> range(start: -1h)
'''
# 执行查询
result = query_api.query(query)
print(result)
# 处理查询结果
for table in result:
for record in table.records:
print(f"Time: {record.get_time()}, Value: {record.get_value()}, Measurement: {record.get_measurement()}, Field: {record.get_field()}")
# 关闭客户端连接
client.close()
+1 -1
View File
@@ -23,7 +23,7 @@ non_realtime_region_patterns = {} # 基于source_outflow_region进行区分
realtime_region_pipe_flow_and_demand_id = {} # 基于source_outflow_region搜索该分区中的实时pipe_flow和demand的api_query_id,后续用region的流量 - 实时流量计的流量
realtime_region_pipe_flow_and_demand_patterns = {} # 基于source_outflow_region搜索该分区中的实时pipe_flow和demand的associated_pattern,后续用region的流量 - 实时流量计的流量
# ---------------------------------------------------------
# influxdb_api.py中的全局变量
# 历史数据访问相关全局变量
# 全局变量,用于存储不同类型的 realtime api_query_id
reservoir_liquid_level_realtime_ids = []
tank_liquid_level_realtime_ids = []
-17
View File
@@ -30,7 +30,6 @@ import time
import shutil
from app.infra.epanet.epanet import Output
from typing import Optional, Tuple
import app.infra.db.influxdb.api as influxdb_api
import typing
import psycopg
import logging
@@ -1274,22 +1273,6 @@ def run_simulation(
# 暂不需要再次存储 SCADA 模拟信息
# TimescaleInternalQueries.fill_scheme_simulation_result_to_SCADA(scheme_type=scheme_type, scheme_name=scheme_name)
# if simulation_type.upper() == "REALTIME":
# influxdb_api.store_realtime_simulation_result_to_influxdb(
# node_result, link_result, modify_pattern_start_time
# )
# elif simulation_type.upper() == "EXTENDED":
# influxdb_api.store_scheme_simulation_result_to_influxdb(
# node_result,
# link_result,
# modify_pattern_start_time,
# num_periods_result,
# scheme_type,
# scheme_name,
# )
# 暂不需要再次存储 SCADA 模拟信息
# influxdb_api.fill_scheme_simulation_result_to_SCADA(scheme_type=scheme_type, scheme_name=scheme_name)
print("after store result")
del output
-105205
View File
File diff suppressed because it is too large Load Diff
-26498
View File
File diff suppressed because it is too large Load Diff
-30973
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-111322
View File
File diff suppressed because it is too large Load Diff
-328198
View File
File diff suppressed because it is too large Load Diff
-213
View File
@@ -1,213 +0,0 @@
[TITLE]
Hanoi example by Fujiwara and Khang, Water Resources Research, 1990
[JUNCTIONS]
;ID Elev Demand Pattern
2 0 890 ;
3 0 850 ;
4 0 130 ;
5 0 725 ;
6 0 1005 ;
7 0 1350 ;
8 0 550 ;
9 0 525 ;
10 0 525 ;
11 0 500 ;
12 0 560 ;
13 0 940 ;
14 0 615 ;
15 0 280 ;
16 0 310 ;
17 0 865 ;
18 0 1345 ;
19 0 60 ;
20 0 1275 ;
21 0 930 ;
22 0 485 ;
23 0 1045 ;
24 0 820 ;
25 0 170 ;
26 0 900 ;
27 0 370 ;
28 0 290 ;
29 0 360 ;
30 0 360 ;
31 0 105 ;
32 0 805 ;
[RESERVOIRS]
;ID Head Pattern
1 100.0 ;
[TANKS]
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
[PIPES]
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
1 1 2 100 0.0001 130 0 open ;
2 2 3 1350 0.0001 130 0 open ;
3 3 4 900 0.0001 130 0 open ;
4 4 5 1150 0.0001 130 0 open ;
5 5 6 1450 0.0001 130 0 open ;
6 6 7 450 0.0001 130 0 open ;
7 7 8 850 0.0001 130 0 open ;
8 8 9 850 0.0001 130 0 open ;
9 9 10 800 0.0001 130 0 open ;
10 10 11 950 0.0001 130 0 open ;
11 11 12 1200 0.0001 130 0 open ;
12 12 13 3500 0.0001 130 0 open ;
13 10 14 800 0.0001 130 0 open ;
14 14 15 500 0.0001 130 0 open ;
15 15 16 550 0.0001 130 0 open ;
16 17 16 2730 0.0001 130 0 open ;
17 18 17 1750 0.0001 130 0 open ;
18 19 18 800 0.0001 130 0 open ;
19 3 19 400 0.0001 130 0 open ;
20 3 20 2200 0.0001 130 0 open ;
21 20 21 1500 0.0001 130 0 open ;
22 21 22 500 0.0001 130 0 open ;
23 20 23 2650 0.0001 130 0 open ;
24 23 24 1230 0.0001 130 0 open ;
25 24 25 1300 0.0001 130 0 open ;
26 26 25 850 0.0001 130 0 open ;
27 27 26 300 0.0001 130 0 open ;
28 16 27 750 0.0001 130 0 open ;
29 23 28 1500 0.0001 130 0 open ;
30 28 29 2000 0.0001 130 0 open ;
31 29 30 1600 0.0001 130 0 open ;
32 30 31 150 0.0001 130 0 open ;
33 32 31 860 0.0001 130 0 open ;
34 25 32 950 0.0001 130 0 open ;
[PUMPS]
;ID Node1 Node2 Parameters
[VALVES]
;ID Node1 Node2 Diameter Type Setting MinorLoss
[TAGS]
[DEMANDS]
;Junction Demand Pattern Category
[STATUS]
;ID Status/Setting
[PATTERNS]
;ID Multipliers
[CURVES]
;ID X-Value Y-Value
[CONTROLS]
[RULES]
[ENERGY]
Global Efficiency 75
Global Price 0
Demand Charge 0
[EMITTERS]
;Junction Coefficient
[QUALITY]
;Node InitQual
[SOURCES]
;Node Type Quality Pattern
[REACTIONS]
;Type Pipe/Tank Coefficient
[REACTIONS]
Order Bulk 1
Order Wall 1
Global Bulk 0
Global Wall 0
Limiting Potential 0
Roughness Correlation 0
[MIXING]
;Tank Model
[TIMES]
Duration 0
Hydraulic Timestep 1:00
Quality Timestep 0:05
Pattern Timestep 1:00
Pattern Start 0:00
Report Timestep 1:00
Report Start 0:00
Start ClockTime 12 am
Statistic None
[REPORT]
Status No
Summary No
Page 0
[OPTIONS]
Units CMH
Headloss H-W
Specific Gravity 1
Viscosity 1
Trials 40
Accuracy 0.001
Unbalanced Continue 10
Pattern 1
Demand Multiplier 1.0
Emitter Exponent 0.5
Quality NONE mg/L
Diffusivity 1
Tolerance 0.01
[COORDINATES]
;Node X-Coord Y-Coord
2 5021.20 1582.17
3 5025.20 2585.42
4 5874.22 2588.30
5 6873.11 2588.30
6 8103.51 2585.42
7 8103.51 3234.67
8 8106.66 4179.28
9 8106.66 5133.78
10 7318.64 5133.78
11 7319.94 5831.65
12 7319.94 6671.19
13 5636.76 6676.24
14 6530.63 5133.78
15 5676.02 5133.78
16 5021.20 5133.78
17 5021.20 4412.36
18 5021.20 3868.52
19 5021.20 3191.49
20 3587.87 2588.30
21 3587.87 1300.84
22 3587.87 901.29
23 1978.55 2588.30
24 1975.58 4084.35
25 1980.46 5137.63
26 3077.46 5137.63
27 3933.52 5133.78
28 846.04 2588.20
29 -552.41 2588.20
30 -552.38 4369.06
31 -549.36 5137.63
32 536.45 5137.63
1 5360.71 1354.05
[VERTICES]
;Link X-Coord Y-Coord
[LABELS]
;X-Coord Y-Coord Label & Anchor Node
[BACKDROP]
DIMENSIONS -985.92 612.54 8551.27 6964.99
UNITS None
FILE
OFFSET 0.00 0.00
[END]
-132
View File
@@ -1,132 +0,0 @@
[TITLE]
[JUNCTIONS]
;ID Elev Demand Pattern
1 0 0 ;
2 0 0 ;
3 0 0 ;
4 0 0 ;
5 0 0 ;
[RESERVOIRS]
;ID Head Pattern
[TANKS]
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
[PIPES]
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
1 3 2 1000 12 100 0 Open ;
[PUMPS]
;ID Node1 Node2 Parameters
[VALVES]
;ID Node1 Node2 Diameter Type Setting MinorLoss
[TAGS]
[DEMANDS]
;Junction Demand Pattern Category
[STATUS]
;ID Status/Setting
[PATTERNS]
;ID Multipliers
[CURVES]
;ID X-Value Y-Value
[CONTROLS]
[RULES]
[ENERGY]
Global Efficiency 75
Global Price 0
Demand Charge 0
[EMITTERS]
;Junction Coefficient
[QUALITY]
;Node InitQual
[SOURCES]
;Node Type Quality Pattern
[REACTIONS]
;Type Pipe/Tank Coefficient
[REACTIONS]
Order Bulk 1
Order Tank 1
Order Wall 1
Global Bulk 0
Global Wall 0
Limiting Potential 0
Roughness Correlation 0
[MIXING]
;Tank Model
[TIMES]
Duration 0:00
Hydraulic Timestep 1:00
Quality Timestep 0:05
Pattern Timestep 1:00
Pattern Start 0:00
Report Timestep 1:00
Report Start 0:00
Start ClockTime 12 am
Statistic NONE
[REPORT]
Status No
Summary No
Page 0
[OPTIONS]
Units GPM
Headloss H-W
Specific Gravity 1
Viscosity 1
Trials 40
Accuracy 0.001
CHECKFREQ 2
MAXCHECK 10
DAMPLIMIT 0
Unbalanced Continue 10
Pattern 1
Demand Multiplier 1.0
Emitter Exponent 0.5
Quality None mg/L
Diffusivity 1
Tolerance 0.01
[COORDINATES]
;Node X-Coord Y-Coord
1 455.97 6698.11
2 6022.01 3616.35
3 7374.21 6509.43
4 3128.93 5786.16
5 2122.64 2358.49
[VERTICES]
;Link X-Coord Y-Coord
[LABELS]
;X-Coord Y-Coord Label & Anchor Node
[BACKDROP]
DIMENSIONS 0.00 0.00 10000.00 10000.00
UNITS None
FILE
OFFSET 0.00 0.00
[END]
-213
View File
@@ -1,213 +0,0 @@
[TITLE]
[JUNCTIONS]
;ID Elev Demand Pattern
N23 0 0 ;
N1 18 5 ;
N2 18 10 ;
N3 14 0 ;
N4 12 5 ;
N5 14 30 ;
N24 0 0 ;
N25 0 0 ;
N14 20 5 ;
N13 23 0 ;
N16 10 0 ;
N17 7 0 ;
N19 10 5 ;
N20 7 0 ;
N21 10 0 ;
N22 15 20 ;
N18 8 5 ;
N6 15 10 ;
N7 14.5 0 ;
N8 14 20 ;
N9 14 0 ;
N10 15 5 ;
N11 12 10 ;
N12 15 0 ;
N15 8 20 ;
[RESERVOIRS]
;ID Head Pattern
[TANKS]
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
1 0 54.66 54.5 56 1000000 0 ;
2 0 54.60 54.5 55.5 1000000 0 ;
3 0 54.50 54 55.5 1000000 0 ;
[PIPES]
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
P1 N23 N1 606 457 110 0 Open ;
P9 N1 N2 1930 457 110 0 Open ;
P10 N2 N3 5150 305 10 0 Open ;
P30 N3 N4 326 0.152 100 0 Open ;
P31 N4 N5 844 229 110 0 Open ;
P35 N5 N22 1408 152 100 0 Open ;
P36 N5 N7 500 381 110 0 Open ;
P34 N7 N6 615 381 110 0 Open ;
P32 N6 N3 1274 152 100 0 Open ;
P27 N6 N8 743 381 110 0 Open ;
P26 N8 N9 443 229 90 0 Open ;
P37 N9 N6 300 229 90 0 Open ;
P25 N8 N10 249 305 105 0 Open ;
P5 N24 N10 3383 305 100 0 Open ;
P2 N23 N24 454 457 110 0 Open ;
P3 N24 N14 2782 229 105 0 Open ;
P4 N14 N25 304 381 135 0 Open ;
P6 N24 N13 1767 475 110 0 Open ;
P7 N13 N14 1014 381 135 0 Open ;
P23 N10 N11 542 229 90 0 Open ;
P22 N11 N12 777 229 90 0 Open ;
P24 N8 N12 1600 457 110 0 Open ;
P8 N25 N16 1014 381 6 0 Open ;
P13 N16 N17 822 305 140 0 Open ;
P16 N17 N19 1072 229 90 0 Open ;
P17 N19 N20 864 152 90 0 Open ;
P18 N20 N21 711 152 90 0 Open ;
P14 N17 N18 411 152 100 0 Open ;
P15 N20 N18 701 229 110 0 Open ;
P20 N15 N22 2334 152 100 0 Open ;
P19 N15 N21 832 152 90 0 Open ;
P12 N15 N16 914 229 125 0 Open ;
0 1 N23 1 1000 110 0 Open ;
16 2 N24 1 1000 100 0 Open ;
20 3 N25 1 1000 100 0 Open ;
P11 N13 N12 762 457 110 0 Open ;
P21 N12 N15 1996 0.229 95 0 Open ;
P28 N8 N22 931 229 125 0 Open ;
P29 N21 N22 2689 152 100 0 Open ;
P33 N5 N6 1115 229 90 0 Open ;
[PUMPS]
;ID Node1 Node2 Parameters
[VALVES]
;ID Node1 Node2 Diameter Type Setting MinorLoss
[TAGS]
[DEMANDS]
;Junction Demand Pattern Category
[STATUS]
;ID Status/Setting
[PATTERNS]
;ID Multipliers
[CURVES]
;ID X-Value Y-Value
[CONTROLS]
[RULES]
[ENERGY]
Global Efficiency 75
Global Price 0
Demand Charge 0
[EMITTERS]
;Junction Coefficient
[QUALITY]
;Node InitQual
[SOURCES]
;Node Type Quality Pattern
[REACTIONS]
;Type Pipe/Tank Coefficient
[REACTIONS]
Order Bulk 1
Order Tank 1
Order Wall 1
Global Bulk 0
Global Wall 0
Limiting Potential 0
Roughness Correlation 0
[MIXING]
;Tank Model
[TIMES]
Duration 0
Hydraulic Timestep 1:00
Quality Timestep 0:05
Pattern Timestep 1:00
Pattern Start 0:00
Report Timestep 1:00
Report Start 0:00
Start ClockTime 12 am
Statistic None
[REPORT]
Status No
Summary No
Page 0
[OPTIONS]
Units LPS
Headloss H-W
Specific Gravity 1
Viscosity 1
Trials 40
Accuracy 0.001
Unbalanced Continue 10
Pattern 1
Demand Multiplier 1.0
Emitter Exponent 0.5
Quality None mg/L
Diffusivity 1
Tolerance 0.01
[COORDINATES]
;Node X-Coord Y-Coord
N23 2146.34 8439.02
N1 3268.29 8471.54
N2 4585.37 8455.28
N3 6081.30 8422.76
N4 7121.95 8504.07
N5 8260.16 8520.33
N24 2048.78 6536.59
N25 1918.70 3821.14
N14 2048.78 4796.75
N13 2845.53 5235.77
N16 3154.47 3739.84
N17 4455.28 3804.88
N19 5560.98 3837.40
N20 6601.63 3788.62
N21 7804.88 3788.62
N22 9203.25 3788.62
N18 6162.60 3317.07
N6 6845.53 7268.29
N7 7918.70 7235.77
N8 6357.72 6552.85
N9 6975.61 6552.85
N10 4065.04 6439.02
N11 4048.78 5723.58
N12 5056.91 5040.65
N15 5073.17 4552.85
1 1674.80 8520.33
2 1170.73 6536.59
3 1170.73 4016.26
[VERTICES]
;Link X-Coord Y-Coord
16 1170.73 6308.94
[LABELS]
;X-Coord Y-Coord Label & Anchor Node
[BACKDROP]
DIMENSIONS 0.00 0.00 10000.00 10000.00
UNITS None
FILE
OFFSET 0.00 0.00
[END]
-14197
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-178
View File
@@ -1,178 +0,0 @@
[TITLE]
EPANET Example Network 1
A simple example of modeling chlorine decay. Both bulk and
wall reactions are included.
[JUNCTIONS]
;ID Elev Demand Pattern
10 710 0 ;
11 710 150 ;
12 700 150 ;
13 695 100 ;
21 700 150 ;
22 695 200 ;
23 690 150 ;
31 700 100 ;
32 710 100 ;
[RESERVOIRS]
;ID Head Pattern
9 800 ;
[TANKS]
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
2 850 120 100 150 50.5 0 ;
[PIPES]
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
10 10 11 10530 18 100 0 Open ;
11 11 12 5280 14 100 0 Open ;
12 12 13 5280 10 100 0 Open ;
21 21 22 5280 10 100 0 Open ;
22 22 23 5280 12 100 0 Open ;
31 31 32 5280 6 100 0 Open ;
110 2 12 200 18 100 0 Open ;
111 11 21 5280 10 100 0 Open ;
112 12 22 5280 12 100 0 Open ;
113 13 23 5280 8 100 0 Open ;
121 21 31 5280 8 100 0 Open ;
122 22 32 5280 6 100 0 Open ;
[PUMPS]
;ID Node1 Node2 Parameters
9 9 10 HEAD 1 ;
[VALVES]
;ID Node1 Node2 Diameter Type Setting MinorLoss
[TAGS]
[DEMANDS]
;Junction Demand Pattern Category
[STATUS]
;ID Status/Setting
[PATTERNS]
;ID Multipliers
;Demand Pattern
1 1.0 1.2 1.4 1.6 1.4 1.2
1 1.0 0.8 0.6 0.4 0.6 0.8
[CURVES]
;ID X-Value Y-Value
;PUMP: Pump Curve for Pump 9
1 1500 250
[CONTROLS]
LINK 9 OPEN IF NODE 2 BELOW 110
LINK 9 CLOSED IF NODE 2 ABOVE 140
[RULES]
[ENERGY]
Global Efficiency 75
Global Price 0.0
Demand Charge 0.0
[EMITTERS]
;Junction Coefficient
[QUALITY]
;Node InitQual
10 0.5
11 0.5
12 0.5
13 0.5
21 0.5
22 0.5
23 0.5
31 0.5
32 0.5
9 1.0
2 1.0
[SOURCES]
;Node Type Quality Pattern
[REACTIONS]
;Type Pipe/Tank Coefficient
[REACTIONS]
Order Bulk 1
Order Tank 1
Order Wall 1
Global Bulk -.5
Global Wall -1
Limiting Potential 0.0
Roughness Correlation 0.0
[MIXING]
;Tank Model
[TIMES]
Duration 24:00
Hydraulic Timestep 1:00
Quality Timestep 0:05
Pattern Timestep 2:00
Pattern Start 0:00
Report Timestep 1:00
Report Start 0:00
Start ClockTime 12 am
Statistic None
[REPORT]
Status Yes
Summary No
Page 0
[OPTIONS]
Units GPM
Headloss H-W
Specific Gravity 1.0
Viscosity 1.0
Trials 40
Accuracy 0.001
CHECKFREQ 2
MAXCHECK 10
DAMPLIMIT 0
Unbalanced Continue 10
Pattern 1
Demand Multiplier 1.0
Emitter Exponent 0.5
Quality Chlorine mg/L
Diffusivity 1.0
Tolerance 0.01
[COORDINATES]
;Node X-Coord Y-Coord
10 20.00 70.00
11 30.00 70.00
12 50.00 70.00
13 70.00 70.00
21 30.00 40.00
22 50.00 40.00
23 70.00 40.00
31 30.00 10.00
32 50.00 10.00
9 10.00 70.00
2 50.00 90.00
[VERTICES]
;Link X-Coord Y-Coord
[LABELS]
;X-Coord Y-Coord Label & Anchor Node
6.99 73.63 "Source"
13.48 68.13 "Pump"
43.85 91.21 "Tank"
[BACKDROP]
DIMENSIONS 7.00 6.00 73.00 94.00
UNITS None
FILE
OFFSET 0.00 0.00
[END]
-309
View File
@@ -1,309 +0,0 @@
[TITLE]
EPANET Example Network 2
Example of modeling a 55-hour fluoride tracer study.
Measured fluoride data is contained in the file Net2-FL.dat
and should be registered with the project to produce a
Calibration Report (select Calibration Data from the Project
menu).
[JUNCTIONS]
;ID Elev Demand Pattern
1 50 -694.4 2 ;
2 100 8 ;
3 60 14 ;
4 60 8 ;
5 100 8 ;
6 125 5 ;
7 160 4 ;
8 110 9 ;
9 180 14 ;
10 130 5 ;
11 185 34.78 ;
12 210 16 ;
13 210 2 ;
14 200 2 ;
15 190 2 ;
16 150 20 ;
17 180 20 ;
18 100 20 ;
19 150 5 ;
20 170 19 ;
21 150 16 ;
22 200 10 ;
23 230 8 ;
24 190 11 ;
25 230 6 ;
27 130 8 ;
28 110 0 ;
29 110 7 ;
30 130 3 ;
31 190 17 ;
32 110 17 ;
33 180 1.5 ;
34 190 1.5 ;
35 110 0 ;
36 110 1 ;
[RESERVOIRS]
;ID Head Pattern
[TANKS]
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
26 235 56.7 50 70 50 0 ;
[PIPES]
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
1 1 2 2400 12 100 0 Open ;
2 2 5 800 12 100 0 Open ;
3 2 3 1300 8 100 0 Open ;
4 3 4 1200 8 100 0 Open ;
5 4 5 1000 12 100 0 Open ;
6 5 6 1200 12 100 0 Open ;
7 6 7 2700 12 100 0 Open ;
8 7 8 1200 12 140 0 Open ;
9 7 9 400 12 100 0 Open ;
10 8 10 1000 8 140 0 Open ;
11 9 11 700 12 100 0 Open ;
12 11 12 1900 12 100 0 Open ;
13 12 13 600 12 100 0 Open ;
14 13 14 400 12 100 0 Open ;
15 14 15 300 12 100 0 Open ;
16 13 16 1500 8 100 0 Open ;
17 15 17 1500 8 100 0 Open ;
18 16 17 600 8 100 0 Open ;
19 17 18 700 12 100 0 Open ;
20 18 32 350 12 100 0 Open ;
21 16 19 1400 8 100 0 Open ;
22 14 20 1100 12 100 0 Open ;
23 20 21 1300 8 100 0 Open ;
24 21 22 1300 8 100 0 Open ;
25 20 22 1300 8 100 0 Open ;
26 24 23 600 12 100 0 Open ;
27 15 24 250 12 100 0 Open ;
28 23 25 300 12 100 0 Open ;
29 25 26 200 12 100 0 Open ;
30 25 31 600 12 100 0 Open ;
31 31 27 400 8 100 0 Open ;
32 27 29 400 8 100 0 Open ;
34 29 28 700 8 100 0 Open ;
35 22 33 1000 8 100 0 Open ;
36 33 34 400 8 100 0 Open ;
37 32 19 500 8 100 0 Open ;
38 29 35 500 8 100 0 Open ;
39 35 30 1000 8 100 0 Open ;
40 28 35 700 8 100 0 Open ;
41 28 36 300 8 100 0 Open ;
[PUMPS]
;ID Node1 Node2 Parameters
[VALVES]
;ID Node1 Node2 Diameter Type Setting MinorLoss
[TAGS]
[DEMANDS]
;Junction Demand Pattern Category
[STATUS]
;ID Status/Setting
[PATTERNS]
;ID Multipliers
;Demand Pattern
1 1.26 1.04 .97 .97 .89 1.19
1 1.28 .67 .67 1.34 2.46 .97
1 .92 .68 1.43 .61 .31 .78
1 .37 .67 1.26 1.56 1.19 1.26
1 .6 1.1 1.03 .73 .88 1.06
1 .99 1.72 1.12 1.34 1.12 .97
1 1.04 1.15 .91 .61 .68 .46
1 .51 .74 1.12 1.34 1.26 .97
1 .82 1.37 1.03 .81 .88 .81
1 .81
;Pump Station Outflow Pattern
2 .96 .96 .96 .96 .96 .96
2 .62 0 0 0 0 0
2 .8 1 1 1 1 .15
2 0 0 0 0 0 0
2 .55 .92 .92 .92 .92 .9
2 .9 .45 0 0 0 0
2 0 .7 1 1 1 1
2 .2 0 0 0 0 0
2 0 .74 .92 .92 .92 .92
2 .92
;Pump Station Fluoride Pattern
3 .98 1.02 1.05 .99 .64 .46
3 .35 .35 .35 .35 .35 .35
3 .17 .17 .13 .13 .13 .15
3 .15 .15 .15 .15 .15 .15
3 .15 .12 .1 .08 .11 .09
3 .09 .08 .08 .08 .08 .08
3 .08 .09 .07 .07 .09 .09
3 .09 .09 .09 .09 .09 .09
3 .09 .08 .35 .72 .82 .92
3 1
[CURVES]
;ID X-Value Y-Value
[CONTROLS]
[RULES]
[ENERGY]
Global Efficiency 75
Global Price 0.0
Demand Charge 0.0
[EMITTERS]
;Junction Coefficient
[QUALITY]
;Node InitQual
1 1.0
2 1.0
3 1.0
4 1.0
5 1.0
6 1.0
7 1.0
8 1.0
9 1.0
10 1.0
11 1.0
12 1.0
13 1.0
14 1.0
15 1.0
16 1.0
17 1.0
18 1.0
19 1.0
20 1.0
21 1.0
22 1.0
23 1.0
24 1.0
25 1.0
27 1.0
28 1.0
29 1.0
30 1.0
31 1.0
32 1.0
33 1.0
34 1.0
35 1.0
36 1.0
26 1.0
[SOURCES]
;Node Type Quality Pattern
1 CONCEN 1.0 3
[REACTIONS]
;Type Pipe/Tank Coefficient
[REACTIONS]
Order Bulk 1
Order Tank 1
Order Wall 1
Global Bulk 0.0
Global Wall 0.0
Limiting Potential 0.0
Roughness Correlation 0.0
[MIXING]
;Tank Model
[TIMES]
Duration 55:00
Hydraulic Timestep 1:00
Quality Timestep 0:05
Pattern Timestep 1:00
Pattern Start 0:00
Report Timestep 1:00
Report Start 0:00
Start ClockTime 8 am
Statistic None
[REPORT]
Status No
Summary No
Page 0
[OPTIONS]
Units GPM
Headloss H-W
Specific Gravity 1.0
Viscosity 1.0
Trials 40
Accuracy 0.001
CHECKFREQ 2
MAXCHECK 10
DAMPLIMIT 0
Unbalanced Continue 10
Pattern 1
Demand Multiplier 1.0
Emitter Exponent 0.5
Quality Fluoride mg/L
Diffusivity 1.0
Tolerance 0.01
[COORDINATES]
;Node X-Coord Y-Coord
1 21.00 4.00
2 19.00 20.00
3 11.00 21.00
4 14.00 28.00
5 19.00 25.00
6 28.00 23.00
7 36.00 39.00
8 38.00 30.00
9 36.00 42.00
10 37.00 23.00
11 37.00 49.00
12 39.00 60.00
13 38.00 64.00
14 38.00 66.00
15 37.00 69.00
16 27.00 65.00
17 27.00 69.00
18 23.00 68.00
19 21.00 59.00
20 45.00 68.00
21 51.00 62.00
22 54.00 69.00
23 35.00 74.00
24 37.00 71.00
25 35.00 76.00
27 39.00 87.00
28 49.00 85.00
29 42.00 86.00
30 47.00 80.00
31 37.00 80.00
32 23.00 64.00
33 56.00 73.00
34 56.00 77.00
35 43.00 81.00
36 53.00 87.00
26 33.00 76.00
[VERTICES]
;Link X-Coord Y-Coord
[LABELS]
;X-Coord Y-Coord Label & Anchor Node
24.00 7.00 "Pump"
24.00 4.00 "Station"
26.76 77.42 "Tank"
[BACKDROP]
DIMENSIONS 8.75 -0.15 58.25 91.15
UNITS None
FILE
OFFSET 0.00 0.00
[END]
-147940
View File
File diff suppressed because it is too large Load Diff
-60024
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
-7878
View File
File diff suppressed because it is too large Load Diff
-252
View File
@@ -1,252 +0,0 @@
[TITLE]
[JUNCTIONS]
;ID Elev Demand Pattern
2 5.80 19.49 1 ;
3 5.80 19.49 1 ;
4 5.80 19.50 1 ;
5 5.80 19.49 1 ;
6 5.80 19.49 1 ;
7 5.80 19.50 1 ;
8 5.80 19.49 1 ;
9 5.80 19.50 1 ;
10 5.80 19.49 1 ;
11 5.80 19.49 1 ;
12 5.80 19.50 1 ;
13 5.80 19.49 1 ;
15 5.80 19.49 1 ;
16 5.80 19.50 1 ;
17 5.80 19.49 1 ;
18 5.80 19.49 1 ;
19 5.80 19.50 1 ;
20 5.80 19.49 1 ;
21 5.80 19.49 1 ;
22 0 136.45 1 ;
23 0 0 1 ;
24 0 0 1 ;
[RESERVOIRS]
;ID Head Pattern
1 3.19 ;
14 7.40 ;
[TANKS]
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
[PIPES]
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
5 2 6 1976 315 120 0 Open ;
6 6 7 1300 250 120 0 Open ;
7 7 8 1051 160 120 0 Open ;
8 3 9 6210 250 120 0 Open ;
9 5 10 2173 200 120 0 Open ;
10 4 11 2984 500 120 0 Open ;
11 11 12 2100 500 120 0 Open ;
12 11 13 2199 250 120 0 Open ;
14 15 16 3100 315 120 0 Open ;
15 15 17 6485 400 120 0 Open ;
16 16 18 2688 200 120 0 Open ;
17 17 19 2306 200 120 0 Open ;
18 17 20 4161 250 120 0 Open ;
19 20 21 2841 200 120 0 Open ;
20 12 22 1 1000 120 0 Open ;
1 23 2 3024 355 100 0 Open ;
2 23 3 1400 400 120 0 Open ;
3 23 4 3149 500 120 0 Open ;
4 23 5 5400 250 120 0 Open ;
13 24 15 3554 400 120 0 Open ;
[PUMPS]
;ID Node1 Node2 Parameters
23 1 23 HEAD 1 ;
22 1 23 HEAD 1 ;
21 1 23 HEAD 1 ;
24 14 24 HEAD 1 ;
25 14 24 HEAD 1 ;
[VALVES]
;ID Node1 Node2 Diameter Type Setting MinorLoss
[TAGS]
[DEMANDS]
;Junction Demand Pattern Category
[STATUS]
;ID Status/Setting
[PATTERNS]
;ID Multipliers
;
1 1
[CURVES]
;ID X-Value Y-Value
;Ë®±Ã:
1 0 56.99
1 33.33 56.74
1 50 56.49
1 66.67 55.74
1 83.33 54.24
1 100 51.98
1 116.67 48.72
1 133.33 43.95
1 150 38.44
[CONTROLS]
[RULES]
[ENERGY]
Global Efficiency 75
Global Price 0
Demand Charge 0
[EMITTERS]
;Junction Coefficient
[QUALITY]
;Node InitQual
1 0.3
14 0.3
[SOURCES]
;Node Type Quality Pattern
[REACTIONS]
;Type Pipe/Tank Coefficient
[REACTIONS]
Order Bulk 1
Order Tank 1
Order Wall 1
Global Bulk -1
Global Wall -0.5
Limiting Potential 0
Roughness Correlation 0
[MIXING]
;Tank Model
[TIMES]
Duration 48:00
Hydraulic Timestep 0:05
Quality Timestep 0:05
Pattern Timestep 0:05
Pattern Start 0:00
Report Timestep 0:05
Report Start 0:00
Start ClockTime 12 am
Statistic None
[REPORT]
Status No
Summary No
Page 0
[OPTIONS]
Units LPS
Headloss H-W
Specific Gravity 1
Viscosity 1
Trials 100
Accuracy 0.01
CHECKFREQ 2
MAXCHECK 10
DAMPLIMIT 0
Unbalanced Continue 10
Pattern 1
Demand Multiplier 1.0
Emitter Exponent 0.5
Quality »¯Ñ§³É·Ö mg/L
Diffusivity 1
Tolerance 0.01
[COORDINATES]
;Node X-Coord Y-Coord
2 2054.14 6695.86
3 2249.20 7663.22
4 3523.09 7328.82
5 3136.94 9211.78
6 1409.24 6787.42
7 1122.61 6819.27
8 800.16 6950.64
9 1357.48 8809.71
10 3531.05 9996.02
11 3654.46 8308.12
12 4353.11 8268.31
13 3710.19 9060.51
15 5467.75 8264.33
16 5467.75 9327.23
17 6769.51 9243.63
18 5220.94 9765.13
19 6359.47 9390.92
20 8055.33 8853.50
21 8970.94 8901.27
22 4353.60 8338.97
23 2590.07 7540.80
24 4405.35 8378.78
1 2900.58 7676.15
14 4309.81 8420.58
[VERTICES]
;Link X-Coord Y-Coord
5 1970.54 6707.80
5 1791.40 6719.75
6 1373.41 6689.89
6 1242.04 6769.51
8 1817.28 7750.80
8 1875.00 8134.95
8 1968.55 8190.68
8 1849.12 8529.06
8 1833.20 8833.60
10 3642.52 7852.31
14 5481.69 8612.66
15 6072.85 8238.46
15 6076.83 8349.92
15 6106.69 8481.29
15 6156.45 8610.67
15 6385.35 8616.64
15 6357.48 8865.45
15 6666.00 8887.34
15 6753.58 9203.82
16 5467.75 9460.59
16 5254.78 9486.46
16 5095.54 9488.46
16 5127.39 9767.12
17 6803.34 9317.28
17 6596.34 9402.87
17 6486.86 9464.57
17 6445.06 9355.10
18 7131.77 9080.41
18 7689.09 8875.40
19 8292.20 8837.58
19 8682.32 8909.24
19 8769.90 8895.30
2 2502.49 7568.67
2 2243.73 7600.52
3 2781.15 7461.19
3 2880.67 7433.32
4 2613.95 7636.35
4 2757.27 7839.37
4 2785.13 8508.16
13 5010.45 8384.75
13 5040.31 8289.21
13 5229.40 8271.30
23 2789.11 7711.98
21 2900.58 7564.69
24 4345.64 8378.78
25 4363.55 8410.63
[LABELS]
;X-Coord Y-Coord Label & Anchor Node
[BACKDROP]
DIMENSIONS 0.00 0.00 10000.00 10000.00
UNITS None
FILE
OFFSET 0.00 0.00
[END]
File diff suppressed because it is too large Load Diff
-109
View File
@@ -1,109 +0,0 @@
[TITLE]
[JUNCTIONS]
[RESERVOIRS]
[TANKS]
[PIPES]
[PUMPS]
[VALVES]
[DEMANDS]
[EMITTERS]
[STATUS]
[PATTERNS]
[CURVES]
[CONTROLS]
[ENERGY]
GLOBAL EFFICIENCY 0.7500
GLOBAL PRICE 0.0000
DEMAND CHARGE 0.0000
[QUALITY]
[SOURCES]
[MIXING]
-38821
View File
File diff suppressed because it is too large Load Diff
-37670
View File
File diff suppressed because it is too large Load Diff
-40290
View File
File diff suppressed because it is too large Load Diff
-73400
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-41673
View File
File diff suppressed because it is too large Load Diff
-6383
View File
File diff suppressed because it is too large Load Diff
-1645
View File
File diff suppressed because it is too large Load Diff
-486141
View File
File diff suppressed because it is too large Load Diff
-40289
View File
File diff suppressed because it is too large Load Diff
-30972
View File
File diff suppressed because it is too large Load Diff
-481
View File
@@ -1,481 +0,0 @@
[TITLE]
EPANET Example Network 3
Example showing how the percent of Lake water in a dual-source
system changes over time.
[JUNCTIONS]
;ID Elev Demand Pattern
10 147 0 ;
15 32 1 3 ;
20 129 0 ;
35 12.5 1 4 ;
40 131.9 0 ;
50 116.5 0 ;
60 0 0 ;
601 0 0 ;
61 0 0 ;
101 42 189.95 ;
103 43 133.2 ;
105 28.5 135.37 ;
107 22 54.64 ;
109 20.3 231.4 ;
111 10 141.94 ;
113 2 20.01 ;
115 14 52.1 ;
117 13.6 117.71 ;
119 2 176.13 ;
120 0 0 ;
121 -2 41.63 ;
123 11 1 2 ;
125 11 45.6 ;
127 56 17.66 ;
129 51 0 ;
131 6 42.75 ;
139 31 5.89 ;
141 4 9.85 ;
143 -4.5 6.2 ;
145 1 27.63 ;
147 18.5 8.55 ;
149 16 27.07 ;
151 33.5 144.48 ;
153 66.2 44.17 ;
157 13.1 51.79 ;
159 6 41.32 ;
161 4 15.8 ;
163 5 9.42 ;
164 5 0 ;
166 -2 2.6 ;
167 -5 14.56 ;
169 -5 0 ;
171 -4 39.34 ;
173 -4 0 ;
177 8 58.17 ;
179 8 0 ;
181 8 0 ;
183 11 0 ;
184 16 0 ;
185 16 25.65 ;
187 12.5 0 ;
189 4 107.92 ;
191 25 81.9 ;
193 18 71.31 ;
195 15.5 0 ;
197 23 17.04 ;
199 -2 119.32 ;
201 0.1 44.61 ;
203 2 1 5 ;
204 21 0 ;
205 21 65.36 ;
206 1 0 ;
207 9 69.39 ;
208 16 0 ;
209 -2 0.87 ;
211 7 8.67 ;
213 7 13.94 ;
215 7 92.19 ;
217 6 24.22 ;
219 4 41.32 ;
225 8 22.8 ;
229 10.5 64.18 ;
231 5 16.48 ;
237 14 15.61 ;
239 13 44.61 ;
241 13 0 ;
243 14 4.34 ;
247 18 70.38 ;
249 18 0 ;
251 30 24.16 ;
253 36 54.52 ;
255 27 40.39 ;
257 17 0 ;
259 25 0 ;
261 0 0 ;
263 0 0 ;
265 0 0 ;
267 21 0 ;
269 0 0 ;
271 6 0 ;
273 8 0 ;
275 10 0 ;
[RESERVOIRS]
;ID Head Pattern
River 220.0 ;
Lake 167.0 ;
[TANKS]
;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
1 131.9 13.1 .1 32.1 85 0 ;
2 116.5 23.5 6.5 40.3 50 0 ;
3 129.0 29.0 4.0 35.5 164 0 ;
[PIPES]
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
20 3 20 99 99 199 0 Open ;
40 1 40 99 99 199 0 Open ;
50 2 50 99 99 199 0 Open ;
60 River 60 1231 24 140 0 Open ;
101 10 101 14200 18 110 0 Open ;
103 101 103 1350 16 130 0 Open ;
105 101 105 2540 12 130 0 Open ;
107 105 107 1470 12 130 0 Open ;
109 103 109 3940 16 130 0 Open ;
111 109 111 2000 12 130 0 Open ;
112 115 111 1160 12 130 0 Open ;
113 111 113 1680 12 130 0 Open ;
114 115 113 2000 8 130 0 Open ;
115 107 115 1950 8 130 0 Open ;
116 113 193 1660 12 130 0 Open ;
117 263 105 2725 12 130 0 Open ;
119 115 117 2180 12 130 0 Open ;
120 119 120 730 12 130 0 Open ;
121 120 117 1870 12 130 0 Open ;
122 121 120 2050 8 130 0 Open ;
123 121 119 2000 30 141 0 Open ;
125 123 121 1500 30 141 0 Open ;
129 121 125 930 24 130 0 Open ;
131 125 127 3240 24 130 0 Open ;
133 20 127 785 20 130 0 Open ;
135 127 129 900 24 130 0 Open ;
137 129 131 6480 16 130 0 Open ;
145 129 139 2750 8 130 0 Open ;
147 139 141 2050 8 130 0 Open ;
149 143 141 1400 8 130 0 Open ;
151 15 143 1650 8 130 0 Open ;
153 145 141 3510 12 130 0 Open ;
155 147 145 2200 12 130 0 Open ;
159 147 149 880 12 130 0 Open ;
161 149 151 1020 8 130 0 Open ;
163 151 153 1170 12 130 0 Open ;
169 125 153 4560 8 130 0 Open ;
171 119 151 3460 12 130 0 Open ;
173 119 157 2080 30 141 0 Open ;
175 157 159 2910 30 141 0 Open ;
177 159 161 2000 30 141 0 Open ;
179 161 163 430 30 141 0 Open ;
180 163 164 150 14 130 0 Open ;
181 164 166 490 14 130 0 Open ;
183 265 169 590 30 141 0 Open ;
185 167 169 60 8 130 0 Open ;
186 187 204 99.9 8 130 0 Open ;
187 169 171 1270 30 141 0 Open ;
189 171 173 50 30 141 0 Open ;
191 271 171 760 24 130 0 Open ;
193 35 181 30 24 130 0 Open ;
195 181 177 30 12 130 0 Open ;
197 177 179 30 12 130 0 Open ;
199 179 183 210 12 130 0 Open ;
201 40 179 1190 12 130 0 Open ;
202 185 184 99.9 8 130 0 Open ;
203 183 185 510 8 130 0 Open ;
204 184 205 4530. 12 130 0 Open ;
205 204 185 1325. 12 130 0 Open ;
207 189 183 1350 12 130 0 Open ;
209 189 187 500 8 130 0 Open ;
211 169 269 646 12 130 0 Open ;
213 191 187 2560 12 130 0 Open ;
215 267 189 1230 12 130 0 Open ;
217 191 193 520 12 130 0 Open ;
219 193 195 360 12 130 0 Open ;
221 161 195 2300 8 130 0 Open ;
223 197 191 1150 12 130 0 Open ;
225 111 197 2790 12 130 0 Open ;
229 173 199 4000 24 141 0 Open ;
231 199 201 630 24 141 0 Open ;
233 201 203 120 24 130 0 Open ;
235 199 273 725 12 130 0 Open ;
237 205 207 1200 12 130 0 Open ;
238 207 206 450 12 130 0 Open ;
239 275 207 1430 12 130 0 Open ;
240 206 208 510 12 130 0 Open ;
241 208 209 885 12 130 0 Open ;
243 209 211 1210 16 130 0 Open ;
245 211 213 990 16 130 0 Open ;
247 213 215 4285 16 130 0 Open ;
249 215 217 1660 16 130 0 Open ;
251 217 219 2050 14 130 0 Open ;
257 217 225 1560 12 130 0 Open ;
261 213 229 2200 8 130 0 Open ;
263 229 231 1960 12 130 0 Open ;
269 211 237 2080 12 130 0 Open ;
271 237 229 790 8 130 0 Open ;
273 237 239 510 12 130 0 Open ;
275 239 241 35 12 130 0 Open ;
277 241 243 2200 12 130 0 Open ;
281 241 247 445 10 130 0 Open ;
283 239 249 430 12 130 0 Open ;
285 247 249 10 12 130 0 Open ;
287 247 255 1390 10 130 0 Open ;
289 50 255 925 10 130 0 Open ;
291 255 253 1100 10 130 0 Open ;
293 255 251 1100 8 130 0 Open ;
295 249 251 1450 12 130 0 Open ;
297 120 257 645 8 130 0 Open ;
299 257 259 350 8 130 0 Open ;
301 259 263 1400 8 130 0 Open ;
303 257 261 1400 8 130 0 Open ;
305 117 261 645 12 130 0 Open ;
307 261 263 350 12 130 0 Open ;
309 265 267 1580 8 130 0 Open ;
311 193 267 1170 12 130 0 Open ;
313 269 189 646 12 130 0 Open ;
315 181 271 260 24 130 0 Open ;
317 273 275 2230 8 130 0 Open ;
319 273 205 645 12 130 0 Open ;
321 163 265 1200 30 141 0 Open ;
323 201 275 300 12 130 0 Open ;
325 269 271 1290 8 130 0 Open ;
329 61 123 45500 30 140 0 Open ;
330 60 601 1 30 140 0 Closed ;
333 601 61 1 30 140 0 Open ;
[PUMPS]
;ID Node1 Node2 Parameters
10 Lake 10 HEAD 1 ;
335 60 61 HEAD 2 ;
[VALVES]
;ID Node1 Node2 Diameter Type Setting MinorLoss
[TAGS]
[DEMANDS]
;Junction Demand Pattern Category
[STATUS]
;ID Status/Setting
10 Closed
[PATTERNS]
;ID Multipliers
;General Default Demand Pattern
1 1.34 1.94 1.46 1.44 .76 .92
1 .85 1.07 .96 1.1 1.08 1.19
1 1.16 1.08 .96 .83 .79 .74
1 .64 .64 .85 .96 1.24 1.67
;Demand Pattern for Node 123
2 0 0 0 0 0 1219
2 0 0 0 1866 1836 1818
2 1818 1822 1822 1817 1824 1816
2 1833 1817 1830 1814 1840 1859
;Demand Pattern for Node 15
3 620 620 620 620 620 360
3 360 0 0 0 0 360
3 360 360 360 360 0 0
3 0 0 0 0 360 360
;Demand Pattern for Node 35
4 1637 1706 1719 1719 1791 1819
4 1777 1842 1815 1825 1856 1801
4 1819 1733 1664 1620 1613 1620
4 1616 1647 1627 1627 1671 1668
;Demand Pattern for Node 203
5 4439 4531 4511 4582 4531 4582
5 4572 4613 4643 4643 4592 4613
5 4531 4521 4449 4439 4449 4460
5 4439 4419 4368 4399 4470 4480
[CURVES]
;ID X-Value Y-Value
;PUMP: Pump Curve for Pump 10 (Lake Source)
1 0 104.
1 2000. 92.
1 4000. 63.
;PUMP: Pump Curve for Pump 335 (River Source)
2 0 200.
2 8000. 138.
2 14000. 86.
[CONTROLS]
;Lake source operates only part of the day
Link 10 OPEN AT TIME 1
Link 10 CLOSED AT TIME 15
;Pump 335 controlled by level in Tank 1
;When pump is closed, bypass pipe is opened
Link 335 OPEN IF Node 1 BELOW 17.1
Link 335 CLOSED IF Node 1 ABOVE 19.1
Link 330 CLOSED IF Node 1 BELOW 17.1
Link 330 OPEN IF Node 1 ABOVE 19.1
[RULES]
[ENERGY]
Global Efficiency 75
Global Price 0.0
Demand Charge 0.0
[EMITTERS]
;Junction Coefficient
[QUALITY]
;Node InitQual
[SOURCES]
;Node Type Quality Pattern
[REACTIONS]
;Type Pipe/Tank Coefficient
[REACTIONS]
Order Bulk 1
Order Tank 1
Order Wall 1
Global Bulk 0.0
Global Wall 0.0
Limiting Potential 0.0
Roughness Correlation 0.0
[MIXING]
;Tank Model
[TIMES]
Duration 24:00
Hydraulic Timestep 1:00
Quality Timestep 0:05
Pattern Timestep 1:00
Pattern Start 0:00
Report Timestep 1:00
Report Start 0:00
Start ClockTime 12 am
Statistic None
[REPORT]
Status Yes
Summary No
Page 0
[OPTIONS]
Units GPM
Headloss H-W
Specific Gravity 1.0
Viscosity 1.0
Trials 40
Accuracy 0.001
CHECKFREQ 2
MAXCHECK 10
DAMPLIMIT 0
Unbalanced Continue 10
Pattern 1
Demand Multiplier 1.0
Emitter Exponent 0.5
Quality Trace Lake
Diffusivity 1.0
Tolerance 0.01
[COORDINATES]
;Node X-Coord Y-Coord
10 9.00 27.85
15 38.68 23.76
20 29.44 26.91
35 25.46 10.52
40 27.02 9.81
50 33.01 3.01
60 23.90 29.94
601 23.00 29.49
61 23.71 29.03
101 13.81 22.94
103 12.96 21.31
105 16.97 21.28
107 18.45 20.46
109 17.64 18.92
111 20.21 17.53
113 22.04 16.61
115 20.98 19.18
117 21.69 21.28
119 23.70 22.76
120 22.08 23.10
121 23.54 25.50
123 23.37 27.31
125 24.59 25.64
127 29.29 26.40
129 30.32 26.39
131 37.89 29.55
139 33.28 24.54
141 35.68 23.08
143 37.47 21.97
145 33.02 19.29
147 30.24 20.38
149 29.62 20.74
151 28.29 21.39
153 28.13 22.63
157 24.85 20.16
159 23.12 17.50
161 25.10 15.28
163 25.39 14.98
164 25.98 15.14
166 26.48 15.13
167 25.88 12.98
169 25.68 12.74
171 26.65 11.80
173 26.87 11.59
177 26.00 10.50
179 25.71 10.40
181 25.72 10.74
183 25.45 10.18
184 25.15 9.52
185 25.01 9.67
187 23.64 11.04
189 24.15 11.37
191 22.10 14.07
193 22.88 14.35
195 23.18 14.72
197 20.97 15.18
199 29.42 8.44
201 30.89 8.57
203 31.14 8.89
204 23.80 10.90
205 29.20 6.46
206 31.66 6.64
207 31.00 6.61
208 32.54 6.81
209 33.76 6.59
211 34.20 5.54
213 35.26 6.16
215 39.95 8.73
217 42.11 8.67
219 44.86 9.32
225 43.53 7.38
229 36.16 3.49
231 38.38 2.54
237 35.37 3.08
239 35.76 2.31
241 35.87 2.11
243 37.04 0.00
247 35.02 2.05
249 35.02 1.81
251 34.15 1.10
253 32.17 1.88
255 33.51 2.45
257 21.17 23.32
259 20.80 23.40
261 20.79 21.45
263 20.32 21.57
265 25.39 13.60
267 23.38 12.95
269 25.03 12.14
271 25.97 11.00
273 29.16 7.38
275 31.07 8.29
River 24.15 31.06
Lake 8.00 27.53
1 27.46 9.84
2 32.99 3.45
3 29.41 27.27
[VERTICES]
;Link X-Coord Y-Coord
[LABELS]
;X-Coord Y-Coord Label & Anchor Node
8.00 29.42 "LAKE"
25.00 31.10 "RIVER"
[BACKDROP]
DIMENSIONS 6.16 -1.55 46.70 32.61
UNITS None
FILE
OFFSET 0.00 0.00
[END]
Binary file not shown.
BIN
View File
Binary file not shown.
-77766
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -43,7 +43,6 @@ httpx==0.28.1
httpx-sse==0.4.3
idna==3.10
importlib_metadata==8.7.1
influxdb-client==1.48.0
iniconfig==2.0.0
jaraco.classes==3.4.0
jaraco.context==6.1.0
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.
-138
View File
@@ -1,138 +0,0 @@
id,type,associated_element_id,associated_pattern,associated_pipe_flow_id,associated_source_outflow_id1,associated_source_outflow_id2,associated_source_outflow_id3,associated_source_outflow_id4,associated_source_outflow_id5,API_query_id,transmission_mode,transmission_frequency,reliability,X_coor,Y_coor
ZBBDJSCP000002,reservoir_liquid_level,ZBBDJSCP000002,HighPressure,,,,,,,2497,realtime,0:01:00,1,106.414403,29.83252977
R00003,reservoir_liquid_level,R00003,LowPressure,,,,,,,2571,realtime,0:01:00,1,106.414403,29.83252977
ZBBDTJSC000002,tank_liquid_level,ZBBDTJSC000002,,,,,,,,4780,realtime,0:01:00,1,106.377934,29.80097177
ZBBDTJSC000001,tank_liquid_level,ZBBDTJSC000001,,,,,,,,9774,realtime,0:01:00,1,106.414257,29.82031872
PU00000,fixed_pump,PU00000,1#,,,,,,,2747,realtime,0:01:00,1,106.414403,29.83252977
PU00001,fixed_pump,PU00001,2#,,,,,,,2776,realtime,0:01:00,1,106.414403,29.83252977
PU00002,fixed_pump,PU00002,3#,,,,,,,2730,realtime,0:01:00,1,106.414403,29.83252977
PU00003,fixed_pump,PU00003,4#,,,,,,,2787,realtime,0:01:00,1,106.414403,29.83252977
PU00004,variable_pump,PU00004,5#,,,,,,,2500,realtime,0:01:00,1,106.414403,29.83252977
PU00005,variable_pump,PU00005,6#,,,,,,,2502,realtime,0:01:00,1,106.414403,29.83252977
PU00006,variable_pump,PU00006,7#,,,,,,,2504,realtime,0:01:00,1,106.414403,29.83252977
ZBBGXSZW000377,source_outflow,ZBBGXSZW000377,DN900,,ZBBGXSZW000377,,,,,2498,realtime,0:01:00,1,106.4194993,29.83772834
P17021,source_outflow,P17021,DN500,,P17021,,,,,3854,realtime,0:01:00,1,106.4194939,29.83810336
P16504,source_outflow,P16504,DN1000,,P16504,,,,,3853,realtime,0:01:00,1,106.4195338,29.83781925
ZBBGXSZK001071,pipe_flow,ZBBGXSZK001071,BianDianZhan,,ZBBGXSZW000377,P17021,,,,9521,non_realtime,6:00:00,1,106.4003826,29.81743895
ZBBGXSZK001163,pipe_flow,ZBBGXSZK001163,BeiNanDaDao,,ZBBGXSZW000377,P17021,,,,9478,non_realtime,6:00:00,1,106.3994217,29.80947624
ZBBGXSZK001105,pipe_flow,ZBBGXSZK001105,TianShengLiJie,,ZBBGXSZW000377,P17021,,,,9506,non_realtime,6:00:00,1,106.4180443,29.81625954
P10755,pipe_flow,P10755,XueYuanXiaoQu,,ZBBGXSZW000377,P17021,,,,9497,non_realtime,6:00:00,1,106.4131703,29.81316079
ZBBGXSZK001128,pipe_flow,ZBBGXSZK001128,YunHuaLu,,ZBBGXSZW000377,P17021,,,,9480,non_realtime,6:00:00,1,106.3948247,29.80702128
P10839,pipe_flow,P10839,GaoJiaQiao,,ZBBGXSZW000377,P17021,,,,9507,non_realtime,6:00:00,1,106.4079379,29.82356299
ZBBGXSZK001079,pipe_flow,ZBBGXSZK001079,LuZuoFuLuXiaDuan,,ZBBGXSZW000377,P17021,,,,9487,non_realtime,6:00:00,1,106.3922472,29.80343211
ZBBGXSZK001096(L),pipe_flow,ZBBGXSZK001096(L),TianRunCheng,,ZBBGXSZW000377,P17021,,,,9485,non_realtime,6:00:00,1,106.3907546,29.80015062
P15959,pipe_flow,P15959,CaoJiaBa,,ZBBGXSZW000377,P17021,,,,9505,non_realtime,6:00:00,1,106.3664514,29.76674381
ZBBGXSZK001031,pipe_flow,ZBBGXSZK001031,PuLingChang,,ZBBGXSZW000377,P17021,,,,9481,non_realtime,6:00:00,1,106.3807941,29.75983691
P12544,pipe_flow,P12544,QiLongXiaoQu,,ZBBGXSZW000377,P17021,,,,9524,non_realtime,6:00:00,1,106.367557,29.76592301
ZBBGXTYK003616,pipe_flow,ZBBGXTYK003616,TuanXiao,,ZBBGXSZW000377,P17021,,,,9498,non_realtime,6:00:00,1,106.3741092,29.77647684
ZBBGXTYK003427,pipe_flow,ZBBGXTYK003427,ChengBeiCaiShiKou,,P16504,,,,,9488,non_realtime,6:00:00,1,106.4211904,29.8337277
ZBBGXSZK001775,pipe_flow,ZBBGXSZK001775,WenXingShe,,P16504,,,,,9482,non_realtime,6:00:00,1,106.4296384,29.83322552
ZBBGXTYK003392,pipe_flow,ZBBGXTYK003392,YueLiangTianBBGJCZ,,P16504,,,,,9510,non_realtime,6:00:00,1,106.4338386,29.82316156
ZBBGXSZK001166,pipe_flow,ZBBGXSZK001166,YueLiangTian,,P16504,,,,,9486,non_realtime,6:00:00,1,106.4324165,29.82465186
P13961,pipe_flow,P13961,YueLiangTian200,,P16504,,,,,9520,non_realtime,6:00:00,1,106.4256,29.8222
ZBBGXTYK003069,pipe_flow,ZBBGXTYK003069,ChengTaoChang,,P16504,,,,,9479,non_realtime,6:00:00,1,106.431,29.8153
ZBBGXTYK003355,pipe_flow,ZBBGXTYK003355,HuoCheZhan,,P16504,,,,,9518,non_realtime,6:00:00,1,106.4284178,29.80932951
ZBBGXSZW000335,pipe_flow,ZBBGXSZW000335,LiangKu,,P16504,,,,,9512,non_realtime,6:00:00,1,106.4241088,29.80023184
ZBBGXSZK001957,pipe_flow,ZBBGXSZK001957,QunXingLu,,P16504,,,,,9489,non_realtime,6:00:00,1,106.4302597,29.81089267
P05940,pipe_flow,P05940,TuanShanBaoZhongShiHua,,ZBBGXSZW000377,P17021,,,,9535,non_realtime,6:00:00,1,106.4168586,29.83510228
ZBBGXSZK002419,pipe_flow,ZBBGXSZK002419,XieMa,,ZBBGXSZW000377,P17021,,,,7423,non_realtime,6:00:00,1,106.3893687,29.79893615
P16512,pipe_flow,P16512,BeiWenQuanJiuHaoErQi,,ZBBGXSZW000377,P17021,,,,,non_realtime,6:00:00,1,106.4077965,29.82305305
GSD230117133902A0620C9E4A2F,pipe_flow,GSD230117133902A0620C9E4A2F,LaiYinHuSiQi,,ZBBGXSZW000377,P17021,,,,,non_realtime,6:00:00,1,106.3793446,29.80116239
ZBBGXSZK000647,pipe_flow,ZBBGXSZK000647,JiuYuanErTongYiYuan,,P16504,,,,,,non_realtime,6:00:00,1,106.4256984,29.82186294
ZBBGXSZK000247,pipe_flow,ZBBGXSZK000247,TangDouHua,,P16504,,,,,,non_realtime,6:00:00,1,106.4351488,29.83505307
P16773,pipe_flow,P16773,TaiJiBinJiangErQi(SanJi),,P16504,,,,,9531,non_realtime,6:00:00,1,106.4453773,29.82620736
ZBBGXSZK002373,pipe_flow,ZBBGXSZK002373,ZhangDouHua,,P16504,,,,,,non_realtime,6:00:00,1,106.4404323,29.82998935
P12942,pipe_flow,P12942,JinYunXiaoQuDN400,,P16504,,,,,,non_realtime,6:00:00,1,106.3865726,29.80903033
P16769,pipe_flow,P16769,ShiYanCun,,P16504,,,,,9492,non_realtime,6:00:00,1,106.4307834,29.82932991
ZBBDTZDP004690,demand,ZBBDTZDP004690,ChuanYiJiXiao,,ZBBGXSZW000377,P17021,,,,9501,non_realtime,6:00:00,1,106.4092,29.8601
ZBBDFQJL000025,demand,ZBBDFQJL000025,BeiQuanHuaYuan,,ZBBGXSZW000377,P17021,,,,9405,non_realtime,6:00:00,1,106.4121,29.8275
ZBBDFQJL000030,demand,ZBBDFQJL000030,ZhuangYuanFuDi,,ZBBGXSZW000377,P17021,,,,9509,non_realtime,6:00:00,1,106.4021,29.8021
ZBBDFQJL000036,demand,ZBBDFQJL000036,JingNingJiaYuan,,ZBBGXSZW000377,P17021,,,,9494,non_realtime,6:00:00,1,106.3987,29.8095
ZBBDFQJL000034,demand,ZBBDFQJL000034,308,,ZBBGXSZW000377,P17021,,,,9504,non_realtime,6:00:00,1,106.4008,29.8166
ZBBDFQJL000032,demand,ZBBDFQJL000032,JiaYinYuan,,ZBBGXSZW000377,P17021,,,,9513,non_realtime,6:00:00,1,106.3889,29.8048
ZBBDFQJL000031,demand,ZBBDFQJL000031,XinChengGuoJi,,ZBBGXSZW000377,P17021,,,,9517,non_realtime,6:00:00,1,106.389,29.805
ZBBDFQJL000033,demand,ZBBDFQJL000033,YiJingBeiChen,,ZBBGXSZW000377,P17021,,,,9519,non_realtime,6:00:00,1,106.3906,29.8041
ZBBDFQJL000035,demand,ZBBDFQJL000035,ZhongYangXinDu,,ZBBGXSZW000377,P17021,,,,9522,non_realtime,6:00:00,1,106.3937,29.8044
J06186,demand,J06186,XinHaiJiaYuan,,ZBBGXSZW000377,P17021,,,,9525,non_realtime,6:00:00,1,106.4067,29.8278
ZBBDFQJL000052,demand,ZBBDFQJL000052,DongFengJie,,ZBBGXSZW000377,P17021,,,,9526,non_realtime,6:00:00,1,106.3678,29.766
ZBBDFQJL000049,demand,ZBBDFQJL000049,DingYaXinYu,,ZBBGXSZW000377,P17021,,,,9500,non_realtime,6:00:00,1,106.3674,29.7654
GSD2302160925534D50CD17540D_E,demand,GSD2302160925534D50CD17540D_End,ZiYunTai,,ZBBGXSZW000377,P17021,,,,9529,non_realtime,6:00:00,1,106.387,29.7884
ZBBDFQJL000050,demand,ZBBDFQJL000050,XieMaGuangChang,,ZBBGXSZW000377,P17021,,,,9477,non_realtime,6:00:00,1,106.3652,29.7657
GSD2307192058578BCE265C6EA8,demand,GSD2307192058578BCE265C6EA8,YongJinFu,,ZBBGXSZW000377,P17021,,,,9534,non_realtime,6:00:00,1,106.3831,29.781
ZBBDFQJL000028,demand,ZBBDFQJL000028,PanXiMingDu,,P16504,,,,,9514,non_realtime,6:00:00,1,106.4223,29.821
GSD230113095617514F4A2066D7_E,demand,GSD230113095617514F4A2066D7_End,WanKeJinYuHuaFuGaoCeng,,P16504,,,,,9528,non_realtime,6:00:00,1,106.4228,29.8113
ZBBDFQJL000014,demand,ZBBDFQJL000014,KeJiXiao,,P16504,,,,,9503,non_realtime,6:00:00,1,106.4332,29.8258
ZBBDFQJL000016,demand,ZBBDFQJL000016,LuGouQiao,,P16504,,,,,9527,non_realtime,6:00:00,1,106.437,29.8285
ZBBDFQJL000057,demand,ZBBDFQJL000057,LongJiangHuaYuan,,P16504,,,,,9495,non_realtime,6:00:00,1,106.4316,29.8309
ZBBDFQJL000012,demand,ZBBDFQJL000012,LaoQiZhongDui,,P16504,,,,,9496,non_realtime,6:00:00,1,106.433,29.8239
ZBBDFQJL000007,demand,ZBBDFQJL000007,TianQiDaSha,,P16504,,,,,9502,non_realtime,6:00:00,1,106.4346,29.8319
ZBBDFQJL000013,demand,ZBBDFQJL000013,TianShengPaiChuSuo,,P16504,,,,,9499,non_realtime,6:00:00,1,106.4253,29.8222
ZBBDFQJL000037,demand,ZBBDFQJL000037,TianShengShangPin,,P16504,,,,,9493,non_realtime,6:00:00,1,106.4305,29.8264
ZBBDFQJL000009,demand,ZBBDFQJL000009,JiaoTang,,P16504,,,,,9511,non_realtime,6:00:00,1,106.4402,29.826
ZBBDFQJL000011,demand,ZBBDFQJL000011,RenMinHuaYuan,,P16504,,,,,9508,non_realtime,6:00:00,1,106.4359,29.8238
ZBBDFQJL000005,demand,ZBBDFQJL000005,TaiJiBinJiangYiQi,,P16504,,,,,9484,non_realtime,6:00:00,1,106.4443,29.8245
ZBBDFQJL000006,demand,ZBBDFQJL000006,TianQiHuaYuan,,P16504,,,,,9523,non_realtime,6:00:00,1,106.4361,29.8189
ZBBDFQJL000004,demand,ZBBDFQJL000004,TaiJiBinJiangErQi,,P16504,,,,,9515,non_realtime,6:00:00,1,106.4443,29.8297
ZBBDFQJL000039,demand,ZBBDFQJL000039,122Zhong,,P16504,,,,,9516,non_realtime,6:00:00,1,106.4284,29.8109
GSD230112144241F42EF6065148_E,demand,GSD230112144241F42EF6065148_End,WanKeJinYuHuaFuYangFang,,P16504,,,,,9530,non_realtime,6:00:00,1,106.4263,29.8154
J06194,pressure,J06194,,,,,,,,2514,realtime,0:01:00,1,106.4195183,29.83782213
J06190,pressure,J06190,,,,,,,,2510,realtime,0:01:00,1,106.4194644,29.83781489
ZBBDFQJL000025_p,pressure,ZBBDFQJL000025,,,,,,,,9536,non_realtime,6:00:00,1,106.4120554,29.82753087
ZBBDFQJL000050_p,pressure,ZBBDFQJL000050,,,,,,,,9537,non_realtime,6:00:00,1,106.3651228,29.76558811
ZBBDFQJL000018_p,pressure,ZBBDFQJL000018,,,,,,,,9538,non_realtime,6:00:00,1,106.3994298,29.809484
ZBBDFQJL000002_p,pressure,ZBBDFQJL000002,,,,,,,,9539,non_realtime,6:00:00,1,106.4309932,29.81534215
ZBBDFQJL000019_p,pressure,ZBBDFQJL000019,,,,,,,,9540,non_realtime,6:00:00,1,106.3948196,29.80700511
ZBBDFQJL000047_p,pressure,ZBBDFQJL000047,,,,,,,,9541,non_realtime,6:00:00,1,106.3807979,29.75983831
ZBBDFQJL000001_p,pressure,ZBBDFQJL000001,,,,,,,,9542,non_realtime,6:00:00,1,106.4296304,29.83324097
ZBBDTZDP006510_p,pressure,ZBBDTZDP006510,,,,,,,,9543,non_realtime,6:00:00,1,106.4143,29.8204
ZBBDFQJL000005_p,pressure,ZBBDFQJL000005,,,,,,,,9544,non_realtime,6:00:00,1,106.4442613,29.824473
ZBBDFQJL000023_p,pressure,ZBBDFQJL000023,,,,,,,,9545,non_realtime,6:00:00,1,106.3907545,29.80014626
ZBBDPQFM000144_p,pressure,ZBBDPQFM000144,,,,,,,,9546,non_realtime,6:00:00,1,106.4324087,29.82466081
ZBBDFQJL000022_p,pressure,ZBBDFQJL000022,,,,,,,,9547,non_realtime,6:00:00,1,106.3922466,29.80343116
ZBBDFQJL000026_p,pressure,ZBBDFQJL000026,,,,,,,,9548,non_realtime,6:00:00,1,106.4211902,29.83372698
ZBBDFQJL000027_p,pressure,ZBBDFQJL000027,,,,,,,,9549,non_realtime,6:00:00,1,106.4302659,29.81087884
ZBBDFQJL000020_p,pressure,ZBBDFQJL000020,,,,,,,,9551,non_realtime,6:00:00,1,106.4069939,29.81230584
ZBBDFQJL000015_p,pressure,ZBBDFQJL000015,,,,,,,,9552,non_realtime,6:00:00,1,106.4307918,29.82933519
ZBBDFQJL000037_p,pressure,ZBBDFQJL000037,,,,,,,,9553,non_realtime,6:00:00,1,106.4305041,29.82636702
ZBBDFQJL000036_p,pressure,ZBBDFQJL000036,,,,,,,,9554,non_realtime,6:00:00,1,106.3987322,29.80947672
ZBBDFQJL000057_p,pressure,ZBBDFQJL000057,,,,,,,,9555,non_realtime,6:00:00,1,106.4315801,29.83086849
ZBBDFQJL000012_p,pressure,ZBBDFQJL000012,,,,,,,,9556,non_realtime,6:00:00,1,106.4330174,29.82386587
ZBBDFQJL000021_p,pressure,ZBBDFQJL000021,,,,,,,,9557,non_realtime,6:00:00,1,106.413164,29.81315876
ZBBDFQJL000045_p,pressure,ZBBDFQJL000045,,,,,,,,9558,non_realtime,6:00:00,1,106.3741065,29.77646525
ZBBDFQJL000013_p,pressure,ZBBDFQJL000013,,,,,,,,9559,non_realtime,6:00:00,1,106.4253422,29.82216074
ZBBDFQJL000049_p,pressure,ZBBDFQJL000049,,,,,,,,9560,non_realtime,6:00:00,1,106.3673675,29.76535923
ZBBDFQJL000053_p,pressure,ZBBDFQJL000053,,,,,,,,9561,non_realtime,6:00:00,1,106.4091385,29.86001467
ZBBDFQJL000007_p,pressure,ZBBDFQJL000007,,,,,,,,9562,non_realtime,6:00:00,1,106.4345765,29.83187159
ZBBDFQJL000014_p,pressure,ZBBDFQJL000014,,,,,,,,9563,non_realtime,6:00:00,1,106.4332467,29.82578845
ZBBDFQJL000034_p,pressure,ZBBDFQJL000034,,,,,,,,9564,non_realtime,6:00:00,1,106.4008362,29.81662925
ZBBDFQJL000051_p,pressure,ZBBDFQJL000051,,,,,,,,9565,non_realtime,6:00:00,1,106.3664647,29.76674002
ZBBDFQJL000029_p,pressure,ZBBDFQJL000029,,,,,,,,9566,non_realtime,6:00:00,1,106.4180536,29.81625021
ZBBDFQJL000038_p,pressure,ZBBDFQJL000038,,,,,,,,9567,non_realtime,6:00:00,1,106.4079197,29.82356534
ZBBDFQJL000011_p,pressure,ZBBDFQJL000011,,,,,,,,9568,non_realtime,6:00:00,1,106.4359412,29.82375869
ZBBDFQJL000030_p,pressure,ZBBDFQJL000030,,,,,,,,9569,non_realtime,6:00:00,1,106.4021179,29.80210907
ZBBDFQJL000024_p,pressure,ZBBDFQJL000024,,,,,,,,9570,non_realtime,6:00:00,1,106.4338355,29.82316474
ZBBDFQJL000009_p,pressure,ZBBDFQJL000009,,,,,,,,9571,non_realtime,6:00:00,1,106.4402264,29.825971
ZBBDFQJL000042_p,pressure,ZBBDFQJL000042,,,,,,,,9572,non_realtime,6:00:00,1,106.4241609,29.80026986
ZBBDFQJL000032_p,pressure,ZBBDFQJL000032,,,,,,,,9573,non_realtime,6:00:00,1,106.3889269,29.80481683
ZBBDFQJL000028_p,pressure,ZBBDFQJL000028,,,,,,,,9574,non_realtime,6:00:00,1,106.4222702,29.82103146
ZBBDFQJL000004_p,pressure,ZBBDFQJL000004,,,,,,,,9575,non_realtime,6:00:00,1,106.4442663,29.82966834
ZBBDFQJL000039_p,pressure,ZBBDFQJL000039,,,,,,,,9576,non_realtime,6:00:00,1,106.4284664,29.81088051
ZBBDFQJL000031_p,pressure,ZBBDFQJL000031,,,,,,,,9577,non_realtime,6:00:00,1,106.3890122,29.80504763
ZBBDFQJL000043_p,pressure,ZBBDFQJL000043,,,,,,,,9578,non_realtime,6:00:00,1,106.4284118,29.80929921
ZBBDFQJL000033_p,pressure,ZBBDFQJL000033,,,,,,,,9579,non_realtime,6:00:00,1,106.3906102,29.80408746
ZBBDFQJL000010_p,pressure,ZBBDFQJL000010,,,,,,,,9580,non_realtime,6:00:00,1,106.4256312,29.82218279
ZBBDFQJL000041_p,pressure,ZBBDFQJL000041,,,,,,,,9581,non_realtime,6:00:00,1,106.4003806,29.81743804
ZBBDFQJL000035_p,pressure,ZBBDFQJL000035,,,,,,,,9582,non_realtime,6:00:00,1,106.3937231,29.80441954
ZBBDFQJL000006_p,pressure,ZBBDFQJL000006,,,,,,,,9583,non_realtime,6:00:00,1,106.4361409,29.81886211
ZBBDFQJL000048_p,pressure,ZBBDFQJL000048,,,,,,,,9584,non_realtime,6:00:00,1,106.367557,29.76592299
J06186_p,pressure,J06186,,,,,,,,9585,non_realtime,6:00:00,1,106.4069218,29.82794812
ZBBDFQJL000052_p,pressure,ZBBDFQJL000052,,,,,,,,9586,non_realtime,6:00:00,1,106.3678407,29.76602511
ZBBDFQJL000016_p,pressure,ZBBDFQJL000016,,,,,,,,9587,non_realtime,6:00:00,1,106.4369887,29.82851071
GSD230113095617514F4A2066D7_E_p,pressure,GSD230113095617514F4A2066D7_End,,,,,,,,9588,non_realtime,6:00:00,1,106.4227365,29.811344
GSD2302160925534D50CD17540D_E_p,pressure,GSD2302160925534D50CD17540D_End,,,,,,,,9589,non_realtime,6:00:00,1,106.3870281,29.78840589
GSD230112144241F42EF6065148_E_p,pressure,GSD230112144241F42EF6065148_End,,,,,,,,9590,non_realtime,6:00:00,1,106.4262502,29.81534482
J06198_p,pressure,J06198,,,,,,,,9591,non_realtime,6:00:00,1,106.4454034,29.82619719
J06197_p,pressure,J06197,,,,,,,,9592,non_realtime,6:00:00,1,106.4380272,29.82741219
ZBBDYJGP000127_p,pressure,ZBBDYJGP000127,,,,,,,,9593,non_realtime,6:00:00,1,106.4006775,29.81822706
GSD2307192058578BCE265C6EA8_p,pressure,GSD2307192058578BCE265C6EA8,,,,,,,,9594,non_realtime,6:00:00,1,106.383014,29.78097074
ZBBDTZDP008185_p,pressure,ZBBDTZDP008185,,,,,,,,9595,non_realtime,6:00:00,1,106.4168547,29.83510138
1 id type associated_element_id associated_pattern associated_pipe_flow_id associated_source_outflow_id1 associated_source_outflow_id2 associated_source_outflow_id3 associated_source_outflow_id4 associated_source_outflow_id5 API_query_id transmission_mode transmission_frequency reliability X_coor Y_coor
2 ZBBDJSCP000002 reservoir_liquid_level ZBBDJSCP000002 HighPressure 2497 realtime 0:01:00 1 106.414403 29.83252977
3 R00003 reservoir_liquid_level R00003 LowPressure 2571 realtime 0:01:00 1 106.414403 29.83252977
4 ZBBDTJSC000002 tank_liquid_level ZBBDTJSC000002 4780 realtime 0:01:00 1 106.377934 29.80097177
5 ZBBDTJSC000001 tank_liquid_level ZBBDTJSC000001 9774 realtime 0:01:00 1 106.414257 29.82031872
6 PU00000 fixed_pump PU00000 1# 2747 realtime 0:01:00 1 106.414403 29.83252977
7 PU00001 fixed_pump PU00001 2# 2776 realtime 0:01:00 1 106.414403 29.83252977
8 PU00002 fixed_pump PU00002 3# 2730 realtime 0:01:00 1 106.414403 29.83252977
9 PU00003 fixed_pump PU00003 4# 2787 realtime 0:01:00 1 106.414403 29.83252977
10 PU00004 variable_pump PU00004 5# 2500 realtime 0:01:00 1 106.414403 29.83252977
11 PU00005 variable_pump PU00005 6# 2502 realtime 0:01:00 1 106.414403 29.83252977
12 PU00006 variable_pump PU00006 7# 2504 realtime 0:01:00 1 106.414403 29.83252977
13 ZBBGXSZW000377 source_outflow ZBBGXSZW000377 DN900 ZBBGXSZW000377 2498 realtime 0:01:00 1 106.4194993 29.83772834
14 P17021 source_outflow P17021 DN500 P17021 3854 realtime 0:01:00 1 106.4194939 29.83810336
15 P16504 source_outflow P16504 DN1000 P16504 3853 realtime 0:01:00 1 106.4195338 29.83781925
16 ZBBGXSZK001071 pipe_flow ZBBGXSZK001071 BianDianZhan ZBBGXSZW000377 P17021 9521 non_realtime 6:00:00 1 106.4003826 29.81743895
17 ZBBGXSZK001163 pipe_flow ZBBGXSZK001163 BeiNanDaDao ZBBGXSZW000377 P17021 9478 non_realtime 6:00:00 1 106.3994217 29.80947624
18 ZBBGXSZK001105 pipe_flow ZBBGXSZK001105 TianShengLiJie ZBBGXSZW000377 P17021 9506 non_realtime 6:00:00 1 106.4180443 29.81625954
19 P10755 pipe_flow P10755 XueYuanXiaoQu ZBBGXSZW000377 P17021 9497 non_realtime 6:00:00 1 106.4131703 29.81316079
20 ZBBGXSZK001128 pipe_flow ZBBGXSZK001128 YunHuaLu ZBBGXSZW000377 P17021 9480 non_realtime 6:00:00 1 106.3948247 29.80702128
21 P10839 pipe_flow P10839 GaoJiaQiao ZBBGXSZW000377 P17021 9507 non_realtime 6:00:00 1 106.4079379 29.82356299
22 ZBBGXSZK001079 pipe_flow ZBBGXSZK001079 LuZuoFuLuXiaDuan ZBBGXSZW000377 P17021 9487 non_realtime 6:00:00 1 106.3922472 29.80343211
23 ZBBGXSZK001096(L) pipe_flow ZBBGXSZK001096(L) TianRunCheng ZBBGXSZW000377 P17021 9485 non_realtime 6:00:00 1 106.3907546 29.80015062
24 P15959 pipe_flow P15959 CaoJiaBa ZBBGXSZW000377 P17021 9505 non_realtime 6:00:00 1 106.3664514 29.76674381
25 ZBBGXSZK001031 pipe_flow ZBBGXSZK001031 PuLingChang ZBBGXSZW000377 P17021 9481 non_realtime 6:00:00 1 106.3807941 29.75983691
26 P12544 pipe_flow P12544 QiLongXiaoQu ZBBGXSZW000377 P17021 9524 non_realtime 6:00:00 1 106.367557 29.76592301
27 ZBBGXTYK003616 pipe_flow ZBBGXTYK003616 TuanXiao ZBBGXSZW000377 P17021 9498 non_realtime 6:00:00 1 106.3741092 29.77647684
28 ZBBGXTYK003427 pipe_flow ZBBGXTYK003427 ChengBeiCaiShiKou P16504 9488 non_realtime 6:00:00 1 106.4211904 29.8337277
29 ZBBGXSZK001775 pipe_flow ZBBGXSZK001775 WenXingShe P16504 9482 non_realtime 6:00:00 1 106.4296384 29.83322552
30 ZBBGXTYK003392 pipe_flow ZBBGXTYK003392 YueLiangTianBBGJCZ P16504 9510 non_realtime 6:00:00 1 106.4338386 29.82316156
31 ZBBGXSZK001166 pipe_flow ZBBGXSZK001166 YueLiangTian P16504 9486 non_realtime 6:00:00 1 106.4324165 29.82465186
32 P13961 pipe_flow P13961 YueLiangTian200 P16504 9520 non_realtime 6:00:00 1 106.4256 29.8222
33 ZBBGXTYK003069 pipe_flow ZBBGXTYK003069 ChengTaoChang P16504 9479 non_realtime 6:00:00 1 106.431 29.8153
34 ZBBGXTYK003355 pipe_flow ZBBGXTYK003355 HuoCheZhan P16504 9518 non_realtime 6:00:00 1 106.4284178 29.80932951
35 ZBBGXSZW000335 pipe_flow ZBBGXSZW000335 LiangKu P16504 9512 non_realtime 6:00:00 1 106.4241088 29.80023184
36 ZBBGXSZK001957 pipe_flow ZBBGXSZK001957 QunXingLu P16504 9489 non_realtime 6:00:00 1 106.4302597 29.81089267
37 P05940 pipe_flow P05940 TuanShanBaoZhongShiHua ZBBGXSZW000377 P17021 9535 non_realtime 6:00:00 1 106.4168586 29.83510228
38 ZBBGXSZK002419 pipe_flow ZBBGXSZK002419 XieMa ZBBGXSZW000377 P17021 7423 non_realtime 6:00:00 1 106.3893687 29.79893615
39 P16512 pipe_flow P16512 BeiWenQuanJiuHaoErQi ZBBGXSZW000377 P17021 non_realtime 6:00:00 1 106.4077965 29.82305305
40 GSD230117133902A0620C9E4A2F pipe_flow GSD230117133902A0620C9E4A2F LaiYinHuSiQi ZBBGXSZW000377 P17021 non_realtime 6:00:00 1 106.3793446 29.80116239
41 ZBBGXSZK000647 pipe_flow ZBBGXSZK000647 JiuYuanErTongYiYuan P16504 non_realtime 6:00:00 1 106.4256984 29.82186294
42 ZBBGXSZK000247 pipe_flow ZBBGXSZK000247 TangDouHua P16504 non_realtime 6:00:00 1 106.4351488 29.83505307
43 P16773 pipe_flow P16773 TaiJiBinJiangErQi(SanJi) P16504 9531 non_realtime 6:00:00 1 106.4453773 29.82620736
44 ZBBGXSZK002373 pipe_flow ZBBGXSZK002373 ZhangDouHua P16504 non_realtime 6:00:00 1 106.4404323 29.82998935
45 P12942 pipe_flow P12942 JinYunXiaoQuDN400 P16504 non_realtime 6:00:00 1 106.3865726 29.80903033
46 P16769 pipe_flow P16769 ShiYanCun P16504 9492 non_realtime 6:00:00 1 106.4307834 29.82932991
47 ZBBDTZDP004690 demand ZBBDTZDP004690 ChuanYiJiXiao ZBBGXSZW000377 P17021 9501 non_realtime 6:00:00 1 106.4092 29.8601
48 ZBBDFQJL000025 demand ZBBDFQJL000025 BeiQuanHuaYuan ZBBGXSZW000377 P17021 9405 non_realtime 6:00:00 1 106.4121 29.8275
49 ZBBDFQJL000030 demand ZBBDFQJL000030 ZhuangYuanFuDi ZBBGXSZW000377 P17021 9509 non_realtime 6:00:00 1 106.4021 29.8021
50 ZBBDFQJL000036 demand ZBBDFQJL000036 JingNingJiaYuan ZBBGXSZW000377 P17021 9494 non_realtime 6:00:00 1 106.3987 29.8095
51 ZBBDFQJL000034 demand ZBBDFQJL000034 308 ZBBGXSZW000377 P17021 9504 non_realtime 6:00:00 1 106.4008 29.8166
52 ZBBDFQJL000032 demand ZBBDFQJL000032 JiaYinYuan ZBBGXSZW000377 P17021 9513 non_realtime 6:00:00 1 106.3889 29.8048
53 ZBBDFQJL000031 demand ZBBDFQJL000031 XinChengGuoJi ZBBGXSZW000377 P17021 9517 non_realtime 6:00:00 1 106.389 29.805
54 ZBBDFQJL000033 demand ZBBDFQJL000033 YiJingBeiChen ZBBGXSZW000377 P17021 9519 non_realtime 6:00:00 1 106.3906 29.8041
55 ZBBDFQJL000035 demand ZBBDFQJL000035 ZhongYangXinDu ZBBGXSZW000377 P17021 9522 non_realtime 6:00:00 1 106.3937 29.8044
56 J06186 demand J06186 XinHaiJiaYuan ZBBGXSZW000377 P17021 9525 non_realtime 6:00:00 1 106.4067 29.8278
57 ZBBDFQJL000052 demand ZBBDFQJL000052 DongFengJie ZBBGXSZW000377 P17021 9526 non_realtime 6:00:00 1 106.3678 29.766
58 ZBBDFQJL000049 demand ZBBDFQJL000049 DingYaXinYu ZBBGXSZW000377 P17021 9500 non_realtime 6:00:00 1 106.3674 29.7654
59 GSD2302160925534D50CD17540D_E demand GSD2302160925534D50CD17540D_End ZiYunTai ZBBGXSZW000377 P17021 9529 non_realtime 6:00:00 1 106.387 29.7884
60 ZBBDFQJL000050 demand ZBBDFQJL000050 XieMaGuangChang ZBBGXSZW000377 P17021 9477 non_realtime 6:00:00 1 106.3652 29.7657
61 GSD2307192058578BCE265C6EA8 demand GSD2307192058578BCE265C6EA8 YongJinFu ZBBGXSZW000377 P17021 9534 non_realtime 6:00:00 1 106.3831 29.781
62 ZBBDFQJL000028 demand ZBBDFQJL000028 PanXiMingDu P16504 9514 non_realtime 6:00:00 1 106.4223 29.821
63 GSD230113095617514F4A2066D7_E demand GSD230113095617514F4A2066D7_End WanKeJinYuHuaFuGaoCeng P16504 9528 non_realtime 6:00:00 1 106.4228 29.8113
64 ZBBDFQJL000014 demand ZBBDFQJL000014 KeJiXiao P16504 9503 non_realtime 6:00:00 1 106.4332 29.8258
65 ZBBDFQJL000016 demand ZBBDFQJL000016 LuGouQiao P16504 9527 non_realtime 6:00:00 1 106.437 29.8285
66 ZBBDFQJL000057 demand ZBBDFQJL000057 LongJiangHuaYuan P16504 9495 non_realtime 6:00:00 1 106.4316 29.8309
67 ZBBDFQJL000012 demand ZBBDFQJL000012 LaoQiZhongDui P16504 9496 non_realtime 6:00:00 1 106.433 29.8239
68 ZBBDFQJL000007 demand ZBBDFQJL000007 TianQiDaSha P16504 9502 non_realtime 6:00:00 1 106.4346 29.8319
69 ZBBDFQJL000013 demand ZBBDFQJL000013 TianShengPaiChuSuo P16504 9499 non_realtime 6:00:00 1 106.4253 29.8222
70 ZBBDFQJL000037 demand ZBBDFQJL000037 TianShengShangPin P16504 9493 non_realtime 6:00:00 1 106.4305 29.8264
71 ZBBDFQJL000009 demand ZBBDFQJL000009 JiaoTang P16504 9511 non_realtime 6:00:00 1 106.4402 29.826
72 ZBBDFQJL000011 demand ZBBDFQJL000011 RenMinHuaYuan P16504 9508 non_realtime 6:00:00 1 106.4359 29.8238
73 ZBBDFQJL000005 demand ZBBDFQJL000005 TaiJiBinJiangYiQi P16504 9484 non_realtime 6:00:00 1 106.4443 29.8245
74 ZBBDFQJL000006 demand ZBBDFQJL000006 TianQiHuaYuan P16504 9523 non_realtime 6:00:00 1 106.4361 29.8189
75 ZBBDFQJL000004 demand ZBBDFQJL000004 TaiJiBinJiangErQi P16504 9515 non_realtime 6:00:00 1 106.4443 29.8297
76 ZBBDFQJL000039 demand ZBBDFQJL000039 122Zhong P16504 9516 non_realtime 6:00:00 1 106.4284 29.8109
77 GSD230112144241F42EF6065148_E demand GSD230112144241F42EF6065148_End WanKeJinYuHuaFuYangFang P16504 9530 non_realtime 6:00:00 1 106.4263 29.8154
78 J06194 pressure J06194 2514 realtime 0:01:00 1 106.4195183 29.83782213
79 J06190 pressure J06190 2510 realtime 0:01:00 1 106.4194644 29.83781489
80 ZBBDFQJL000025_p pressure ZBBDFQJL000025 9536 non_realtime 6:00:00 1 106.4120554 29.82753087
81 ZBBDFQJL000050_p pressure ZBBDFQJL000050 9537 non_realtime 6:00:00 1 106.3651228 29.76558811
82 ZBBDFQJL000018_p pressure ZBBDFQJL000018 9538 non_realtime 6:00:00 1 106.3994298 29.809484
83 ZBBDFQJL000002_p pressure ZBBDFQJL000002 9539 non_realtime 6:00:00 1 106.4309932 29.81534215
84 ZBBDFQJL000019_p pressure ZBBDFQJL000019 9540 non_realtime 6:00:00 1 106.3948196 29.80700511
85 ZBBDFQJL000047_p pressure ZBBDFQJL000047 9541 non_realtime 6:00:00 1 106.3807979 29.75983831
86 ZBBDFQJL000001_p pressure ZBBDFQJL000001 9542 non_realtime 6:00:00 1 106.4296304 29.83324097
87 ZBBDTZDP006510_p pressure ZBBDTZDP006510 9543 non_realtime 6:00:00 1 106.4143 29.8204
88 ZBBDFQJL000005_p pressure ZBBDFQJL000005 9544 non_realtime 6:00:00 1 106.4442613 29.824473
89 ZBBDFQJL000023_p pressure ZBBDFQJL000023 9545 non_realtime 6:00:00 1 106.3907545 29.80014626
90 ZBBDPQFM000144_p pressure ZBBDPQFM000144 9546 non_realtime 6:00:00 1 106.4324087 29.82466081
91 ZBBDFQJL000022_p pressure ZBBDFQJL000022 9547 non_realtime 6:00:00 1 106.3922466 29.80343116
92 ZBBDFQJL000026_p pressure ZBBDFQJL000026 9548 non_realtime 6:00:00 1 106.4211902 29.83372698
93 ZBBDFQJL000027_p pressure ZBBDFQJL000027 9549 non_realtime 6:00:00 1 106.4302659 29.81087884
94 ZBBDFQJL000020_p pressure ZBBDFQJL000020 9551 non_realtime 6:00:00 1 106.4069939 29.81230584
95 ZBBDFQJL000015_p pressure ZBBDFQJL000015 9552 non_realtime 6:00:00 1 106.4307918 29.82933519
96 ZBBDFQJL000037_p pressure ZBBDFQJL000037 9553 non_realtime 6:00:00 1 106.4305041 29.82636702
97 ZBBDFQJL000036_p pressure ZBBDFQJL000036 9554 non_realtime 6:00:00 1 106.3987322 29.80947672
98 ZBBDFQJL000057_p pressure ZBBDFQJL000057 9555 non_realtime 6:00:00 1 106.4315801 29.83086849
99 ZBBDFQJL000012_p pressure ZBBDFQJL000012 9556 non_realtime 6:00:00 1 106.4330174 29.82386587
100 ZBBDFQJL000021_p pressure ZBBDFQJL000021 9557 non_realtime 6:00:00 1 106.413164 29.81315876
101 ZBBDFQJL000045_p pressure ZBBDFQJL000045 9558 non_realtime 6:00:00 1 106.3741065 29.77646525
102 ZBBDFQJL000013_p pressure ZBBDFQJL000013 9559 non_realtime 6:00:00 1 106.4253422 29.82216074
103 ZBBDFQJL000049_p pressure ZBBDFQJL000049 9560 non_realtime 6:00:00 1 106.3673675 29.76535923
104 ZBBDFQJL000053_p pressure ZBBDFQJL000053 9561 non_realtime 6:00:00 1 106.4091385 29.86001467
105 ZBBDFQJL000007_p pressure ZBBDFQJL000007 9562 non_realtime 6:00:00 1 106.4345765 29.83187159
106 ZBBDFQJL000014_p pressure ZBBDFQJL000014 9563 non_realtime 6:00:00 1 106.4332467 29.82578845
107 ZBBDFQJL000034_p pressure ZBBDFQJL000034 9564 non_realtime 6:00:00 1 106.4008362 29.81662925
108 ZBBDFQJL000051_p pressure ZBBDFQJL000051 9565 non_realtime 6:00:00 1 106.3664647 29.76674002
109 ZBBDFQJL000029_p pressure ZBBDFQJL000029 9566 non_realtime 6:00:00 1 106.4180536 29.81625021
110 ZBBDFQJL000038_p pressure ZBBDFQJL000038 9567 non_realtime 6:00:00 1 106.4079197 29.82356534
111 ZBBDFQJL000011_p pressure ZBBDFQJL000011 9568 non_realtime 6:00:00 1 106.4359412 29.82375869
112 ZBBDFQJL000030_p pressure ZBBDFQJL000030 9569 non_realtime 6:00:00 1 106.4021179 29.80210907
113 ZBBDFQJL000024_p pressure ZBBDFQJL000024 9570 non_realtime 6:00:00 1 106.4338355 29.82316474
114 ZBBDFQJL000009_p pressure ZBBDFQJL000009 9571 non_realtime 6:00:00 1 106.4402264 29.825971
115 ZBBDFQJL000042_p pressure ZBBDFQJL000042 9572 non_realtime 6:00:00 1 106.4241609 29.80026986
116 ZBBDFQJL000032_p pressure ZBBDFQJL000032 9573 non_realtime 6:00:00 1 106.3889269 29.80481683
117 ZBBDFQJL000028_p pressure ZBBDFQJL000028 9574 non_realtime 6:00:00 1 106.4222702 29.82103146
118 ZBBDFQJL000004_p pressure ZBBDFQJL000004 9575 non_realtime 6:00:00 1 106.4442663 29.82966834
119 ZBBDFQJL000039_p pressure ZBBDFQJL000039 9576 non_realtime 6:00:00 1 106.4284664 29.81088051
120 ZBBDFQJL000031_p pressure ZBBDFQJL000031 9577 non_realtime 6:00:00 1 106.3890122 29.80504763
121 ZBBDFQJL000043_p pressure ZBBDFQJL000043 9578 non_realtime 6:00:00 1 106.4284118 29.80929921
122 ZBBDFQJL000033_p pressure ZBBDFQJL000033 9579 non_realtime 6:00:00 1 106.3906102 29.80408746
123 ZBBDFQJL000010_p pressure ZBBDFQJL000010 9580 non_realtime 6:00:00 1 106.4256312 29.82218279
124 ZBBDFQJL000041_p pressure ZBBDFQJL000041 9581 non_realtime 6:00:00 1 106.4003806 29.81743804
125 ZBBDFQJL000035_p pressure ZBBDFQJL000035 9582 non_realtime 6:00:00 1 106.3937231 29.80441954
126 ZBBDFQJL000006_p pressure ZBBDFQJL000006 9583 non_realtime 6:00:00 1 106.4361409 29.81886211
127 ZBBDFQJL000048_p pressure ZBBDFQJL000048 9584 non_realtime 6:00:00 1 106.367557 29.76592299
128 J06186_p pressure J06186 9585 non_realtime 6:00:00 1 106.4069218 29.82794812
129 ZBBDFQJL000052_p pressure ZBBDFQJL000052 9586 non_realtime 6:00:00 1 106.3678407 29.76602511
130 ZBBDFQJL000016_p pressure ZBBDFQJL000016 9587 non_realtime 6:00:00 1 106.4369887 29.82851071
131 GSD230113095617514F4A2066D7_E_p pressure GSD230113095617514F4A2066D7_End 9588 non_realtime 6:00:00 1 106.4227365 29.811344
132 GSD2302160925534D50CD17540D_E_p pressure GSD2302160925534D50CD17540D_End 9589 non_realtime 6:00:00 1 106.3870281 29.78840589
133 GSD230112144241F42EF6065148_E_p pressure GSD230112144241F42EF6065148_End 9590 non_realtime 6:00:00 1 106.4262502 29.81534482
134 J06198_p pressure J06198 9591 non_realtime 6:00:00 1 106.4454034 29.82619719
135 J06197_p pressure J06197 9592 non_realtime 6:00:00 1 106.4380272 29.82741219
136 ZBBDYJGP000127_p pressure ZBBDYJGP000127 9593 non_realtime 6:00:00 1 106.4006775 29.81822706
137 GSD2307192058578BCE265C6EA8_p pressure GSD2307192058578BCE265C6EA8 9594 non_realtime 6:00:00 1 106.383014 29.78097074
138 ZBBDTZDP008185_p pressure ZBBDTZDP008185 9595 non_realtime 6:00:00 1 106.4168547 29.83510138
-67
View File
@@ -1,67 +0,0 @@
-- ============================================
-- TJWater Server 用户系统数据库迁移脚本
-- ============================================
-- 创建用户表
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
hashed_password VARCHAR(255) NOT NULL,
role VARCHAR(20) DEFAULT 'USER' NOT NULL,
is_active BOOLEAN DEFAULT TRUE NOT NULL,
is_superuser BOOLEAN DEFAULT FALSE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
CONSTRAINT users_role_check CHECK (role IN ('ADMIN', 'OPERATOR', 'USER', 'VIEWER'))
);
-- 创建索引
CREATE INDEX IF NOT EXISTS idx_users_username ON users(username);
CREATE INDEX IF NOT EXISTS idx_users_email ON users(email);
CREATE INDEX IF NOT EXISTS idx_users_role ON users(role);
CREATE INDEX IF NOT EXISTS idx_users_is_active ON users(is_active);
-- 创建触发器自动更新 updated_at
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
DROP TRIGGER IF EXISTS update_users_updated_at ON users;
CREATE TRIGGER update_users_updated_at
BEFORE UPDATE ON users
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column();
-- 创建默认管理员账号 (密码: admin123)
INSERT INTO users (username, email, hashed_password, role, is_superuser)
VALUES (
'admin',
'admin@tjwater.com',
'$2b$12$LQv3c1yqBWVHxkd0LHAkCOYz6TtxMQJqhN8/LewY5aeAJK.1tYKAW',
'ADMIN',
TRUE
) ON CONFLICT (username) DO NOTHING;
-- 迁移现有硬编码用户 (tjwater/tjwater@123)
INSERT INTO users (username, email, hashed_password, role, is_superuser)
VALUES (
'tjwater',
'tjwater@tjwater.com',
'$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW',
'ADMIN',
TRUE
) ON CONFLICT (username) DO NOTHING;
-- 添加注释
COMMENT ON TABLE users IS '用户表 - 存储系统用户信息';
COMMENT ON COLUMN users.id IS '用户ID(主键)';
COMMENT ON COLUMN users.username IS '用户名(唯一)';
COMMENT ON COLUMN users.email IS '邮箱地址(唯一)';
COMMENT ON COLUMN users.hashed_password IS 'bcrypt 密码哈希';
COMMENT ON COLUMN users.role IS '用户角色: ADMIN, OPERATOR, USER, VIEWER';
@@ -1,45 +0,0 @@
-- ============================================
-- TJWater Server 审计日志表迁移脚本
-- ============================================
-- 创建审计日志表
CREATE TABLE IF NOT EXISTS audit_logs (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id) ON DELETE SET NULL,
username VARCHAR(50),
action VARCHAR(50) NOT NULL,
resource_type VARCHAR(50),
resource_id VARCHAR(100),
ip_address VARCHAR(45),
user_agent TEXT,
request_method VARCHAR(10),
request_path TEXT,
request_data JSONB,
response_status INTEGER,
error_message TEXT,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
);
-- 创建索引以提高查询性能
CREATE INDEX IF NOT EXISTS idx_audit_logs_user_id ON audit_logs(user_id);
CREATE INDEX IF NOT EXISTS idx_audit_logs_username ON audit_logs(username);
CREATE INDEX IF NOT EXISTS idx_audit_logs_timestamp ON audit_logs(timestamp DESC);
CREATE INDEX IF NOT EXISTS idx_audit_logs_action ON audit_logs(action);
CREATE INDEX IF NOT EXISTS idx_audit_logs_resource ON audit_logs(resource_type, resource_id);
-- 添加注释
COMMENT ON TABLE audit_logs IS '审计日志表 - 记录所有关键操作';
COMMENT ON COLUMN audit_logs.id IS '日志ID(主键)';
COMMENT ON COLUMN audit_logs.user_id IS '用户ID(外键)';
COMMENT ON COLUMN audit_logs.username IS '用户名(冗余字段,用于用户删除后仍可查询)';
COMMENT ON COLUMN audit_logs.action IS '操作类型(如:LOGIN, LOGOUT, CREATE, UPDATE, DELETE';
COMMENT ON COLUMN audit_logs.resource_type IS '资源类型(如:user, project, network';
COMMENT ON COLUMN audit_logs.resource_id IS '资源ID';
COMMENT ON COLUMN audit_logs.ip_address IS '客户端IP地址';
COMMENT ON COLUMN audit_logs.user_agent IS '客户端User-Agent';
COMMENT ON COLUMN audit_logs.request_method IS 'HTTP请求方法';
COMMENT ON COLUMN audit_logs.request_path IS '请求路径';
COMMENT ON COLUMN audit_logs.request_data IS '请求数据(JSON格式,敏感信息已脱敏)';
COMMENT ON COLUMN audit_logs.response_status IS 'HTTP响应状态码';
COMMENT ON COLUMN audit_logs.error_message IS '错误消息(如果有)';
COMMENT ON COLUMN audit_logs.timestamp IS '操作时间';
-36
View File
@@ -1,36 +0,0 @@
create type _node_type as enum ('junction', 'reservoir', 'tank');
create type _link_type as enum ('pipe', 'pump', 'valve');
create type _curve_type as enum ('PUMP', 'EFFICIENCY', 'VOLUME', 'HEADLOSS');
create type _region_type as enum ('NONE', 'DMA', 'SA', 'VD', 'WDA');
create table _node
(
id varchar(32) primary key
, type _node_type not null
);
create table _link
(
id varchar(32) primary key
, type _link_type not null
);
create table _curve
(
id varchar(32) primary key
, type _curve_type not null
);
create table _pattern
(
id varchar(32) primary key
);
create table _region
(
id varchar(32) primary key
, type _region_type not null
);
-8
View File
@@ -1,8 +0,0 @@
-- [TITLE]
create table title
(
value text
);
insert into title (value) values ('');
-13
View File
@@ -1,13 +0,0 @@
-- [STATUS]
create type link_status as enum ('OPEN', 'CLOSED', 'ACTIVE');
create table status
(
link varchar(32) primary key references _link(id)
, status link_status
, setting float8
, check (status is not null or setting is not null)
);
-- ddelete when delete link
-8
View File
@@ -1,8 +0,0 @@
-- [PATTERNS]
create table patterns
(
_order serial primary key
, id varchar(32) references _pattern(id) not null
, factor float8 not null
);
-9
View File
@@ -1,9 +0,0 @@
-- [CURVES]
create table curves
(
_order serial primary key
, id varchar(32) references _curve(id) not null
, x float8 not null
, y float8 not null
);
-7
View File
@@ -1,7 +0,0 @@
-- [CONTROLS]
create table controls
(
_order serial primary key
, line text not null
);
-7
View File
@@ -1,7 +0,0 @@
-- [RULES]
create table rules
(
_order serial primary key
, line text not null
);
-40
View File
@@ -1,40 +0,0 @@
-- [ENERGY]
create table energy
(
key text primary key
, value text not null
);
insert into energy (key, value) values
('GLOBAL PRICE', '0')
, ('GLOBAL PATTERN', '')
, ('GLOBAL EFFIC', '75')
, ('DEMAND CHARGE', '0')
;
create table energy_pump_price
(
pump varchar(32) primary key references pumps(id) not null
, price float8 not null
);
-- delete when delete pump
create table energy_pump_pattern
(
pump varchar(32) primary key references pumps(id) not null
, pattern varchar(32) references _pattern(id) not null
);
-- delete when delete pump
-- delete when delete pattern
create table energy_pump_effic
(
pump varchar(32) primary key references pumps(id) not null
, effic varchar(32) references _curve(id) not null
);
-- delete when delete pump
-- delete when delete curve
-9
View File
@@ -1,9 +0,0 @@
-- [EMITTERS]
create table emitters
(
junction varchar(32) primary key references junctions(id)
, coefficient float8 not null
);
-- delete when delete junction
-9
View File
@@ -1,9 +0,0 @@
-- [QUALITY]
create table quality
(
node varchar(32) primary key references _node(id)
, quality float8 not null
);
-- delete when delete ndoe
-14
View File
@@ -1,14 +0,0 @@
-- [SOURCES]
create type sources_type as enum ('CONCEN', 'MASS', 'FLOWPACED', 'SETPOINT');
create table sources
(
node varchar(32) primary key references _node(id)
, s_type sources_type not null
, strength float8 not null
, pattern varchar(32) references _pattern(id)
);
-- delete when delete node
-- unset pattern when delete pattern
-41
View File
@@ -1,41 +0,0 @@
-- [REACTIONS]
create table reactions
(
key text primary key
, value text not null
);
insert into reactions (key, value) values
('ORDER BULK', '1')
, ('ORDER WALL', '1')
, ('ORDER TANK', '1')
, ('GLOBAL BULK', '0')
, ('GLOBAL WALL', '0')
, ('LIMITING POTENTIAL', '0')
, ('ROUGHNESS CORRELATION', '0')
;
create table reactions_pipe_bulk
(
pipe varchar(32) primary key references pipes(id) not null
, value float8 not null
);
-- delete when delete pipe
create table reactions_pipe_wall
(
pipe varchar(32) primary key references pipes(id) not null
, value float8 not null
);
-- delete when delete pipe
create table reactions_tank
(
tank varchar(32) primary key references tanks(id) not null
, value float8 not null
);
-- delete when delete tank
-7
View File
@@ -1,7 +0,0 @@
-- [JUNCTIONS]
create table junctions
(
id varchar(32) primary key references _node(id)
, elevation float8 not null
);
-12
View File
@@ -1,12 +0,0 @@
-- [MIXING]
create type mixing_model as enum ('MIXED', '2COMP', 'FIFO', 'LIFO');
create table mixing
(
tank varchar(32) primary key references tanks(id)
, model mixing_model not null
, value float8
);
-- delete when delete tank
-20
View File
@@ -1,20 +0,0 @@
-- [TIMES]
create table times
(
key text primary key
, value text not null
);
insert into times (key, value) values
('DURATION', '0:00')
, ('HYDRAULIC TIMESTEP', '1:00')
, ('QUALITY TIMESTEP', '0:05')
, ('RULE TIMESTEP', '0:05')
, ('PATTERN TIMESTEP', '1:00')
, ('PATTERN START', '0:00')
, ('REPORT TIMESTEP', '1:00')
, ('REPORT START', '0:00')
, ('START CLOCKTIME', '12:00 AM')
, ('STATISTIC', 'NONE') -- NONE / AVERAGED / MINIMUM / MAXIMUM / RANGE
;
-18
View File
@@ -1,18 +0,0 @@
-- [REPORT]
create table report
(
key text primary key
, value text not null
);
insert into report (key, value) values
('PAGESIZE', '0')
--, ('FILE', '')
, ('STATUS', 'FULL')
, ('SUMMARY', 'YES')
, ('MESSAGES', 'YES')
, ('ENERGY', 'YES')
, ('NODES', 'ALL')
, ('LINKS', 'ALL')
;
-77
View File
@@ -1,77 +0,0 @@
-- [OPTIONS]
-- TODO: constraint
create table options
(
key text primary key
, value text not null
);
insert into options (key, value) values
('UNITS', 'LPS')
, ('PRESSURE', 'METERS')
, ('HEADLOSS', 'H-W')
, ('QUALITY', 'NONE')
, ('UNBALANCED', 'STOP')
, ('PATTERN', '1')
, ('DEMAND MODEL', 'DDA')
, ('DEMAND MULTIPLIER', '1.0')
, ('EMITTER EXPONENT', '0.5')
, ('VISCOSITY', '1.0')
, ('DIFFUSIVITY', '1.0')
, ('SPECIFIC GRAVITY', '1.0')
, ('TRIALS', '40')
, ('ACCURACY', '0.001')
, ('HEADERROR', '0.0001')
, ('FLOWCHANGE', '0.0001')
, ('MINIMUM PRESSURE', '0.0001')
, ('REQUIRED PRESSURE', '20.0')
, ('PRESSURE EXPONENT', '0.5')
, ('TOLERANCE', '0.01')
, ('HTOL', '0.0005')
, ('QTOL', '0.0001')
, ('RQTOL', '0.0000001')
, ('CHECKFREQ', '2')
, ('MAXCHECK', '10')
, ('DAMPLIMIT', '0')
;
create table options_v3
(
key text primary key
, value text not null
);
insert into options_v3 (key, value) values
('FLOW_UNITS', 'LPS')
, ('PRESSURE_UNITS', 'METERS')
, ('HEADLOSS_MODEL', 'H-W')
, ('SPECIFIC_GRAVITY', '1.0')
, ('SPECIFIC_VISCOSITY', '1.0')
, ('MAXIMUM_TRIALS', '40')
, ('HEAD_TOLERANCE', '0.0005')
, ('FLOW_TOLERANCE', '0.0001')
, ('FLOW_CHANGE_LIMIT', '0.0001')
, ('RELATIVE_ACCURACY', '0.001')
, ('TIME_WEIGHT', '0.0')
, ('STEP_SIZING', 'FULL')
, ('IF_UNBALANCED', 'STOP')
, ('DEMAND_MODEL', 'FIXED')
, ('DEMAND_PATTERN', '1')
, ('DEMAND_MULTIPLIER', '1.0')
, ('MINIMUM_PRESSURE', '0.0001')
, ('SERVICE_PRESSURE', '20.0')
, ('PRESSURE_EXPONENT', '0.5')
, ('LEAKAGE_MODEL', 'NONE')
, ('LEAKAGE_COEFF1', '0.0')
, ('LEAKAGE_COEFF2', '0.0')
, ('EMITTER_EXPONENT', '0.5')
, ('QUALITY_MODEL', 'NONE')
, ('QUALITY_NAME', 'CHEMICAL')
, ('QUALITY_UNITS', 'MG/L')
, ('TRACE_NODE', '')
, ('SPECIFIC_DIFFUSIVITY', '1.0')
, ('QUALITY_TOLERANCE', '0.01')
;
-11
View File
@@ -1,11 +0,0 @@
-- [COORDINATES]
create table coordinates
(
node varchar(32) primary key references _node(id)
, coord geometry
);
-- delete when delete node
create index coordinates_gist on coordinates using gist(coord);
-11
View File
@@ -1,11 +0,0 @@
-- [VERTICES]
create table vertices
(
_order serial primary key
, link varchar(32) references _link(id) not null
, x float8 not null
, y float8 not null
);
-- delete when delete link
-12
View File
@@ -1,12 +0,0 @@
-- [LABELS]
create table labels
(
x float8 not null
, y float8 not null
, label text not null
, node varchar(32) references _node(id)
, primary key (x, y)
);
-- unset node when delete node
-8
View File
@@ -1,8 +0,0 @@
-- [BACKDROP]
create table backdrop
(
content text primary key
);
insert into backdrop (content) values ('');
-1
View File
@@ -1 +0,0 @@
-- [END]
-9
View File
@@ -1,9 +0,0 @@
create type scada_device_type as enum ('PRESSURE', 'DEMAND', 'QUALITY', 'LEVEL', 'FLOW', 'UNKNOWN');
create table scada_device
(
id text primary key
, name text
, address text
, sd_type scada_device_type
);
-10
View File
@@ -1,10 +0,0 @@
-- [RESERVOIRS]
create table reservoirs
(
id varchar(32) primary key references _node(id)
, head float8 not null
, pattern varchar(32) references _pattern(id)
);
-- unset pattern when delete pattern
@@ -1,7 +0,0 @@
create table scada_device_data
(
device_id text not null references scada_device(id)
, time timestamp not null
, value float8 not null
, primary key (device_id, time)
);
-14
View File
@@ -1,14 +0,0 @@
create type scada_model_type as enum ('JUNCTION', 'RESERVOIR', 'TANK', 'PIPE', 'PUMP', 'VALVE');
create type scada_element_status as enum ('OFF', 'ON');
create table scada_element
(
id text primary key
, x float8 not null
, y float8 not null
, device_id text references scada_device(id)
, model_id varchar(32) -- add constraint in API
, model_type scada_model_type
, status scada_element_status not null default 'OFF'
);
-48
View File
@@ -1,48 +0,0 @@
create type region_type as enum ('NONE', 'DMA', 'SA', 'VD', 'WDA');
create table region
(
id text primary key
, boundary geometry not null --unique
, r_type region_type not null default 'NONE'
);
create index region_gist on region using gist(boundary);
create table temp_region
(
id text primary key
, boundary geometry not null unique
);
create index temp_region_gist on temp_region using gist(boundary);
create table temp_node
(
node varchar(32) primary key references _node(id)
);
create table temp_link_1
(
link varchar(32) primary key references _link(id)
, geom geometry not null unique
);
create table temp_link_2
(
link varchar(32) primary key references _link(id)
, geom geometry not null unique
);
create table temp_vd_topology
(
id serial
, source integer
, target integer
, cost float8
);
-6
View File
@@ -1,6 +0,0 @@
create table region_dma
(
id text primary key references region(id)
, parent text --references region_dma(id)
, nodes text not null
);
-7
View File
@@ -1,7 +0,0 @@
create table region_sa
(
id text primary key references region(id)
, time_index integer not null
, source varchar(32) not null -- references _node(id)
, nodes text not null
);
-6
View File
@@ -1,6 +0,0 @@
create table region_vd
(
id text primary key references region(id)
, center varchar(32) not null -- references _node(id)
, nodes text not null
);
-5
View File
@@ -1,5 +0,0 @@
create table region_wda
(
id text primary key references region(id)
, demand float8 not null default 0.0
);
@@ -1,11 +0,0 @@
-- [HISTORY_PATTERNS_FLOWS]
-- WMH
-- 2025/01/12
-- Save pattern and pattern based history flow data. Use it for flow update pattern
create table history_patterns_flows
(
_order serial primary key
, id varchar(32) references _pattern(id) not null
, factor float8 not null
, flow float8 not null
);
-44
View File
@@ -1,44 +0,0 @@
-- [SCADA_INFO]
-- 王名豪
-- 2025/01/12
-- 存储水厂提供的SCADA设备相关数据,包括设备ID、类型(reservoir_liquid_level/tank_liquid_level/fixed_pump/variable_pump/source_outflow/pipe_flow/pressure/demand/quality、关联的模型元素ID、关联的模式、
-- 关联的干管流量计对应的模型元素ID(即demand(大用户)处于某个pipe_flow(干管流量计)之下,demand不是根据水量大小来确定的,而是根据设备情况和是否单独设置pattern决定
-- 关联的出厂流量计对应的模型元素ID若干个(即确认该设备的水源是哪几个,根据水源不同,设置为不同的分区)
-- SCADA设备通过数据接口查询的ID、传输模式(实时/非实时)、传输频率(多久传回一次数据)
-- X坐标、Y坐标、基于X坐标和Y坐标生成geometry类型的数据
create table scada_info
(
id varchar(32) primary key
, type varchar(32) not null
, associated_element_id varchar(32) not null
, associated_pattern varchar(32)
, associated_pipe_flow_id varchar(32)
, associated_source_outflow_id1 varchar(32)
, associated_source_outflow_id2 varchar(32)
, associated_source_outflow_id3 varchar(32)
, associated_source_outflow_id4 varchar(32)
, associated_source_outflow_id5 varchar(32)
, associated_source_outflow_id6 varchar(32)
, associated_source_outflow_id7 varchar(32)
, associated_source_outflow_id8 varchar(32)
, associated_source_outflow_id9 varchar(32)
, associated_source_outflow_id10 varchar(32)
, associated_source_outflow_id11 varchar(32)
, associated_source_outflow_id12 varchar(32)
, associated_source_outflow_id13 varchar(32)
, associated_source_outflow_id14 varchar(32)
, associated_source_outflow_id15 varchar(32)
, associated_source_outflow_id16 varchar(32)
, associated_source_outflow_id17 varchar(32)
, associated_source_outflow_id18 varchar(32)
, associated_source_outflow_id19 varchar(32)
, associated_source_outflow_id20 varchar(32)
, API_query_id varchar(32)
, transmission_mode varchar(32) not null
, transmission_frequency text not null
, reliability int not null
, X_coor float8 not null
, Y_coor float8 not null
, coord geometry
)
-10
View File
@@ -1,10 +0,0 @@
-- [USERS]
-- 王名豪
-- 2025/03/23
-- 存储系统的用户信息,如用户名,密码
create table users (
user_id SERIAL PRIMARY KEY,
username varchar(32) not null unique,
password varchar(32) not null
)
-18
View File
@@ -1,18 +0,0 @@
-- [TANKS]
create type tanks_overflow as enum ('YES', 'NO');
create table tanks
(
id varchar(32) primary key references _node(id)
, elevation float8 not null
, init_level float8 not null
, min_level float8 not null
, max_level float8 not null
, diameter float8 not null
, min_vol float8 not null
, vol_curve varchar(32) references _curve(id)
, overflow tanks_overflow
);
-- unset vol_curve when delete curve
-14
View File
@@ -1,14 +0,0 @@
-- [SCHEME_LIST]
-- 王名豪
-- 2025/03/23
-- 存储进行手动模拟后的方案列表
create table scheme_list (
scheme_id SERIAL PRIMARY KEY,
scheme_name varchar(32) not null,
scheme_type varchar(32) not null,
username varchar(32) not null REFERENCES "users"(username) ON UPDATE CASCADE ON DELETE RESTRICT,
create_time TIMESTAMP WITH TIME ZONE not null DEFAULT date_trunc('minute', CURRENT_TIMESTAMP),
scheme_start_time varchar(50) not null,
scheme_detail JSON
)
@@ -1,13 +0,0 @@
-- [PIPE_RISK_PROBABILITY]
-- 王名豪
-- 2025/04/16
-- 存储管道风险评价结果
CREATE TABLE pipe_risk_probability (
id SERIAL PRIMARY KEY,
pipeID VARCHAR(255),
pipeage FLOAT,
risk_probability_now FLOAT,
x FLOAT[], -- Since x is a list, it's stored as text (stringified list)
y FLOAT[] -- Similarly, y will be stored as text (stringified list)
);
@@ -1,14 +0,0 @@
-- [SENSOR_PLACEMENT]
-- 王名豪
-- 2025/04/18
-- 存储测压点的布置方案
CREATE TABLE sensor_placement (
id SERIAL PRIMARY KEY,
scheme_name varchar(32) not null,
sensor_number int,
min_diameter int,
username varchar(32) not null REFERENCES "users"(username) ON UPDATE CASCADE ON DELETE RESTRICT,
create_time TIMESTAMP WITH TIME ZONE not null DEFAULT date_trunc('minute', CURRENT_TIMESTAMP),
sensor_location TEXT[]
);
@@ -1,13 +0,0 @@
-- [BURST_LOCATE_RESULT]
-- 王名豪
-- 2025/04/19
-- 存储爆管侦测定位结果
CREATE TABLE burst_locate_result (
id SERIAL PRIMARY KEY,
type varchar(32) not null,
burst_incident varchar(32) not null,
leakage float,
detect_time TIMESTAMP WITH TIME ZONE not null DEFAULT date_trunc('minute', CURRENT_TIMESTAMP),
locate_result JSON
)
-19
View File
@@ -1,19 +0,0 @@
-- [PIPES]
create type pipes_status as enum ('OPEN', 'CLOSED', 'CV');
create table pipes
(
id varchar(32) primary key references _link(id)
, node1 varchar(32) references _node(id) not null
, node2 varchar(32) references _node(id) not null
, length float8 not null
, diameter float8 not null
, roughness float8 not null
, minor_loss float8 not null
, status pipes_status not null
, check (node1 <> node2)
);
-- delete when delete node1
-- delete when delete node2
-19
View File
@@ -1,19 +0,0 @@
-- [PUMPS]
create table pumps
(
id varchar(32) primary key references _link(id)
, node1 varchar(32) references _node(id) not null
, node2 varchar(32) references _node(id) not null
, power float8
, head varchar(32) references _curve(id)
, speed float8
, pattern varchar(32) references _pattern(id)
, check (power is not null or head is not null)
, check ((power is not null and head is not null) is false)
);
-- delete when delete node1
-- delete when delete node2
-- unset head when delete curve
-- unset pattern when delete pattern
-17
View File
@@ -1,17 +0,0 @@
-- [VALVES]
create type valves_type as enum ('PRV', 'PSV', 'PBV', 'FCV', 'TCV', 'GPV');
create table valves
(
id varchar(32) primary key references _link(id)
, node1 varchar(32) references _node(id) not null
, node2 varchar(32) references _node(id) not null
, diameter float8 not null
, v_type valves_type not null
, setting text not null
, minor_loss float8 not null
);
-- delete when delete node1
-- delete when delete node2
-17
View File
@@ -1,17 +0,0 @@
-- [TAGS]
create table tags_node
(
id varchar(32) primary key references _node(id)
, tag text not null
);
-- delete when delete node
create table tags_link
(
id varchar(32) primary key references _link(id)
, tag text not null
);
-- delete when delete link

Some files were not shown because too many files have changed in this diff Show More