From 3f46a49b3a94ee40d1b6d21b2f2f24be1681e3a6 Mon Sep 17 00:00:00 2001 From: Dustella Date: Thu, 23 Jan 2025 23:31:52 +0800 Subject: [PATCH] refactor some structure --- balloon/__init__.py | 7 ++++--- radar/plot_original.py | 4 ++-- radar/plot_prod.py | 4 ++-- saber/__init__.py | 43 ++++++++++++++++++++++++++++++++---------- 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/balloon/__init__.py b/balloon/__init__.py index 33e5b1f..40d1acd 100644 --- a/balloon/__init__.py +++ b/balloon/__init__.py @@ -8,9 +8,9 @@ from balloon.plot_once_backend import render_by_mode_single from balloon.plot_year_backend import get_all_modes, render_based_on_mode from utils import * -all_year_data = pd.read_parquet("./cache/ballon_data_lin.parquet") +all_year_data = pd.read_parquet("./balloon/ballon_data_lin.parquet") -all_ballon_files = glob.glob("./data/探空气球/**/**.nc", recursive=True) +all_ballon_files = glob.glob("./balloon/data/**/**.nc", recursive=True) def get_dataframe_between_year(start_year, end_year): res = all_year_data @@ -77,5 +77,6 @@ def render_single_path(): data = balloon.read_data(path) buff = render_by_mode_single(data, mode) if buff is None: - return jsonify(message="No wave detected") + # give a 204 response if no data is found + return '', 204 return send_file(buff, mimetype='image/png') diff --git a/radar/plot_original.py b/radar/plot_original.py index ad84e34..7882aca 100644 --- a/radar/plot_original.py +++ b/radar/plot_original.py @@ -378,8 +378,8 @@ def get_final_df(H, year, station): # 文件路径设置 file_dir = rf'./radar/data/{station}/{year}' # 数据文件路径 - output_dir = rf'./out\{station}\{year}' # 参数txt、图片输出路径 - os.makedirs(output_dir, exist_ok=True) # 确保输出路径存在 + # output_dir = rf'./out\{station}\{year}' # 参数txt、图片输出路径 + # os.makedirs(output_dir, exist_ok=True) # 确保输出路径存在 # 1------------------------提取整个文件夹的数据 # 获取所有 txt 文件 diff --git a/radar/plot_prod.py b/radar/plot_prod.py index 21df63c..4ca25aa 100644 --- a/radar/plot_prod.py +++ b/radar/plot_prod.py @@ -171,8 +171,8 @@ def final_plot_v2(year, station, model_name, month_range=(1,12)): """ # 配置文件路径 file_dir = rf'./radar/data/{station}/{year}' - output_dir = rf'./radar/tmp\{station}\{year}\时空' - os.makedirs(output_dir, exist_ok=True) + # output_dir = rf'./radar/tmp\{station}\{year}\时空' + # os.makedirs(output_dir, exist_ok=True) # 数据预处理 file_list = glob.glob(file_dir + '/**/*.txt', recursive=True) diff --git a/saber/__init__.py b/saber/__init__.py index 50777ba..1c76b96 100644 --- a/saber/__init__.py +++ b/saber/__init__.py @@ -8,15 +8,37 @@ from saber.utils import * saber_module = Blueprint('saber', __name__) -lat_range = (30.0, 40.0) -alt_range = (20.0, 105.0) -lambda_range = (2, 15) -lvboin = True +# lat_range = (30.0, 40.0) +# alt_range = (20.0, 105.0) +# lambda_range = (2, 15) +# lvboin = True -processor = DataProcessor( - lat_range=lat_range, alt_range=alt_range, lambda_range=lambda_range, lvboin=lvboin) +# processor = DataProcessor( +# lat_range=lat_range, alt_range=alt_range, lambda_range=lambda_range, lvboin=lvboin) renderer = Renderer() +def get_processer(): + lat_str = request.args.get("lat_range") + if lat_str is None: + lat_str = "30.0,40.0" + lat_range = tuple(map(float, lat_str.split(","))) + + alt_str = request.args.get("alt_range") + if alt_str is None: + alt_str = "20.0,105.0" + alt_range = tuple(map(float, alt_str.split(","))) + lambda_str = request.args.get("lambda_range") + if lambda_str is None: + lambda_str = "2,15" + lambda_range = tuple(map(int, lambda_str.split(","))) + lvboin = request.args.get("lvboin") == "true" + if lvboin is None: + lvboin = True + + _p = DataProcessor( + lat_range=lat_range, alt_range=alt_range, lambda_range=lambda_range, lvboin=lvboin) + return _p + def extract_payload(): buffer = BytesIO() @@ -51,6 +73,7 @@ def do_plot_wave_day_fitting(): height = request.args.get("height") ncfile = data_nc_load(path) + processor = get_processer() data = processor.process_day(ncfile, int(day)) renderer.plot_wave_fitting(data, int(height)) return extract_payload() @@ -63,7 +86,7 @@ def do_day_fft_ifft_plot(): cycle_no = request.args.get("cycle_no") ncfile = data_nc_load(path) - + processor = get_processer() data = processor.process_day(ncfile, int(day)) renderer.day_fft_ifft_plot(wave_data=data, cycle_no=int(cycle_no)) return extract_payload() @@ -76,7 +99,7 @@ def do_day_cycle_power_wave_plot(): cycle_no = request.args.get("cycle_no") ncfile = data_nc_load(path) - + processor = get_processer() data = processor.process_day(ncfile, int(day)) renderer.day_cycle_power_wave_plot(wave_data=data, cycle_no=int(cycle_no)) return extract_payload() @@ -88,7 +111,7 @@ def do_month_power_wave_plot(): month = request.args.get("month") ncfile = data_nc_load(path) - + processor = get_processer() data = processor.process_month(ncfile) renderer.month_power_wave_plot(wave_data=data, date_time=ncfile.date_time) return extract_payload() @@ -97,7 +120,7 @@ def do_month_power_wave_plot(): @saber_module.route("/render/year_power_wave_plot") def do_year_power_wave_plot(): year = request.args.get("year") - + processor = get_processer() data = processor.process_year([ data_nc_load(path) for path in glob.glob(f"./saber/data/{year}/*.nc") ])