cloudpss 4.1.1b9__tar.gz → 4.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/PKG-INFO +1 -1
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/__init__.py +2 -3
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/job/job.py +2 -2
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/function/functionExecution.py +26 -3
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/ieslab/DataManageModel.py +119 -46
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/ieslab/EvaluationModel.py +80 -9
- cloudpss-4.5.0/cloudpss/ieslab/IESLabOpt.py +235 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/ieslab/IESLabPlan.py +4 -4
- cloudpss-4.5.0/cloudpss/ieslab/PlanModel.py +386 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/ieslab/__init__.py +2 -1
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/job/job.py +27 -19
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/job/jobReceiver.py +2 -2
- cloudpss-4.1.1b9/cloudpss/job/view/EMTView.py → cloudpss-4.5.0/cloudpss/job/result/EMTResult.py +2 -2
- cloudpss-4.5.0/cloudpss/job/result/IESLabSimulationResult.py +5 -0
- cloudpss-4.1.1b9/cloudpss/job/view/IESLabTypicalDayView.py → cloudpss-4.5.0/cloudpss/job/result/IESLabTypicalDayResult.py +3 -3
- cloudpss-4.1.1b9/cloudpss/job/view/IESView.py → cloudpss-4.5.0/cloudpss/job/result/IESResult.py +2 -2
- cloudpss-4.1.1b9/cloudpss/job/view/PowerFlowView.py → cloudpss-4.5.0/cloudpss/job/result/PowerFlowResult.py +2 -2
- cloudpss-4.5.0/cloudpss/job/result/__init__.py +39 -0
- cloudpss-4.1.1b9/cloudpss/job/view/view.py → cloudpss-4.5.0/cloudpss/job/result/result.py +1 -1
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/model/model.py +82 -47
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/model/revision.py +3 -3
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/model/topology.py +2 -2
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/runner/IESLabEvaluationResult.py +14 -6
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/runner/IESLabPlanResult.py +91 -35
- cloudpss-4.5.0/cloudpss/runner/IESLabTypicalDayResult.py +154 -0
- cloudpss-4.5.0/cloudpss/runner/MessageStreamReceiver.py +98 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/runner/result.py +6 -1
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/runner/runner.py +77 -48
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/utils/IO.py +1 -1
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/utils/graphqlUtil.py +3 -2
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/utils/httprequests.py +10 -3
- cloudpss-4.5.0/cloudpss/version.py +1 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss.egg-info/PKG-INFO +1 -1
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss.egg-info/SOURCES.txt +15 -15
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss.egg-info/requires.txt +1 -1
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/setup.py +1 -1
- cloudpss-4.5.0/test/test-plot.py +42 -0
- cloudpss-4.5.0/test/test-plot1.py +0 -0
- cloudpss-4.5.0/test/test-topology.py +41 -0
- cloudpss-4.1.1b9/test/test-topology.py → cloudpss-4.5.0/test/test-topology1.py +9 -7
- cloudpss-4.5.0/test/test-yield.py +16 -0
- cloudpss-4.5.0/test/test11.py +69 -0
- cloudpss-4.5.0/test/test12.py +21 -0
- cloudpss-4.5.0/test/testRt-test.py +148 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/testRt.py +8 -6
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/testRt2.py +1 -1
- cloudpss-4.5.0/test/test_modepower_ampratio(3).py +244 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test_ws.py +1 -1
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test_ws2.py +1 -1
- cloudpss-4.1.1b9/cloudpss/dslab/__init__.py +0 -2
- cloudpss-4.1.1b9/cloudpss/dslab/dataManageModel.py +0 -275
- cloudpss-4.1.1b9/cloudpss/dslab/dslab.py +0 -304
- cloudpss-4.1.1b9/cloudpss/dslab/files/__init__.py +0 -2
- cloudpss-4.1.1b9/cloudpss/dslab/files/curveData.py +0 -140229
- cloudpss-4.1.1b9/cloudpss/dslab/files/files.py +0 -27
- cloudpss-4.1.1b9/cloudpss/dslab/financialAnalysisModel.py +0 -137
- cloudpss-4.1.1b9/cloudpss/ieslab/PlanModel.py +0 -147
- cloudpss-4.1.1b9/cloudpss/job/view/IESLabSimulationView.py +0 -5
- cloudpss-4.1.1b9/cloudpss/job/view/__init__.py +0 -42
- cloudpss-4.1.1b9/cloudpss/runner/DSLabResult.py +0 -92
- cloudpss-4.1.1b9/cloudpss/runner/IESLabTypicalDayResult.py +0 -142
- cloudpss-4.1.1b9/cloudpss/runner/MessageStreamReceiver.py +0 -195
- cloudpss-4.1.1b9/cloudpss/version.py +0 -1
- cloudpss-4.1.1b9/test/test-plot.py +0 -16
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/README.md +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/job/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/job/messageStreamReceiver.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/job/messageStreamSender.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/model/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/model/model.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/model/revision.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/model/topology.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/utils/AsyncIterable.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/utils/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/asyncio/utils/httpAsyncRequest.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/function/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/function/function.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/function/job.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/ieslab/IESLabSimulation.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/job/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/job/messageStreamReceiver.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/job/messageStreamSender.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/model/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/model/implements/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/model/implements/component.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/model/implements/diagram.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/model/implements/implement.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/model/jobDefinitions.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/project/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/project/project.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/runner/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/runner/receiver.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/runner/storage.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/runner/transform.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/utils/__init__.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/utils/dataEncoder.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/utils/matlab.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/utils/yamlLoader.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss/verify.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss.egg-info/dependency_links.txt +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/cloudpss.egg-info/top_level.txt +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/setup.cfg +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test-async.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test-async2.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test-async3.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test-sdk.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test-sdk1.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test-snapshot.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test7950.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/testAsync.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/testEvent.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/testSend.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/test_in_new_web_1.py +0 -0
- {cloudpss-4.1.1b9 → cloudpss-4.5.0}/test/testb.py +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
# coding=UTF-8
|
2
|
-
from cloudpss.ieslab import IESLabSimulation, IESLabPlan
|
2
|
+
from cloudpss.ieslab import IESLabSimulation, IESLabPlan, IESLabOpt
|
3
3
|
from .verify import setToken
|
4
4
|
from .runner import Runner, Result, EMTResult, PowerFlowResult
|
5
5
|
from .model import Model, ModelRevision, ModelTopology
|
@@ -9,11 +9,10 @@ from . import function
|
|
9
9
|
from .job import Job
|
10
10
|
from .function import FunctionExecution
|
11
11
|
from .version import __version__
|
12
|
-
from .dslab import DSLab
|
13
12
|
__all__ = [
|
14
13
|
'setToken', 'Model', 'ModelRevision', 'ModelTopology', 'Runner', 'Result',
|
15
14
|
'PowerFlowResult', 'EMTResult', 'MatlabDataEncoder', 'DateTimeEncode',
|
16
|
-
'function', 'Project', 'currentJob', 'IESLabSimulation', 'IESLabPlan','
|
15
|
+
'function', 'Project', 'currentJob', 'IESLabSimulation', 'IESLabPlan','IESLabOpt','__version__','Job'
|
17
16
|
]
|
18
17
|
|
19
18
|
|
@@ -72,13 +72,13 @@ class Job(JobBase):
|
|
72
72
|
variables = {"input": {"id": id, "timeout": timeout}}
|
73
73
|
await graphql_request(query, variables)
|
74
74
|
|
75
|
-
async def
|
75
|
+
async def result(self, resultType:F)->F:
|
76
76
|
"""
|
77
77
|
获取当前运行实例的输出
|
78
78
|
"""
|
79
79
|
receiver = await self.read()
|
80
80
|
sender = await self.write()
|
81
|
-
self._result=
|
81
|
+
self._result= resultType(receiver, sender)
|
82
82
|
return self._result
|
83
83
|
|
84
84
|
async def write(self, sender=None, dev=False, **kwargs) -> MessageStreamSender:
|
@@ -99,6 +99,26 @@ class FunctionExecution(object):
|
|
99
99
|
self._args = val
|
100
100
|
|
101
101
|
@staticmethod
|
102
|
+
def __listObj2Array(data):
|
103
|
+
arr=[]
|
104
|
+
for item in data:
|
105
|
+
if type(item) is list:
|
106
|
+
arr.append(FunctionExecution.__listObj2Array(item))
|
107
|
+
elif type(item) is dict and ('ɵid' in item or '?id' in item ):
|
108
|
+
a = list(range(len(item)-1))
|
109
|
+
for k, v in item.items():
|
110
|
+
if k == 'ɵid' or k == '?id':
|
111
|
+
continue
|
112
|
+
k = int(k)
|
113
|
+
if type(v) is list:
|
114
|
+
a[k] = FunctionExecution.__listObj2Array(v)
|
115
|
+
else:
|
116
|
+
a[k] = v
|
117
|
+
arr.append(a)
|
118
|
+
else:
|
119
|
+
arr.append(item)
|
120
|
+
return arr
|
121
|
+
@staticmethod
|
102
122
|
def __loadArgs():
|
103
123
|
"""加载当前任务参数
|
104
124
|
|
@@ -110,9 +130,12 @@ class FunctionExecution(object):
|
|
110
130
|
if k.startswith('CLOUDPSS_JOB_ARG-'):
|
111
131
|
s = k.split('-')
|
112
132
|
key = bytes.decode(bytes.fromhex(s[1]))
|
113
|
-
|
114
|
-
|
115
|
-
|
133
|
+
data = json.loads(v)
|
134
|
+
|
135
|
+
if type(data) is list:
|
136
|
+
data = FunctionExecution.__listObj2Array(data)
|
137
|
+
|
138
|
+
args[key] = data
|
116
139
|
return args
|
117
140
|
|
118
141
|
def feedDog(self):
|
@@ -83,46 +83,21 @@ class DataManageModel(object):
|
|
83
83
|
|
84
84
|
:return: 无
|
85
85
|
'''
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
for val in data:
|
102
|
-
self._itemDataMap[str(val['timeid'])]=val
|
103
|
-
self._itemDataMap[str(val['id'])]=val
|
104
|
-
self._kindIdMap[str(val['timeid'])]=k
|
105
|
-
self._kindIdMap[str(val['id'])]=k
|
106
|
-
except Exception as e:
|
107
|
-
print('获取数据失败',e)
|
108
|
-
pass
|
109
|
-
|
110
|
-
# list = ['thermalLoads', 'electricLoads', 'fuels', 'typhoon', 'rainfall', 'earthquake', 'extremeCold']
|
111
|
-
# for kind,value in self._kindUrlMap.items():
|
112
|
-
# try:
|
113
|
-
|
114
|
-
# if kind in list:
|
115
|
-
# dataList = self._fetchItemData(self._kindUrlMap[kind], None)
|
116
|
-
# else:
|
117
|
-
# dataList = self._fetchItemData(self._kindUrlMap[kind], kind)
|
118
|
-
# except Exception as e:
|
119
|
-
# pass
|
120
|
-
# self._kindItemDataMap[kind]=dataList
|
121
|
-
# for val in dataList:
|
122
|
-
# self._itemDataMap[str(val['timeid'])]=val
|
123
|
-
# self._itemDataMap[str(val['id'])]=val
|
124
|
-
# self._kindIdMap[str(val['timeid'])]=kind
|
125
|
-
# self._kindIdMap[str(val['id'])]=kind
|
86
|
+
list = ['thermalLoads', 'heatingLoad', 'coolingLoad', 'electricLoads', 'fuels', 'typhoon', 'rainfall', 'earthquake', 'extremeCold', 'HydrogenLoad']
|
87
|
+
for kind,value in self._kindUrlMap.items():
|
88
|
+
try:
|
89
|
+
if kind in list:
|
90
|
+
dataList = self._fetchItemData(self._kindUrlMap[kind], None)
|
91
|
+
else:
|
92
|
+
dataList = self._fetchItemData(self._kindUrlMap[kind], kind)
|
93
|
+
except Exception as e:
|
94
|
+
pass
|
95
|
+
self._kindItemDataMap[kind]=dataList
|
96
|
+
for val in dataList:
|
97
|
+
self._itemDataMap[str(val['timeid'])]=val
|
98
|
+
self._itemDataMap[str(val['id'])]=val
|
99
|
+
self._kindIdMap[str(val['timeid'])]=kind
|
100
|
+
self._kindIdMap[str(val['id'])]=kind
|
126
101
|
|
127
102
|
def GetDataItem(self, ID: str):
|
128
103
|
'''
|
@@ -132,6 +107,7 @@ class DataManageModel(object):
|
|
132
107
|
|
133
108
|
:return: dict类型,为源数据的引用,返回该数据项的信息
|
134
109
|
'''
|
110
|
+
|
135
111
|
data = self._itemDataMap.get(str(ID),None)
|
136
112
|
|
137
113
|
assert (data is not None), "找不到数据"
|
@@ -175,7 +151,7 @@ class DataManageModel(object):
|
|
175
151
|
self._kindIdMap[str(data['id'])]=kind
|
176
152
|
self._itemDataMap[str(data['timeid'])]=data
|
177
153
|
self._itemDataMap[str(data['id'])]=data
|
178
|
-
if kind in ['thermalLoads', 'electricLoads', 'fuels']:
|
154
|
+
if kind in ['thermalLoads', 'heatingLoad','coolingLoad', 'electricLoads', 'fuels']:
|
179
155
|
dataList = self._fetchItemData(self._kindUrlMap[kind], None)
|
180
156
|
self._kindItemDataMap[kind] = dataList
|
181
157
|
return dataList[-1]['id']
|
@@ -362,7 +338,7 @@ class IESSimulationDataManageModel(DataManageModel):
|
|
362
338
|
"台风灾害": "typhoon",
|
363
339
|
"降雨灾害": "rainfall",
|
364
340
|
"地震灾害": "earthquake",
|
365
|
-
"极寒灾害": "extremeCold"
|
341
|
+
"极寒灾害": "extremeCold",
|
366
342
|
}
|
367
343
|
_kindUrlMap = {
|
368
344
|
"PhotovoltaicSys": "api/ieslab-simulation/rest/dpcs/",
|
@@ -392,7 +368,7 @@ class IESSimulationDataManageModel(DataManageModel):
|
|
392
368
|
"typhoon": "api/ieslab-simulation/rest/typhoon/",
|
393
369
|
"rainfall": "api/ieslab-simulation/rest/rainfall/",
|
394
370
|
"earthquake": "api/ieslab-simulation/rest/earthquake/",
|
395
|
-
"extremeCold": "api/ieslab-simulation/rest/extremeCold/"
|
371
|
+
"extremeCold": "api/ieslab-simulation/rest/extremeCold/",
|
396
372
|
}
|
397
373
|
pass
|
398
374
|
|
@@ -412,6 +388,7 @@ class IESPlanDataManageModel(DataManageModel):
|
|
412
388
|
"吸收式制冷机": "AbsorptionChiller",
|
413
389
|
"蓄电池": "Battery",
|
414
390
|
"储水罐": "WaterTank",
|
391
|
+
"蓄冰空调": "IceStorageAC",
|
415
392
|
"变压器": "Transformer",
|
416
393
|
"传输线": "TransferLine",
|
417
394
|
"模块化多电平变流器": "MMC",
|
@@ -429,7 +406,8 @@ class IESPlanDataManageModel(DataManageModel):
|
|
429
406
|
"台风灾害": "typhoon",
|
430
407
|
"降雨灾害": "rainfall",
|
431
408
|
"地震灾害": "earthquake",
|
432
|
-
"极寒灾害": "extremeCold"
|
409
|
+
"极寒灾害": "extremeCold",
|
410
|
+
"换热器": "HeatExchanger",
|
433
411
|
}
|
434
412
|
_kindUrlMap = {
|
435
413
|
"PhotovoltaicSys": "api/ieslab-plan/rest/dpcs/",
|
@@ -438,10 +416,11 @@ class IESPlanDataManageModel(DataManageModel):
|
|
438
416
|
"HeatPump": "api/ieslab-plan/rest/dhscs/",
|
439
417
|
"GasBoiler": "api/ieslab-plan/rest/dhscs/",
|
440
418
|
"HPSolarCollector": "api/ieslab-plan/rest/dhscs/",
|
441
|
-
"CompRefrg": "api/ieslab-
|
419
|
+
"CompRefrg": "api/ieslab-simulation/rest/dhscs/",
|
442
420
|
"AbsorptionChiller": "api/ieslab-plan/rest/dhscs/",
|
443
421
|
"Battery": "api/ieslab-plan/rest/escs/",
|
444
422
|
"WaterTank": "api/ieslab-plan/rest/escs/",
|
423
|
+
"IceStorageAC": "api/ieslab-plan/rest/escs/",
|
445
424
|
"Transformer": "api/ieslab-plan/rest/dstcs/",
|
446
425
|
"TransferLine": "api/ieslab-plan/rest/dstcs/",
|
447
426
|
"MMC": "api/ieslab-plan/rest/dstcs/",
|
@@ -459,6 +438,100 @@ class IESPlanDataManageModel(DataManageModel):
|
|
459
438
|
"typhoon": "api/ieslab-plan/rest/typhoon/",
|
460
439
|
"rainfall": "api/ieslab-plan/rest/rainfall/",
|
461
440
|
"earthquake": "api/ieslab-plan/rest/earthquake/",
|
462
|
-
"extremeCold": "api/ieslab-plan/rest/extremeCold/"
|
441
|
+
"extremeCold": "api/ieslab-plan/rest/extremeCold/",
|
442
|
+
"HeatExchanger": "api/ieslab-plan/rest/hstcs/",
|
443
|
+
}
|
444
|
+
pass
|
445
|
+
|
446
|
+
class IESOptDataManageModel(DataManageModel):
|
447
|
+
_baseUri = 'api/ieslab-opt/'
|
448
|
+
_weatherUrl = 'api/ieslab-opt/rest/weather_data/'
|
449
|
+
_kindNameMap = {
|
450
|
+
"光伏": "PhotovoltaicSys",
|
451
|
+
"风机": "WindPowerGenerator",
|
452
|
+
"燃料发电机组": "GasTurbine",
|
453
|
+
"空气源热泵": "HeatPump",
|
454
|
+
"燃气锅炉": "GasBoiler",
|
455
|
+
"太阳能集热器": "HPSolarCollector",
|
456
|
+
"单工况制冷机": "SingleConChiller",
|
457
|
+
"双工况制冷机": "DualConChiller",
|
458
|
+
"吸收式制冷机": "AbsorptionChiller",
|
459
|
+
"蓄电池": "Battery",
|
460
|
+
"蓄冰槽": "IceStorageAC",
|
461
|
+
"变压器": "Transformer",
|
462
|
+
"传输线": "TransferLine",
|
463
|
+
"模块化多电平变流器": "MMC",
|
464
|
+
"离心泵": "CentrifugalPump",
|
465
|
+
"管道": "Pipe",
|
466
|
+
"热负荷": "heatingLoad",
|
467
|
+
"冷负荷": "coolingLoad",
|
468
|
+
"电负荷": "electricLoads",
|
469
|
+
"燃料": "fuels",
|
470
|
+
"热": "HVACHeating",
|
471
|
+
"冷": "HVACCooling",
|
472
|
+
"常数电价": "常数电价",
|
473
|
+
"分时电价": "分时电价",
|
474
|
+
"阶梯电价": "阶梯电价",
|
475
|
+
"分时阶梯电价": "分时阶梯电价",
|
476
|
+
"台风灾害": "typhoon",
|
477
|
+
"降雨灾害": "rainfall",
|
478
|
+
"地震灾害": "earthquake",
|
479
|
+
"极寒灾害": "extremeCold",
|
480
|
+
"PEM燃料电池": "PEMF",
|
481
|
+
"SOFC": "SOFC",
|
482
|
+
"碱性电解槽": "ALK",
|
483
|
+
"PEM电解槽": "PEME",
|
484
|
+
"SOEC": "SOEC",
|
485
|
+
"储氢罐": "HydrogenTank",
|
486
|
+
"储热罐": "HeatStoTank",
|
487
|
+
"换热器": "HeatExchanger",
|
488
|
+
"氢气压缩设备": "HydrogenCompression",
|
489
|
+
"氢负荷": "HydrogenLoad",
|
490
|
+
"氢": "HydrogenProductionFuels",
|
491
|
+
"运氢槽车": "HydrogenTanker"
|
492
|
+
}
|
493
|
+
_kindUrlMap = {
|
494
|
+
"PhotovoltaicSys": "api/ieslab-opt/rest/dpcs/",
|
495
|
+
"WindPowerGenerator": "api/ieslab-opt/rest/dpcs/",
|
496
|
+
"GasTurbine": "api/ieslab-opt/rest/dpcs/",
|
497
|
+
"HeatPump": "api/ieslab-opt/rest/dhscs/",
|
498
|
+
"GasBoiler": "api/ieslab-opt/rest/dhscs/",
|
499
|
+
"HPSolarCollector": "api/ieslab-opt/rest/dhscs/",
|
500
|
+
"SingleConChiller": "api/ieslab-opt/rest/dhscs/",
|
501
|
+
"DualConChiller": "api/ieslab-opt/rest/dhscs/",
|
502
|
+
"AbsorptionChiller": "api/ieslab-opt/rest/dhscs/",
|
503
|
+
"Battery": "api/ieslab-opt/rest/escs/",
|
504
|
+
"IceStorageAC": "api/ieslab-opt/rest/escs/",
|
505
|
+
"Transformer": "api/ieslab-opt/rest/dstcs/",
|
506
|
+
"TransferLine": "api/ieslab-opt/rest/dstcs/",
|
507
|
+
"MMC": "api/ieslab-opt/rest/dstcs/",
|
508
|
+
"CentrifugalPump": "api/ieslab-opt/rest/hstcs/",
|
509
|
+
"Pipe": "api/ieslab-opt/rest/hstcs/",
|
510
|
+
"heatingLoad": "api/ieslab-opt/rest/heatingLoad/",
|
511
|
+
"coolingLoad": "api/ieslab-opt/rest/coolingLoad/",
|
512
|
+
"electricLoads": "api/ieslab-opt/rest/electricLoads/",
|
513
|
+
"fuels": "api/ieslab-opt/rest/fuels/",
|
514
|
+
"HVACHeating": "api/ieslab-opt/rest/hots/",
|
515
|
+
"HVACCooling": "api/ieslab-opt/rest/colds/",
|
516
|
+
"常数电价": "api/ieslab-opt/rest/elects/",
|
517
|
+
"分时电价": "api/ieslab-opt/rest/elects/",
|
518
|
+
"阶梯电价": "api/ieslab-opt/rest/elects/",
|
519
|
+
"分时阶梯电价": "api/ieslab-opt/rest/elects/",
|
520
|
+
"typhoon": "api/ieslab-opt/rest/typhoon/",
|
521
|
+
"rainfall": "api/ieslab-opt/rest/rainfall/",
|
522
|
+
"earthquake": "api/ieslab-opt/rest/earthquake/",
|
523
|
+
"extremeCold": "api/ieslab-opt/rest/extremeCold/",
|
524
|
+
"HydrogenTank": "api/ieslab-opt/rest/escs/",
|
525
|
+
"HeatStoTank": "api/ieslab-opt/rest/escs/",
|
526
|
+
"HeatExchanger": "api/ieslab-opt/rest/hstcs/",
|
527
|
+
"HydrogenCompression": "api/ieslab-opt/rest/hsec/",
|
528
|
+
"HydrogenLoad": "api/ieslab-opt/rest/hydrogenLoad/",
|
529
|
+
"HydrogenProductionFuels": "api/ieslab-opt/rest/hydrogen/",
|
530
|
+
"HydrogenTanker": "api/ieslab-opt/rest/hydrogen/",
|
531
|
+
"PEMF": "api/ieslab-opt/rest/dhscs/",
|
532
|
+
"SOFC": "api/ieslab-opt/rest/dhscs/",
|
533
|
+
"ALK": "api/ieslab-opt/rest/hpc/",
|
534
|
+
"PEME": "api/ieslab-opt/rest/hpc/",
|
535
|
+
"SOEC": "api/ieslab-opt/rest/hpc/",
|
463
536
|
}
|
464
537
|
pass
|
@@ -1,13 +1,14 @@
|
|
1
1
|
import time
|
2
|
-
from cloudpss.runner.runner import HttpRunner, Runner
|
3
|
-
from cloudpss.runner.IESLabEvaluationResult import
|
2
|
+
from cloudpss.runner.runner import HttpRunner, Runner, HttpOPTRunner
|
3
|
+
from cloudpss.runner.IESLabEvaluationResult import IESLabPlanEvaluationResult, IESLabOptEvaluationResult
|
4
4
|
from ..utils import request
|
5
5
|
import json
|
6
6
|
from enum import IntEnum, unique
|
7
7
|
|
8
8
|
class IESLabEvaluationModel(object):
|
9
|
-
_baseUri = '
|
10
|
-
_taskUri = '
|
9
|
+
_baseUri = ''
|
10
|
+
_taskUri = ''
|
11
|
+
_runUri = ''
|
11
12
|
_kindNameMap = {
|
12
13
|
"投资组成": "investmentbanchandproportion",
|
13
14
|
"资金来源": "capitalsource",
|
@@ -123,16 +124,16 @@ class IESLabEvaluationModel(object):
|
|
123
124
|
dict_result[v] = list['results']
|
124
125
|
return dict_result
|
125
126
|
|
126
|
-
def run(self, planID, type=None) ->
|
127
|
+
def run(self, planID, type=None) -> HttpRunner[IESLabPlanEvaluationResult]:
|
127
128
|
'''
|
128
129
|
运行方案评估
|
129
130
|
|
130
131
|
:param planID int类型,表示优化方案的ID,数值位于0~优化方案数量之间
|
131
132
|
:params type: string类型,任务类型:环保评价/能效评价
|
132
133
|
|
133
|
-
:return: Runner[
|
134
|
+
:return: Runner[IESLabPlanEvaluationResult]
|
134
135
|
'''
|
135
|
-
url =
|
136
|
+
url = self._runUri
|
136
137
|
CMD_TYPE = type if type is None else self._evaluationType[type]
|
137
138
|
try:
|
138
139
|
timeId = int(time.time() * 1000)
|
@@ -172,7 +173,7 @@ class IESLabEvaluationModel(object):
|
|
172
173
|
'''
|
173
174
|
return self.run(planID, 'energyEvaluation')
|
174
175
|
|
175
|
-
def GetRunner(self, planID) -> Runner[
|
176
|
+
def GetRunner(self, planID) -> Runner[IESLabPlanEvaluationResult]:
|
176
177
|
'''
|
177
178
|
获得运行实例
|
178
179
|
|
@@ -186,4 +187,74 @@ class IESLabEvaluationModel(object):
|
|
186
187
|
@unique
|
187
188
|
class OptimizationMode(IntEnum):
|
188
189
|
经济性 = 0
|
189
|
-
环保性 = 1
|
190
|
+
环保性 = 1
|
191
|
+
|
192
|
+
|
193
|
+
class IESLabPlanEvaluationModel(IESLabEvaluationModel):
|
194
|
+
_baseUri = 'api/ieslab-plan/rest/'
|
195
|
+
_taskUri = 'api/ieslab-plan/taskmanager/getSimuLastTasks'
|
196
|
+
_runUri = 'api/ieslab-plan/taskmanager/saveDataToclickhouse'
|
197
|
+
|
198
|
+
def run(self, planID, type=None) -> HttpRunner[IESLabPlanEvaluationResult]:
|
199
|
+
'''
|
200
|
+
运行方案评估
|
201
|
+
|
202
|
+
:param planID int类型,表示优化方案的ID,数值位于0~优化方案数量之间
|
203
|
+
:params type: string类型,任务类型:环保评价/能效评价
|
204
|
+
|
205
|
+
:return: HttpRunner[IESLabEvaluationResult]
|
206
|
+
'''
|
207
|
+
url = self._runUri
|
208
|
+
CMD_TYPE = type if type is None else self._evaluationType[type]
|
209
|
+
try:
|
210
|
+
timeId = int(time.time() * 1000)
|
211
|
+
r = request('GET',
|
212
|
+
url,
|
213
|
+
params={
|
214
|
+
"simuid": self.simulationId,
|
215
|
+
"planId": planID,
|
216
|
+
"CMD_TYPE": CMD_TYPE
|
217
|
+
})
|
218
|
+
data = json.loads(r.text)
|
219
|
+
return HttpRunner({'rid': 'function/ieslab/evaluation'},
|
220
|
+
self.simulationId,
|
221
|
+
timeId=timeId,
|
222
|
+
planId=planID,
|
223
|
+
cmdType=CMD_TYPE)
|
224
|
+
except:
|
225
|
+
raise Exception('方案评估开始计算失败')
|
226
|
+
|
227
|
+
|
228
|
+
class IESLabOptEvaluationModel(IESLabEvaluationModel):
|
229
|
+
_baseUri = 'api/ieslab-opt/rest/'
|
230
|
+
_taskUri = 'api/ieslab-opt/taskmanager/getSimuLastTasks'
|
231
|
+
_runUri = 'api/ieslab-opt/taskmanager/saveDataToclickhouse'
|
232
|
+
|
233
|
+
def run(self, planID, type=None) -> HttpOPTRunner[IESLabOptEvaluationResult]:
|
234
|
+
'''
|
235
|
+
运行方案评估
|
236
|
+
|
237
|
+
:param planID int类型,表示优化方案的ID,数值位于0~优化方案数量之间
|
238
|
+
:params type: string类型,任务类型:环保评价/能效评价
|
239
|
+
|
240
|
+
:return: HttpRunner[IESLabEvaluationResult]
|
241
|
+
'''
|
242
|
+
url = self._runUri
|
243
|
+
CMD_TYPE = type if type is None else self._evaluationType[type]
|
244
|
+
try:
|
245
|
+
timeId = int(time.time() * 1000)
|
246
|
+
r = request('GET',
|
247
|
+
url,
|
248
|
+
params={
|
249
|
+
"simuid": self.simulationId,
|
250
|
+
"planId": planID,
|
251
|
+
"CMD_TYPE": CMD_TYPE
|
252
|
+
})
|
253
|
+
data = json.loads(r.text)
|
254
|
+
return HttpOPTRunner({'rid': 'function/ieslab/evaluation'},
|
255
|
+
self.simulationId,
|
256
|
+
timeId=timeId,
|
257
|
+
planId=planID,
|
258
|
+
cmdType=CMD_TYPE)
|
259
|
+
except:
|
260
|
+
raise Exception('方案评估开始计算失败')
|