SCR相对标准偏差、氨氮比、截面速度,多平面计算

ops/2024/10/22 8:24:51/

SCR截面速度、氨氮比等标准及相对标准偏差计算。
程序用来处理fluent通过xyplot导出的数据,导出可以选择多个平面,可计算标准偏差SD、相对标准偏差RSD,平均速度,适用于求解多个平面

python"># -*- coding: utf-8 -*-
"""
Created on Wed Sep 20 20:40:30 2023
该程序用来处理fluent通过xyplot导出的数据,导出可以选择多个平面,可计算标准偏差SD、相对标准偏差RSD,平均速度,适用于求解多个平面
联系QQ:3123575367,专业SCR脱硝仿真。
@author: PS
"""import chardet #识别文件的编码格式#确定文件编码格式
def check_code(text):#detect函数只需要一个 非unicode字符串参数,返回一个字典。该字典包括判断到的编码格式及判断的置信度。with open(text, 'rb') as f:    adchar = chardet.detect(f.read())  # adchar = chardet.detect(text)# 由于windows系统的编码有可能是Windows-1254,打印出来后还是乱码,所以不直接用adchar['encoding']编码if adchar['encoding'] == 'gbk' or adchar['encoding'] == 'GBK' or adchar['encoding'] == 'GB2312':return 'GB2312'else:return 'utf-8'# lists_dict ={}# for i in range(num_lists):#     lists_dict[f"list_{i}"] = []# print(lists_dict)# lists_dict[list_0]#读取文件并进行计算 
def read_file_text(file_url):# num_lists = eval(input("请输入要面的数量:"))with open(file_url, 'r',encoding=check_code(file_url)) as f0:row_nul = 2for i in range(row_nul):next(f0)#跳行,跳过前两行f0_word = f0.readlines()  #读取每一行plane_name = []# for i in range(array.shape[0]):ls = []#将文本数据按照行整理到列表中for line in f0_word:line = line.strip('\n')#将每段的回车替换为空格line = line.replace(')','')words = line.split()#将字符串以空格分开# if ls !=""#     point_numls.append(words)ls = list(filter(None,ls))#删除空列表   # print(ls)  sub_lists=[] #将非字符替换成002100for j in range(len(ls)):try:sub_lists.append(float(ls[j][1])) #保存每一行的第1列except:print(ls[j][1])plane_name.append(ls[j][1])  #保存名字sub_lists.append("002100")   #将名字所在的位置替换成002100print("跳出")# breakcontinue#通过特定字符分割列表# 要分割的元素split_element = '002100'# 初始化结果列表result = []temp_list = []# 遍历原始列表for item in sub_lists:if item == split_element:# 如果遇到分割元素,将临时列表添加到结果列表,并重置临时列表if temp_list:result.append(temp_list)temp_list = []else:# 否则,将当前元素添加到临时列表temp_list.append(item)# 添加最后一个子列表到结果列表if temp_list:result.append(temp_list)res_rec_cv ={}#储存相对标准偏差(RSD)%res_rec_vec ={}#储存速度for i in range(len(plane_name)):print("===========================")print(plane_name[i])y = result[i]#计算#计算含0的数据mean = sum(y)/len(y)qh =[]for num in y:qh.append(pow(num-mean,2))qv = pow(sum(qh)/(len(qh)-1),0.5) #标准偏差 cv = qv/mean #相对标准偏差print('+++++++未操作数据 +++++++')print(f'平均值为:{round(mean,4)}')print(f'标准偏差(SD)为:{round(qv*100,4)} %\n相对标准偏差(RSD)为:{round(cv*100,4)} %')#计算去除0后的数据y_no_zero = [i for i in y if i!= 0] #去除0元素mean_no_zero = sum(y_no_zero)/len(y_no_zero)qh_no_zero = [pow(num-mean_no_zero,2) for num in y_no_zero]qv_no_zero = pow(sum(qh_no_zero)/(len(qh_no_zero)-1),0.5)cv_no_zero = qv_no_zero/mean_no_zero# res_rec_cv[plane_name[i]] = cv_no_zero*100#填充字典# res_rec_vec[plane_name[i]] = mean_no_zero#填充字典print('------------去除 0 数据------------')print(f'平均值为:{round(mean_no_zero,4)}')print(f'标准偏差(SD)为:{round(qv_no_zero*100,4)} %\n相对标准偏差(RSD)为:{round(cv_no_zero*100,4)} %')#计算去除指定后的数据y_no_dz = [i for i in y if i> 20] #由于近壁面效应,考虑除去改数值mean_no_dz = sum(y_no_dz)/len(y_no_dz)qh_no_dz = [pow(num-mean_no_dz,2) for num in y_no_dz]qv_no_dz = pow(sum(qh_no_dz)/(len(qh_no_dz)-1),0.5)cv_no_dz = qv_no_dz/mean_no_dzres_rec_cv[plane_name[i]] = cv_no_dz*100#填充字典res_rec_vec[plane_name[i]] = mean_no_dz#填充字典print('------------去除 0 数据------------')print(f'平均值为:{round(mean_no_zero,4)}')print(f'标准偏差(SD)为:{round(qv_no_zero*100,4)} %\n相对标准偏差(RSD)为:{round(cv_no_zero*100,4)} %')        print("<><><><><><><><><>><><><><><")print("相对标准偏差(RSD)%")for key,value in res_rec_cv.items():print(key,value,"%")print("<><><><><><><><><>><><><><><")  print("速度平均值 m/s ")for key,value in res_rec_vec.items():print(key,value,"m/s")read_file_text(r'D:\20241014-lc\CASE6-BOT\2\MODEL.xy') #只需要更改此处
#

在这里插入图片描述
计算结果如图:
在这里插入图片描述


http://www.ppmy.cn/ops/127514.html

相关文章

无人机:无线电波控制技术!

一、无线电波控制技术 通过无线电波与无人机上的接收机进行通信。当飞手在遥控器上操作控制杆时&#xff0c;这些动作会被转换为无线电波信号&#xff0c;并发送给无人机上的接收机。接收机接收到信号后&#xff0c;会解读控制杆的位移&#xff0c;并将其转化为数字信号&#…

S7--环境搭建基本操作

1.修改蓝牙名称和地址 工程路径:$ADK_ROOT\adk\src\filesystems\CDA2\factory_default_config\ 在subsys7_config5.htf中 DeviceName = "DEVICE_NAME“ # replace with your device name BD_ADDRESS=[00 FF 00 5B 02 00] # replace with your BD address 2.earbud工程修改…

音视频:安防监控

文章目录 一、安防系统二、视频监控系统的组成三、相关机制1.看门狗进程2.心跳保活机制 四、相关协议和工具库1.FFmpeg2.RTSP3.WebRTC4.其他(1)OpenCV(2)Telnet 五、视频接口1.DVI2.VGA3.DP4.HDMI 一、安防系统 安防系统主要包括&#xff1a;视频监控系统、入侵报警系统、出入…

C++ | Leetcode C++题解之第498题对角线遍历

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> findDiagonalOrder(vector<vector<int>>& mat) {int m mat.size();int n mat[0].size();vector<int> res;for (int i 0; i < m n - 1; i) {if (i % 2) {int x i …

iOS 大数相加

大数相加的技术点在于进位(两数相加大于10之后进位) 思路如下: 1.从右往左便利,依次去除两个数M和N的个位数、十位数、百位数~~~相加 2.如果M遍历完了,N还没完,那么M用0作为位数上的加数: 代码如下: - (void)bigNumAdd:(NSMutableArray *)arrayA ArrayB:(NSMutableArray *…

【网安第三章】——XSS

XSS-跨站脚本攻击 反射型XSS 反射型XSS攻击通常发生在Web应用程序未能充分处理用户输入的情况下。攻击者利用应用程序的漏洞&#xff0c;将恶意脚本嵌入到URL参数中&#xff0c;当受害者点击这个恶意链接时&#xff0c;Web应用程序会将URL参数的内容作为响应的一部分发送给用户…

PyTorch 中 12 种张量操作详解

创作不易&#xff0c;还请各位同学三连点赞&#xff01;&#xff01;收藏&#xff01;&#xff01;转发&#xff01;&#xff01;&#xff01; 对于刚入门学习Python还找不到方向的小伙伴可以试试我的这份学习方法和籽料&#xff0c;免费自取&#xff01;&#xff01; PyTorc…

Ajax:跨域、防抖和节流、HTTP协议

在善意的“双向奔赴”中&#xff0c;每个普通人都如星辰&#xff0c;微小但释放着自己的光芒&#xff0c;交织成灿烂的星河 文章目录 跨域防抖和节流HTTP协议HTP状态码以及代表意义错误代码的影响移动的小天使 跨域 同源策略 概念&#xff1a;协议&#xff0c;域名&#xff0c…