跳到主要内容

三招玩转XMO-Studio

产品地址:https://studio.xm-opt.com

  • 产品开通
  • 使用xmo-data
  • 使用XMCoder

招式1:产品开通

1. 账号注册

使用产品前需注册XMO账号,详情可见 注册/登录

2. 服务开通

首次使用需进行身份认证--->认证完毕,同意XMO-STUDIO开通协议--->联系工作人员签署试用协议并审核
签署成功,默认分配2核(CPU)4G(内存)的资源。

3. 获取密钥

你需要在「 官网--个人中心--密钥管理」中获得身份验证的APIkey,用于后续编程中必要的鉴权。您有两种使用方式

  • 在创建项目时配置XMO-APIKEY:适合多项目或统一配置场景,不用在代码中暴露 token;即client = Client()

alt text

  • 初始化Client传参:适合临时测试、脚本开发等场景,方便快速验。
    即client = Client(token = "您的官网APIkey字符串")

招式2:使用xmo-data

xmo-data 统一了全国市场披露数据+气象数据,提供标准化API服务接口。(仅限开通Studio的用户在webIDE中直接使用)
使用步骤

  1. Studio左侧菜单栏「开发」---创建新项目---分配实例---打开webIDE(VSCode/JupyterLab)
  2. webIDE左侧菜单栏「EXPLORER」---新建脚本文件用于编程(以.py或.ipynb后缀结尾)
  • .py 是纯文本的Python脚本文件,适合编写可部署、模块化的程序代码。
  • .ipynb 是用于交互式编程的笔记本文件,支持代码分块执行、图表展示和Markdown说明,常用于数据分析与教学。您可分步骤执行代码,并查看运行结果。
  1. 根据需求,编辑对应python语句并运行👇

- 查询数据集

# 查询账号下可以使用的数据集或数据列基本信息
# client 是指初始化客户端,若您在创建项目时已配置XMO-APIKEY,可直接使用client = Client()
# 若您仅看自己的数据,可使用type=“USER”查询;若想查看所有数据(包括公开数据和您的数据)无需使用此语句。

from xmodata.client import Client
client = Client(token = "您的官网APIkey字符串")
meta_cols = client.list_datacol_meta(page_no=1, page_size=1000, type="USER", printout=True)
# 列出您拥有的数据集
from xmodata.client import Client

client = Client()
ds = client.list_datasets(printout=True)
ds

alt text

- 创建数据集

# 创建数据集
from xmodata.models import DataSetColCreateParam
from xmodata.client import Client

client = Client()
cols = client.make_cols(cols=[
DataSetColCreateParam(alias="自定义列名称1", meta_name="系统提供的数据列名称", params={"province":"您需要查询的省份"}),
DataSetColCreateParam(alias="自定义列名称2", meta_name="系统提供的数据列名称", params={"province":"您需要查询的省份"}),
])
#设置要获取的数据列的开始时间和结束时间
dataset = client.create_dataset("自定义数据集名称1", start="2025-01-01", end="2025-03-02", cols=cols)

- 读取数据集

# 同步数据集数据
from xmodata.client import Client

client = Client()
client.sync_data_for_dataset(name="自定义数据集名称1")
# 查询数据集
from xmodata.client import Client

client = Client()
df = client.query_data(name="自定义列名称1")
print(df)

- 编辑数据集(下载、删除、加载、上传)

# 下载数据集
from xmodata.client import Client

client = Client()
client.download_dataset("自定义数据集名称1", "自定义文件名称.csv")
# 删除数据集
from xmodata.client import Client
client = Client()
client.delete_dataset("自定义数据集名称1")
# 加载用户数据
import pandas as pd
load_df = pd.read_csv("自定义文件名称1")
load_df = load_df[["times","自定义列名称1"]]
load_df = load_df.rename(columns={"自定义列名称1":"重命名"})
#上传用户数据
from xmodata.client import Client
client = Client()
client.upload_data_to_user_col_meta(df=load_df, tags={"province":"山东省"})
# 删除数据集
from xmodata.client import Client

client = Client()
client.delete_dataset("自定义列名称1")
# 删除用户数据列
from xmodata.client import Client
client = Client()
client.delete_user_datacol_meta("自定义列名称1")

实操案例

💡 例如创建山东省电价分析数据集示例代码

# 创建数据集
from xmodata.models import DataSetColCreateParam
from xmodata.client import Client

client = Client()
# 假设你有以下导入
# from your_package import DataSetColCreateParam, client

# 1. 整理山东省市场数据对应的 meta_name
# 你可将所有需要的 “披露数据” meta_name 都列在下面
shandong_market_meta_names = [
{"meta_name": "系统负荷实际值", "alias": "load_actual"},
{"meta_name": "系统负荷预测值", "alias": "load_forecast"},
{"meta_name": "竞价空间实际值", "alias": "bidding_space_actual"},
{"meta_name": "竞价空间预测值", "alias": "bidding_space_forecast"},
{"meta_name": "实时出清电价", "alias": "rt_clearing_price"},
{"meta_name": "日前出清电价", "alias": "da_clearing_price"},
{"meta_name": "联络线实际值", "alias": "tie_line_actual"},
{"meta_name": "地方电厂发电实际值", "alias": "local_gen_actual"},
{"meta_name": "风电实际值", "alias": "wind_actual"},
{"meta_name": "光伏实际值", "alias": "solar_actual"},
{"meta_name": "地方电厂发电预测值", "alias": "local_gen_forecast"},
{"meta_name": "联络线预测值", "alias": "tie_line_forecast"},
{"meta_name": "风电预测值", "alias": "wind_forecast"},
{"meta_name": "光伏预测值", "alias": "solar_forecast"},
{"meta_name": "XFusion-日前电价预测值", "alias": "XFusion_day_ahead"},
{"meta_name": "XFusion-实时电价预测值", "alias": "XFusion_real_time"},
{"meta_name": "XFusion-价差预测", "alias": "XFusion_diff_price"},
{"meta_name": "Xperts-价差预测", "alias": "Xperts_diff_price"},
{"meta_name": "XFusion-价差方向预测", "alias": "XFusion_diff"},
{"meta_name": "XFusion-相似时刻Top1", "alias": "XFusion_similar_period"},

]

# 2. 整理城市气象数据对应的 meta_name
# 你可将所有需要的 “城市天气” meta_name 都列在下面
shandong_weather_meta_names = [
{"meta_name": "城市-温度(2米)", "alias": "temp_2m"},
{"meta_name": "城市-体感温度", "alias": "temp_feel"},
{"meta_name": "城市-天气代码", "alias": "weather_code"},
{"meta_name": "城市-降水量", "alias": "precipitation"},
{"meta_name": "城市-雨量", "alias": "rainfall"},
{"meta_name": "城市-降雪量", "alias": "snowfall"},

]

# 3. 山东省所有城市
shandong_cities = [
"济南",
"潍坊",
"临沂",
"德州",
"滨州",
"泰安",
"烟台",
"青岛"
]

# 4. 开始构造需要的列
cols = []

# 4.1 加载山东省份市场数据(省级别)
for item in shandong_market_meta_names:
cols.append(
DataSetColCreateParam(
alias=item["alias"],
meta_name=item["meta_name"],
params={"province": "山东省"}
)
)

# 4.2 加载山东省各城市气象数据(城市级别)
for city in shandong_cities:
for item in shandong_weather_meta_names:
alias = f"{city}_{item['alias']}" # 给每个城市的列起一个区分度高的 alias
area_value = f"山东省-{city}市"
cols.append(
DataSetColCreateParam(
alias=alias,
meta_name=item["meta_name"],
params={"area": area_value}
)
)

# 5. 最后统一通过 client.make_cols 生成
final_cols = client.make_cols(cols=cols)
dataset = client.create_dataset("test", start="2024-06-20", end="2025-04-10", cols=final_cols)
client.sync_data_for_dataset(name="test")
df = client.query_data(name="test")
print(df)
client.download_dataset("test", "test1.csv")

招式3:使用XMCoder

XMCoder是XMO-Studio中强大的代码辅助工具,具备电力市场相关算法、分析、统计报告一键生成能力。旨在帮助用户快速编写、调试和管理算法代码,通过智能提示和自动补全功能,提升开发效率,降低编码难度。

在哪里找到XMCoder?

  1. Studio左侧菜单栏--->开发
  2. 创建新项目--->创建并打开WebIDE(或 点击已分配好实例的项目--->打开webIDE )
  1. 点击WebIDE左侧菜单栏--->XMCoder(长得像机器人🤖的按钮)

在下面任务对话栏中输入任务指令

使用方式

  1. 通过在任务栏中输入任务指令使用XMCoder

1️⃣ 选择指令模式

XMCoder有两种指令模式,一个是计划(Plan)一个是操作(Act)

  • 计划模式(Plan)主要用于规划和讨论
  • 操作模式(Act)主要用于执行具体操作(如读取文件、执行命令等)

📖 参考问题:

  • 算法开发:“基于xx.csv数据集,使用xmopy写一个江苏省现货出清算法/日前电价预测算法”
  • 数据分析:“使用xx.csv文件,两两数据进行相关性分析,并生成交互式可视化分析报告” alt text

2️⃣ 点击 运行 按钮提交任务。

  • XMCoder将自动解析任务需求,识别关键要素(如 “电价预测”、“江苏地区”、“xmopy工具”等)。
  • 若运行环境/数据支持 → XMCoder自动执行任务,并实时反馈进度。
    ❌ 若运行环境/数据缺失 → XMCoder提供 智能建议(如申请数据访问权限、推荐替代算法或提供模拟数据等)。
    • 确认执行下一步(点击蓝色按钮) → XMCoder 自动补全依赖并继续任务。
    • 拒绝调整/取消(点击灰色按钮) → 终止任务,并返回优化建议。

alt text

功能演示视频

💡 XMCoder的主要功能和使用流程,建议观看以快速上手。

💡 实操案例:通过XMO-Studio 10分钟进行电价预测算法开发,实现功率寻优。

更多案例可见 5.1 数据分析 5.2 优化建模
更多详细介绍 XMCoder使用教程

新增功能

XMCoder支持交互式可视化分析

📖 交互式可视化分析报表 是一种能点、能选、能操作的智能报表,它不像传统报表那样死板,而是可以让你自由查看不同维度的数据,更轻松地发现问题和趋势。优势在于:

  • 随点随看:点击图表中的某个项目,其他内容会自动跟着更新,方便你深入了解。
  • 自由切换:可以按时间、地区、业务类型等自由切换,看到你想要的角度。
  • 实时更新:连接实时数据源,关键数据一有变化就能立刻看到。

alt text

📖 使用规则

在XMCoder 的任务栏中,通过任务问题指令进行调用

  1. 给提示词:任务中输入「 生成交互式可视化分析报表

例如:「请使用 山东市场分析.csv 分析价差方向数据的交叉特征规律,并生成交互式可视化分析。」
任务执行成功后,会生成访问地址,点击链接在浏览器中查看即可。

alt text

  1. 不给提示词:XMCoder自行规划分析
    🔔 服务由ai提供,存在一定的失败概率。若任务执行完毕后,仍未产生访问地址,您可输入提示词重新尝试。

如您在使用中遇到问题,可联系我们(工作日 北京时间 8:30-18:30)