refactor(db)!: finalize pooled WNDB v2 migration
This commit is contained in:
@@ -3,15 +3,12 @@ from Cython.Build import cythonize
|
||||
|
||||
setup(ext_modules=cythonize([
|
||||
"tjnetwork.py",
|
||||
"online_Analysis.py",
|
||||
"sensitivity.py",
|
||||
"run_simlation.py",
|
||||
"run_simulation.py",
|
||||
"get_hist_data.py",
|
||||
"get_realValue.py",
|
||||
"get_data.py",
|
||||
"get_current_total_Q.py",
|
||||
"get_current_status.py",
|
||||
"simulation.py",
|
||||
"time_api.py",
|
||||
"api/*.py",
|
||||
|
||||
@@ -1,5 +1,26 @@
|
||||
from app.services.tjnetwork import clean_project, delete_project
|
||||
import argparse
|
||||
from collections.abc import Sequence
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
if __name__ == '__main__':
|
||||
clean_project()
|
||||
delete_project('project')
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
||||
|
||||
from app.native.wndb.core.projects import clean_project
|
||||
|
||||
|
||||
def parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace:
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Delete explicitly named temporary project databases.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--yes",
|
||||
action="store_true",
|
||||
required=True,
|
||||
help="confirm permanent deletion of every named database",
|
||||
)
|
||||
parser.add_argument("projects", nargs="+", help="project database names to delete")
|
||||
return parser.parse_args(argv)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
clean_project(parse_args().projects)
|
||||
|
||||
@@ -1,136 +0,0 @@
|
||||
import psycopg as pg
|
||||
|
||||
sql_create = [
|
||||
"script/sql/create/0.base.sql",
|
||||
"script/sql/create/1.title.sql",
|
||||
"script/sql/create/2.junctions.sql",
|
||||
"script/sql/create/3.reservoirs.sql",
|
||||
"script/sql/create/4.tanks.sql",
|
||||
"script/sql/create/5.pipes.sql",
|
||||
"script/sql/create/6.pumps.sql",
|
||||
"script/sql/create/7.valves.sql",
|
||||
"script/sql/create/8.tags.sql",
|
||||
"script/sql/create/9.demands.sql",
|
||||
"script/sql/create/10.status.sql",
|
||||
"script/sql/create/11.patterns.sql",
|
||||
"script/sql/create/12.curves.sql",
|
||||
"script/sql/create/13.controls.sql",
|
||||
"script/sql/create/14.rules.sql",
|
||||
"script/sql/create/15.energy.sql",
|
||||
"script/sql/create/16.emitters.sql",
|
||||
"script/sql/create/17.quality.sql",
|
||||
"script/sql/create/18.sources.sql",
|
||||
"script/sql/create/19.reactions.sql",
|
||||
"script/sql/create/20.mixing.sql",
|
||||
"script/sql/create/21.times.sql",
|
||||
"script/sql/create/22.report.sql",
|
||||
"script/sql/create/23.options.sql",
|
||||
"script/sql/create/24.coordinates.sql",
|
||||
"script/sql/create/25.vertices.sql",
|
||||
"script/sql/create/26.labels.sql",
|
||||
"script/sql/create/27.backdrop.sql",
|
||||
"script/sql/create/28.end.sql",
|
||||
"script/sql/create/29.scada_device.sql",
|
||||
"script/sql/create/30.scada_device_data.sql",
|
||||
"script/sql/create/31.scada_element.sql",
|
||||
"script/sql/create/32.region.sql",
|
||||
"script/sql/create/33.dma.sql",
|
||||
"script/sql/create/34.sa.sql",
|
||||
"script/sql/create/35.vd.sql",
|
||||
"script/sql/create/36.wda.sql",
|
||||
"script/sql/create/37.history_patterns_flows.sql",
|
||||
"script/sql/create/38.scada_info.sql",
|
||||
"script/sql/create/40.scheme_list.sql",
|
||||
"script/sql/create/41.pipe_risk_probability.sql",
|
||||
"script/sql/create/42.sensor_placement.sql",
|
||||
"script/sql/create/43.burst_locate_result.sql",
|
||||
"script/sql/create/44.leakage_identify_result.sql",
|
||||
"script/sql/create/extension_data.sql",
|
||||
"script/sql/create/operation.sql"
|
||||
]
|
||||
|
||||
sql_drop = [
|
||||
"script/sql/drop/operation.sql",
|
||||
"script/sql/drop/extension_data.sql",
|
||||
"script/sql/drop/43.burst_locate_result.sql",
|
||||
"script/sql/drop/42.sensor_placement.sql",
|
||||
"script/sql/drop/44.leakage_identify_result.sql",
|
||||
"script/sql/drop/41.pipe_risk_probability.sql",
|
||||
"script/sql/drop/40.scheme_list.sql",
|
||||
"script/sql/drop/38.scada_info.sql",
|
||||
"script/sql/drop/37.history_patterns_flows.sql",
|
||||
"script/sql/drop/36.wda.sql",
|
||||
"script/sql/drop/35.vd.sql",
|
||||
"script/sql/drop/34.sa.sql",
|
||||
"script/sql/drop/33.dma.sql",
|
||||
"script/sql/drop/32.region.sql",
|
||||
"script/sql/drop/31.scada_element.sql",
|
||||
"script/sql/drop/30.scada_device_data.sql",
|
||||
"script/sql/drop/29.scada_device.sql",
|
||||
"script/sql/drop/28.end.sql",
|
||||
"script/sql/drop/27.backdrop.sql",
|
||||
"script/sql/drop/26.labels.sql",
|
||||
"script/sql/drop/25.vertices.sql",
|
||||
"script/sql/drop/24.coordinates.sql",
|
||||
"script/sql/drop/23.options.sql",
|
||||
"script/sql/drop/22.report.sql",
|
||||
"script/sql/drop/21.times.sql",
|
||||
"script/sql/drop/20.mixing.sql",
|
||||
"script/sql/drop/19.reactions.sql",
|
||||
"script/sql/drop/18.sources.sql",
|
||||
"script/sql/drop/17.quality.sql",
|
||||
"script/sql/drop/16.emitters.sql",
|
||||
"script/sql/drop/15.energy.sql",
|
||||
"script/sql/drop/14.rules.sql",
|
||||
"script/sql/drop/13.controls.sql",
|
||||
"script/sql/drop/12.curves.sql",
|
||||
"script/sql/drop/11.patterns.sql",
|
||||
"script/sql/drop/10.status.sql",
|
||||
"script/sql/drop/9.demands.sql",
|
||||
"script/sql/drop/8.tags.sql",
|
||||
"script/sql/drop/7.valves.sql",
|
||||
"script/sql/drop/6.pumps.sql",
|
||||
"script/sql/drop/5.pipes.sql",
|
||||
"script/sql/drop/4.tanks.sql",
|
||||
"script/sql/drop/3.reservoirs.sql",
|
||||
"script/sql/drop/2.junctions.sql",
|
||||
"script/sql/drop/1.title.sql",
|
||||
"script/sql/drop/0.base.sql"
|
||||
]
|
||||
|
||||
def create_template():
|
||||
with pg.connect(conninfo="dbname=postgres host=127.0.0.1", autocommit=True) as conn:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute("create database project")
|
||||
with pg.connect(conninfo="dbname=project host=127.0.0.1") as conn:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute('create extension postgis cascade')
|
||||
cur.execute('create extension pgrouting cascade')
|
||||
for sql in sql_create:
|
||||
with open(sql, "r", encoding="utf-8") as f:
|
||||
cur.execute(f.read())
|
||||
print(f'executed {sql}')
|
||||
conn.commit()
|
||||
|
||||
def have_template():
|
||||
with pg.connect(conninfo="dbname=postgres host=127.0.0.1", autocommit=True) as conn:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute("select * from pg_database where datname = 'project'")
|
||||
return cur.rowcount > 0
|
||||
|
||||
def delete_template():
|
||||
with pg.connect(conninfo="dbname=project host=127.0.0.1") as conn:
|
||||
with conn.cursor() as cur:
|
||||
for sql in sql_drop:
|
||||
with open(sql, "r", encoding="utf-8") as f:
|
||||
cur.execute(f.read())
|
||||
print(f'executed {sql}')
|
||||
conn.commit()
|
||||
with pg.connect(conninfo="dbname=postgres host=127.0.0.1", autocommit=True) as conn:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute("drop database project")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if (have_template()):
|
||||
delete_template()
|
||||
create_template()
|
||||
@@ -1,7 +1,5 @@
|
||||
from app.services.tjnetwork import list_project, read_inp
|
||||
read_inp("beibeizone","beibeizone.inp")
|
||||
#open_project('beibeizone')
|
||||
#generate_service_area("beibeizone",0.00001)
|
||||
|
||||
print(list_project())
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
from app.services.tjnetwork import calculate_service_area, open_project, read_inp
|
||||
|
||||
p = 'dev'
|
||||
|
||||
read_inp(p, f'./inp/net3.inp', '3')
|
||||
open_project(p)
|
||||
|
||||
sass = calculate_service_area(p)
|
||||
assert len(sass) == 25
|
||||
|
||||
assert sass[0]['River'] == ['River', '60', '61', '123', '601']
|
||||
assert sass[0]['3'] == ['121', '120', '119', '117', '257', '151', '157', '115', '259', '261', '149', '159', '111', '113', '263', '147', '161', '197', '193', '105', '145', '163', '195', '191', '267', '107', '141', '164', '265', '187', '189', '143', '166', '169', '204', '15', '167', '171', '269', '173', '271', '199', '201', '203', '3', '20', '127', '125', '129', '153', '131', '139']
|
||||
assert sass[0]['1'] == ['185', '184', '205', '273', '1', '40', '179', '177', '183', '181', '35']
|
||||
assert sass[0]['2'] == ['207', '275', '2', '50', '255', '247', '253', '251', '241', '249', '239', '243', '237', '211', '229', '209', '213', '231', '208', '215', '206', '217', '219', '225']
|
||||
|
||||
print(sass[1])
|
||||
assert sass[0]['River'] == ['River', '60', '61', '123', '601']
|
||||
assert sass[0]['3'] == ['121', '120', '119', '117', '257', '151', '157', '115', '259', '261', '149', '159', '111', '113', '263', '147', '161', '197', '193', '145', '163', '195', '191', '141', '164', '265', '187', '143', '166', '169', '267', '204', '15', '167', '171', '269', '173', '199', '201', '203', '3', '20', '127', '125', '129', '153', '131', '139']
|
||||
assert sass[0]['Lake'] == ['105', '107', 'Lake', '10', '101', '103', '109']
|
||||
assert sass[0]['1'] == ['189', '185', '271', '184', '205', '273', '1', '40', '179', '177', '183', '181', '35']
|
||||
assert sass[0]['2'] == ['207', '275', '2', '50', '255', '247', '253', '251', '241', '249', '239', '243', '237', '211', '229', '209', '213', '231', '208', '215', '206', '217', '219', '225']
|
||||
@@ -1,66 +0,0 @@
|
||||
from app.services.tjnetwork import api, get_all_service_area_ids, open_project
|
||||
from get_realValue import *
|
||||
from get_hist_data import *
|
||||
import datetime
|
||||
from api.s36_wda_cal import *
|
||||
|
||||
|
||||
ids=['2498','3854','3853','2510','2514','4780','4854']
|
||||
cur_data=None
|
||||
|
||||
|
||||
def get_latest_cal_time()->datetime:
|
||||
current_time=datetime.datetime.now()
|
||||
return current_time
|
||||
|
||||
|
||||
def get_current_data(str_datetime: str=None)->bool:
|
||||
global cur_data
|
||||
if str_datetime==None:
|
||||
cur_data=get_realValue(ids)
|
||||
else:
|
||||
cur_date=get_hist_data(ids,str_datetime)
|
||||
if cur_data ==None:
|
||||
return False
|
||||
return True
|
||||
|
||||
def get_current_total_Q(str_dt:str='')->float:
|
||||
q_ids=['2498','3854','3853']
|
||||
q_dn900=cur_data[q_ids[0]]
|
||||
q_dn500=cur_data[q_ids[1]]
|
||||
q_dn1000=cur_data[q_ids[2]]
|
||||
total_q=q_dn1000+q_dn500+q_dn900
|
||||
return total_q
|
||||
|
||||
def get_h_pressure()->float:
|
||||
head_id='2510'
|
||||
h_pressure=cur_data[head_id]
|
||||
return h_pressure
|
||||
|
||||
def get_l_pressure()->float:
|
||||
head_id='2514'
|
||||
l_pressure=cur_data[head_id]
|
||||
return l_pressure
|
||||
|
||||
def get_h_tank_leve()->float:
|
||||
h_tank_id='4780'
|
||||
h_tank_level=cur_data[h_tank_id]
|
||||
return h_tank_level
|
||||
|
||||
def get_l_tank_leve()->float:
|
||||
l_tank_id='4854'
|
||||
l_tank_level=cur_data[l_tank_id]
|
||||
return l_tank_level
|
||||
|
||||
|
||||
# test interface
|
||||
if __name__ == '__main__':
|
||||
# if get_current_data()==True:
|
||||
# tQ=get_current_total_Q()
|
||||
# print(f"the current tQ is {tQ}\n")
|
||||
# data=get_hist_data(ids,conver_beingtime_to_ucttime('2024-04-10 15:05:00'),conver_beingtime_to_ucttime('2024-04-10 15:10:00'))
|
||||
open_project("beibeizone")
|
||||
regions=get_all_service_area_ids("beibeizone")
|
||||
for region in regions:
|
||||
t_basedmds=api.s36_wda_cal.get_total_base_demand("beibeizone",region)
|
||||
print(f"{region}:{t_basedmds}")
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +0,0 @@
|
||||
import sys
|
||||
from app.services.tjnetwork import open_project
|
||||
|
||||
def main():
|
||||
open_project('szh')
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,15 +0,0 @@
|
||||
import sys
|
||||
from app.services.tjnetwork import close_project, open_project, restore
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2:
|
||||
print("restore_project name")
|
||||
return
|
||||
|
||||
p = sys.argv[1]
|
||||
open_project(p)
|
||||
restore(p)
|
||||
close_project(p)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,11 +0,0 @@
|
||||
from app.services.tjnetwork import close_project, list_project, open_project, restore
|
||||
|
||||
def main():
|
||||
for p in list_project():
|
||||
print(f'restore {p}...')
|
||||
open_project(p)
|
||||
restore(p)
|
||||
close_project(p)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,8 +0,0 @@
|
||||
from app.services.tjnetwork import open_project
|
||||
from get_current_status import *
|
||||
|
||||
def run_simulation(cur_datetime:str=None)->str:
|
||||
|
||||
open_project('beibei_skeleton')
|
||||
|
||||
return
|
||||
Reference in New Issue
Block a user