diff --git a/make_gif.py b/make_gif.py index 2a2ee45..c62bf50 100644 --- a/make_gif.py +++ b/make_gif.py @@ -37,13 +37,14 @@ def create_gif(npz_path, output_path=None): n_frames = data['dbz'].shape[0] print(f"Кадров: {n_frames}") + ## Подготовка массивов c shape = (144, 100, 100) # Максимумы по z - dbz_max = np.nanmax(data['dbz'], axis=3) # (144, 100, 100) - dbzd_max = np.nanmax(data['dbzd'], axis=3) # (144, 100, 100) - meteo = data['meteo'] # (144, 100, 100) + dbz_max = np.nanmax(data['dbz'], axis=3) + dbzd_max = np.nanmax(data['dbzd'], axis=3) + meteo = data['meteo'] # Срезы по высоте - doppler_5km = data['doppler'][:, :, :, 5] # (144, 100, 100) + doppler_5km = data['doppler'][:, :, :, 5] # Диапазоны для colorbar vmin_dbz = np.nanpercentile(dbz_max, 1) @@ -134,7 +135,7 @@ if __name__ == "__main__": try: result = create_gif(npz_file, output_file) - print(f"✓ {result}") + print(f"OK: {result}") except Exception as e: print(f"Ошибка: {e}") import traceback diff --git a/msg_converter.py b/msg_converter.py index a8607a9..c37e712 100644 --- a/msg_converter.py +++ b/msg_converter.py @@ -472,20 +472,17 @@ def convert_msg_to_npz(msg_file_path, output_path=None, verbose=True, n_workers= print("=" * 70) print("Конвертация MSG в NPZ") print("=" * 70) - - # Извлечение блоков - if verbose: print("\n[1/3] Извлечение BUFR блоков...") + blocks = extract_msg_blocks(msg_file_path, verbose=verbose) - # Парсинг данных (параллельно) if verbose: print(f"\n[2/3] Парсинг данных (workers: {n_workers})...") times = sorted(set(t for l, t in blocks.keys())) n_times = len(times) - # Инициализация массивов + dbz = np.full((n_times, 100, 100, 11), np.nan, dtype=np.float32) dbzd = np.full((n_times, 100, 100, 10), np.nan, dtype=np.float32) doppler = np.full((n_times, 100, 100, 10), np.nan, dtype=np.float32) @@ -502,11 +499,9 @@ def convert_msg_to_npz(msg_file_path, output_path=None, verbose=True, n_workers= blocks_for_time[layer] = block_data tasks.append((time_str, blocks_for_time, time_idx)) - # Параллельная обработка with Pool(processes=n_workers) as pool: results = pool.map(_process_single_time, tasks) - # Сборка результатов if verbose: print(f" Сборка результатов...") @@ -516,7 +511,6 @@ def convert_msg_to_npz(msg_file_path, output_path=None, verbose=True, n_workers= doppler[time_idx] = doppler_t meteo[time_idx] = meteo_t - # Сохранение if verbose: print("\n[3/3] Сохранение в NPZ...")