python 利用探空数据识别整层云
选用蔡淼的论文:[1]蔡淼,欧建军,周毓荃,等.L波段探空判别云区方法的研究[J].大气科学,2014,38(02):213-222.
里面的阈值法:
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ @Time : 2025/1/20 23:22 @Author : Suyue @Email : 1493117872@qq.com @File : cloud_area.py @Project : untitled4 """ import pandas as pd df = pd.read_csv('D:/探空数据计算/tankong-2020-50527_with_final_times_lat_lon_cleaned_data.csv') df = pd.DataFrame(df) # 根据条件筛选数据 mask = ( ((df['GPH'] >= 0) & (df['GPH'] < 1000) & (df['RHU'] == 91)) | ((df['GPH'] >= 1000) & (df['GPH'] < 2000) & (df['RHU'] > 84) & (df['RHU'] <= 90)) | ((df['GPH'] >= 2000) & (df['GPH'] < 7562) & (df['RHU'] > 78) & (df['RHU'] <= 84)) | ((df['GPH'] >= 7562) & (df['GPH'] <= 10000) & (df['RHU'] >= 68) & (df['RHU'] <= 78)) | ((df['GPH'] > 10) & (df['RHU'] == 68)) ) # 保留满足条件的行 filtered_df = df[mask] # 将结果保存回CSV文件 filtered_df.to_csv('D:/探空数据计算/tankong-2020-50527_with_final_times_lat_lon_cleaned_data_filtered_data.csv', index=False) # 打印结果以确认(可选) # print(filtered_df)
批量数据处理:
#!usr/bin/env python # -*- coding:utf-8 -*- """ @author: Suyue @file: batch_process_raindrop_data.py @time: 2025/02/19 @desc: 批量识别云 """ import pandas as pd import os import glob # 设置CSV文件所在的目录 input_directory = '/lianxi/' output_directory = '/cloud/' # 可选:设置输出目录,如果不设置则覆盖原文件 # 如果输出目录不存在,则创建它 if not os.path.exists(output_directory): os.makedirs(output_directory) # 获取目录中所有CSV文件的路径 csv_files = glob.glob(os.path.join(input_directory, '*.csv')) # 遍历每个CSV文件 for file_path in csv_files: # 读取CSV文件 df = pd.read_csv(file_path) # 根据条件筛选数据 mask = ( ((df['GPH'] >= 0) & (df['GPH'] < 1000) & (df['RHU'] == 91)) | ((df['GPH'] >= 1000) & (df['GPH'] < 2000) & (df['RHU'] > 84) & (df['RHU'] <= 90)) | ((df['GPH'] >= 2000) & (df['GPH'] < 7562) & (df['RHU'] > 78) & (df['RHU'] <= 84)) | ((df['GPH'] >= 7562) & (df['GPH'] <= 10000) & (df['RHU'] >= 68) & (df['RHU'] <= 78)) | ((df['GPH'] > 10) & (df['RHU'] == 68)) ) # 保留满足条件的行 filtered_df = df[mask] # 提取文件名(不带路径和扩展名) file_name = os.path.splitext(os.path.basename(file_path))[0] # 设置输出文件路径 if output_directory: # 如果指定了输出目录 output_file_path = os.path.join(output_directory, file_name + '_filtered.csv') else: # 如果没有指定输出目录,则覆盖原文件 output_file_path = file_path.replace('.csv', '_filtered.csv') # 将结果保存回CSV文件 filtered_df.to_csv(output_file_path, index=False) print("批量处理完成!")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程