
- 系列博客不会出现任何真实数据
- 比赛期间将拒绝一切私信,有问题请发评论
系列文章目录
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【0】【风况预测评分规则-最终得分R的计算】【已弃用】
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【1】【验证集制作】【已弃用】
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【2】【验证集使用】【已弃用】
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【3】【计算最终得分】
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【4】【数据管理】
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【5】【数据可视化】【测试集_初赛】
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【6】【数据可视化】【训练集】
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【7】【数据管理】【验证集本地化】
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【8】【数据可视化】【验证集】
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【9】【数据可视化】【气象数据】
文章目录
- 声明
- 系列文章目录
- 更新说明
- 注
- 前言
- 一、必要的准备
- 二、随机选取一个数据进行可视化(包含预测数据)
- 三、可视化所有训练数据并保存到本地(包含预测数据)
- 四、随机选取某风场某风机其中一日的训练数据并保存到当前文件夹(包含预测数据)
更新说明
无
注
注:大赛官网明确规定数据不可用作其他用途,所以图就不展示了
本篇90%内容和【5】【数据可视化】【测试集_初赛】一样,运行一下看一下结果就好了。
一、必要的准备
main.py见系列第5个博客【4】【数据管理】
- 你需要把mian.py和train放在同一目录下,然后运行以下代码
from main import * dm = Data_Manager() dm.load_test_data() np.nan_to_num(dm.X_, copy=False) np.nan_to_num(dm.X0, copy=False) np.nan_to_num(dm.Y0, copy=False) np.nan_to_num(dm.S, copy=False) np.nan_to_num(dm.W, copy=False) np.nan_to_num(dm.test_X_, copy=False) np.nan_to_num(dm.test_X0, copy=False) np.nan_to_num(dm.test_W, copy=False);二、随机选取一个数据进行可视化(包含预测数据)
f = np.random.randint(0, field_len)
i = np.random.randint(13, 17485)
m = np.random.randint(0, machine_len)
print('风场', field[f])
print('时段', time_series[field[f]][11*120:-2*120:120].iloc[i, 0])
print('风机', machine[f][m])
z_1 = np.arange(120)
z_2 = np.arange(120, 140)
spd_1 = dm.X0[f, i, m, :, 0]
spd_2 = dm.Y0[f, i, m, :, 0]
dir_1 = dm.X0[f, i, m, :, 1]
dir_2 = dm.Y0[f, i, m, :, 1]
fig, ax = plt.subplots(2, 2, figsize=(10 * 2, 10))
ax[0, 0].set_xlabel('时间')
ax[0, 0].set_ylabel('风速')
ax[0, 0].plot(z_1, spd_1, label='spd_1')
ax[0, 0].plot(z_2, spd_2, label='spd_2')
ax[0, 0].legend()
ax[0, 1].set_xlabel('时间')
ax[0, 1].set_ylabel('风向')
ax[0, 1].plot(z_1, dir_1, label='dir_1')
ax[0, 1].plot(z_2, dir_2, label='dir_2')
ax[0, 1].legend()
ax[1, 0].set_xlabel('时间')
ax[1, 0].set_ylabel('风速')
ax[1, 0].scatter(z_1, spd_1, label='spd_1')
ax[1, 0].scatter(z_2, spd_2, label='spd_2')
ax[1, 0].legend()
ax[1, 1].set_xlabel('时间')
ax[1, 1].set_ylabel('风向')
ax[1, 1].scatter(z_1, dir_1, label='dir_1')
ax[1, 1].scatter(z_2, dir_2, label='dir_2')
ax[1, 1].legend()
注:大赛官网明确规定数据不可用作其他用途,所以图就不展示了
全部运行完可能需要 40 * 50 分钟
root = 'train_pic'
z_1 = np.arange(120)
z_2 = np.arange(120, 140)
for f in range(field_len):
os.makedirs(os.path.join(root, field[f]), exist_ok=True)
for m in range(machine_len):
save_dir = os.path.join(root, field[f], machine[f][m])
os.makedirs(save_dir, exist_ok=True)
for i in tqdm(range(13, 17485)):
spd_1 = dm.X0[f, i, m, :, 0]
spd_2 = dm.Y0[f, i, m, :, 0]
dir_1 = dm.X0[f, i, m, :, 1]
dir_2 = dm.Y0[f, i, m, :, 1]
if (i - 13) % 24 == 0:
fig, ax = plt.subplots(2, 24, figsize=(10*24, 10*2))
ax[0, (i - 13) % 24].set_xlabel('时间')
ax[0, (i - 13) % 24].set_ylabel('风速')
ax[0, (i - 13) % 24].plot(z_1, spd_1, label='spd_1')
ax[0, (i - 13) % 24].plot(z_2, spd_2, label='spd_2')
ax[0, (i - 13) % 24].legend()
ax[1, (i - 13) % 24].set_xlabel('时间')
ax[1, (i - 13) % 24].set_ylabel('风向')
ax[1, (i - 13) % 24].plot(z_1, dir_1, label='dir_1')
ax[1, (i - 13) % 24].plot(z_2, dir_2, label='dir_2')
ax[1, (i - 13) % 24].legend()
if (i - 13) % 24 == 23:
fig.savefig(os.path.join(save_dir, time_series[field[f]][11*120:-2*120:120].iloc[i, 0][:10]+'.png'))
plt.close('all')
如图,以24小时为单位,存放在对应风场风机文件夹下,文件名就是日期。
图片内容:第一行是风速,第二行是风机,每一列是一个小时,从0时开始24时结束。
root = 'train_pic'
z_1 = np.arange(120)
z_2 = np.arange(120, 140)
f = np.random.randint(0, field_len)
i = np.random.choice(list(range(13, 17485, 24)), 1)[0]
m = np.random.randint(0, machine_len)
while 1:
spd_1 = dm.X0[f, i, m, :, 0]
spd_2 = dm.Y0[f, i, m, :, 0]
dir_1 = dm.X0[f, i, m, :, 1]
dir_2 = dm.Y0[f, i, m, :, 1]
if (i - 13) % 24 == 0:
fig, ax = plt.subplots(2, 24, figsize=(10*24, 10*2))
ax[0, (i - 13) % 24].set_xlabel('时间')
ax[0, (i - 13) % 24].set_ylabel('风速')
ax[0, (i - 13) % 24].plot(z_1, spd_1, label='spd_1')
ax[0, (i - 13) % 24].plot(z_2, spd_2, label='spd_2')
ax[0, (i - 13) % 24].legend()
ax[1, (i - 13) % 24].set_xlabel('时间')
ax[1, (i - 13) % 24].set_ylabel('风向')
ax[1, (i - 13) % 24].plot(z_1, dir_1, label='dir_1')
ax[1, (i - 13) % 24].plot(z_2, dir_2, label='dir_2')
ax[1, (i - 13) % 24].legend()
if (i - 13) % 24 == 23:
fig.savefig(field[f] + ' ' + machine[f][m] + ' ' + time_series[field[f]][11*120:-2*120:120].iloc[i, 0][:10]+'.png')
plt.close('all')
break
i += 1
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)