- 系列博客不会出现任何真实数据
- 比赛期间将拒绝一切私信,有问题请发评论
系列文章目录
第五届全国工业互联网数据创新应用大赛 机组数据驱动的风电场短期风况预测 【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条)