新建仓库维护数据预测项目
This commit is contained in:
148
FC_ML_Baseline/FC_ML_Baseline_Data_Handler/Data_Load.py
Normal file
148
FC_ML_Baseline/FC_ML_Baseline_Data_Handler/Data_Load.py
Normal file
@@ -0,0 +1,148 @@
|
||||
'''
|
||||
/**
|
||||
* 导入数据文件脚本
|
||||
* 传参:python xxx.py /xx/xx/param.json
|
||||
* param.json 包含:
|
||||
* {
|
||||
* files:[xxx.excel,xxx.excel,xxx.excel],
|
||||
* path: '/xx/xx/xx',//源文件路径
|
||||
* }
|
||||
* 返回:source.json source.json文件放到 源文件路径下
|
||||
* source.json文件包含:
|
||||
* 表格标题:sourceTitle
|
||||
* 表格数据:sourceData
|
||||
* 稳态必传:averageData
|
||||
* 动态必传:sourceCurveData
|
||||
*/
|
||||
|
||||
//源数据表头
|
||||
export const sourceTitle = [
|
||||
{ value: 'param1', label: '整备质量' },
|
||||
{ value: 'param2', label: '迎风面积' },
|
||||
{ value: 'param3', label: '风阻系数' },
|
||||
{ value: 'param4', label: '转动惯量' },
|
||||
{ value: 'param5', label: '最大转速时拖拽扭矩' },
|
||||
{ value: 'param6', label: '速比' },
|
||||
];
|
||||
//源数据
|
||||
export const sourceData = [{ param1: 1, param2: 32, param3: 432, param4: 643, param5: 34, param6: 22 }];
|
||||
//最大平均最小值
|
||||
export const averageData = [
|
||||
{ property: '最大值', param1: 1, param2: 32, param3: 432, param4: 643, param5: 34, param6: 22 },
|
||||
{ property: '平均值', param1: 1, param2: 32, param3: 432, param4: 643, param5: 34, param6: 22 },
|
||||
{ property: '最小值', param1: 1, param2: 32, param3: 432, param4: 643, param5: 34, param6: 22 },
|
||||
];
|
||||
|
||||
//源数据曲线
|
||||
export const sourceCurveData = {
|
||||
legend: ['整备质量', '迎风面积', '风阻系数', '转动惯量', '最大转速时拖拽扭矩', '速比'],
|
||||
xAxis: ['0', '200', '400', '600', '800', '1000', '1200'],
|
||||
series: [
|
||||
{ name: '整备质量', data: [120, 132, 101, 134, 90, 230, 210] },
|
||||
{ name: '迎风面积', data: [220, 182, 191, 234, 290, 330, 310] },
|
||||
{ name: '风阻系数', data: [150, 232, 201, 154, 190, 330, 410] },
|
||||
{ name: '滑行阻力曲线', data: [320, 332, 301, 334, 390, 330, 320] },
|
||||
{ name: '转动惯量', data: [820, 932, 901, 934, 1290, 1330, 1320] },
|
||||
],
|
||||
};
|
||||
|
||||
'''
|
||||
import argparse
|
||||
|
||||
from FC_ML_Data.FC_ML_Data_Load.Data_Load_Excel import get_data_from_csv_feature
|
||||
from FC_ML_Model.Model_Train_Data import TrainData
|
||||
from FC_ML_Tool.Serialization import parse_json_file
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='导入数据文件参数')
|
||||
parser.add_argument('--param', default='D:\liyong\project\TVS_ML\FC_ML_Baseline\FC_ML_Baseline_Test\param.json',
|
||||
help='配置参数文件绝对路径')
|
||||
parser.add_argument('--export', default='source.json',
|
||||
help='导出JSON文件名')
|
||||
args = parser.parse_args()
|
||||
params = parse_json_file(args.param)
|
||||
train_data = TrainData()
|
||||
print(params)
|
||||
source_dir = params["path"] + "/"
|
||||
#需要保证同批数据特征一致,否则无法抛出异常
|
||||
for data_file in params["files"]:
|
||||
data_file_path = source_dir + data_file
|
||||
label_name,source_data,data_min,data_max,data_mean,sampled_indices,data_sample = get_data_from_csv_feature(data_file_path)
|
||||
#拾取标签名
|
||||
if len(train_data.source_title) == 0:
|
||||
param_label = 1
|
||||
for label_name in label_name:
|
||||
dic_name = {"param" + str(param_label): label_name}
|
||||
param_label += 1
|
||||
train_data.source_title.append(dic_name)
|
||||
#拾取源数据
|
||||
if len(train_data.source_data) == 0:
|
||||
for rows in source_data:
|
||||
cols = rows.tolist()
|
||||
param_label = 1
|
||||
dic_source_data = {}
|
||||
for col in cols:
|
||||
dic_source_data["param" + str(param_label)] = col
|
||||
param_label += 1
|
||||
train_data.source_data.append(dic_source_data)
|
||||
#拾取特征数据
|
||||
if len(train_data.average_data) == 0:
|
||||
#首次直接记录
|
||||
property_max = {}
|
||||
property_max["property"] = "最大值"
|
||||
property_min = {}
|
||||
property_min["property"] = "最小值"
|
||||
property_mean = {}
|
||||
property_mean["property"] = "平均值"
|
||||
param_label = 1
|
||||
for value in data_max.tolist():
|
||||
property_max["param" + str(param_label)] = value
|
||||
param_label += 1
|
||||
param_label = 1
|
||||
for value in data_mean.tolist():
|
||||
property_mean["param" + str(param_label)] = value
|
||||
param_label += 1
|
||||
param_label = 1
|
||||
for value in data_min.tolist():
|
||||
property_min["param" + str(param_label)] = value
|
||||
param_label += 1
|
||||
train_data.average_data.append(property_max)
|
||||
train_data.average_data.append(property_mean)
|
||||
train_data.average_data.append(property_min)
|
||||
else:
|
||||
#非首次对数据进行合并操作
|
||||
param_label = 1
|
||||
for value in data_max.tolist():
|
||||
if train_data.average_data[0]["param" + str(param_label)] < value:
|
||||
train_data.average_data[0]["param" + str(param_label)] = value
|
||||
param_label += 1
|
||||
param_label = 1
|
||||
for value in data_mean.tolist():
|
||||
train_data.average_data[0]["param" + str(param_label)] = (train_data.average_data[0]["param" + str(param_label)] + value) / 2
|
||||
param_label += 1
|
||||
param_label = 1
|
||||
for value in data_min.tolist():
|
||||
if train_data.average_data[0]["param" + str(param_label)] > value:
|
||||
train_data.average_data[0]["param" + str(param_label)] = value
|
||||
param_label += 1
|
||||
#拾取曲线数据
|
||||
if len(train_data.source_curve_data["legend"]) == 0:
|
||||
train_data.source_curve_data["legend"] = train_data.source_title
|
||||
train_data.source_curve_data["xAxis"] = sampled_indices.tolist()
|
||||
param_label = 1
|
||||
for col_idx in range(data_sample.size(1)): # 获取列数
|
||||
serie = {}
|
||||
serie["name"] = "param1" + str(param_label)
|
||||
param_label += 1
|
||||
serie["data"] = []
|
||||
column = data_sample[:, col_idx] # 获取第col_idx列
|
||||
serie["data"].append(column.tolist())
|
||||
train_data.source_curve_data["series"].append(serie)
|
||||
else: #补充曲线数据
|
||||
param_label = 0
|
||||
for col_idx in range(data_sample.size(1)): # 获取列数
|
||||
column = data_sample[:, col_idx] # 获取第col_idx列
|
||||
train_data.source_curve_data["series"][param_label].append(column.tolist())
|
||||
print(train_data)
|
||||
with open(params["path"] + "/" + args.export, 'w') as f:
|
||||
f.write(train_data.to_json()) # 写入后会覆盖原有内容
|
||||
1
FC_ML_Baseline/FC_ML_Baseline_Data_Handler/__init__.py
Normal file
1
FC_ML_Baseline/FC_ML_Baseline_Data_Handler/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
#代理模型数据预处独立功能包
|
||||
Reference in New Issue
Block a user