跳到主要内容

负荷预测模块

概述

介绍如何使用接口运行负荷预测方案内核,并储存运行结果。

准备工作

在进行对各个接口的具体操作前,您需要先获取指定的项目。

import os
import cloudpss
import time
import json

if __name__ == '__main__':
# 申请并设置自己账户的token
cloudpss.setToken('{token}')

# 将'https://cloudpss.net/'替换为用户当前使用的平台网址地址
os.environ['CLOUDPSS_API_URL'] = 'https://cloudpss.net/'

# 仿真测试——获取指定 simuid 的项目
dsProject = cloudpss.DSLab.fetch('{simuid}')

运行负荷预测方案内核

运行负荷预测方案内核,如果当前 model 没有创建 Job 时报错,默认使用第一个计算方案,进行仿真。

语法

runIESLoadPrediction(job, name)

参数说明

  • job: String 计算方案名称,可选,默认使用第一个计算方案,如果同名使用最靠前一个
  • name: String 任务名称,为空时使用项目的参数方案名称和计算方案名称

返回值

  • Job 返回一个运行实例

实例

以下实例展示了 runIESLoadPrediction 的使用方法:

try:
runner = dsProject.runIESLoadPrediction()
while not runner.status():
print('running', flush=True)
logs = runner.result.getLogs()
for log in logs:
print(log)
time.sleep(1)
print('end')
print(runner.result.getMessagesByType('plot'))

# 保存结果到JSON文件
result_data = runner.result.getMessagesByType('plot')
# 生成唯一的文件名
timestamp = int(time.time()) # 使用时间戳作为文件名的一部分
file_name = f"output_{timestamp}.json"
# 获取当前脚本的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 生成JSON文件的完整路径
file_path = os.path.join(current_dir, file_name)
with open(file_path, 'w') as file:
json.dump(result_data, file)

except Exception as e:
print('error', e)

执行以上代码,输出结果如下:

running
running
{'type': 'log', 'verb': 'create', 'version': 1, 'key': '1686724615.123849869', 'data': {'level': 'info', 'content': '启动算法'}, 'sender': 'remote', 'when': datetime.datetime(2023, 6, 14, 14, 36, 55, 123850)}
{'type': 'log', 'verb': 'create', 'version': 1, 'key': '1686724615.123849869', 'data': {'level': 'info', 'content': '计算任务进入队列,等待运行'}, 'sender': 'remote', 'when': datetime.datetime(2023, 6, 14, 14, 36, 55, 123850)}
running
{'data': {'content': '数据获取开始', 'html': False, 'level': 'info'}, 'type': 'log', 'verb': 'create', 'version': 1}
{'data': {'content': '数据获取完成,耗时:0.071s', 'html': False, 'level': 'info'}, 'type': 'log', 'verb': 'create', 'version': 1}
{'data': {'content': '负荷数据解析开始', 'html': False, 'level': 'info'}, 'type': 'log', 'verb': 'create', 'version': 1}
running
running
running
running
running
{'type': 'log', 'verb': 'create', 'version': 1, 'key': '1686724621.322948694', 'data': {'level': 'info', 'content': '计算任务运行结束'}, 'sender': 'remote', 'when': datetime.datetime(2023, 6, 14, 14, 37, 1, 322948)}
{'data': {'items': [{'placeholder': '暂无数据', 'query': {'key': 'XXX地区', 'type': 'message'}, 'title': 'XXX地区'}, {'placeholder': '暂无数据', 'query': {'key': 'XXX变电站', 'type': 'message'}, 'title': 'XXX地区/XXX变电站'}, {'placeholder': '暂无数据', 'query': {'key': 'XXX线', 'type': 'message'}, 'title': 'XXX地区/XXX变电站/XXX线'}, ...(由于结果过长,此处省略后续内容)...