Browse Source

Fix comments

master
FedorSarafanov 2 days ago
parent
commit
9e99e30bd9
  1. 11
      make_gif.py
  2. 10
      msg_converter.py

11
make_gif.py

@ -37,13 +37,14 @@ def create_gif(npz_path, output_path=None):
n_frames = data['dbz'].shape[0] n_frames = data['dbz'].shape[0]
print(f"Кадров: {n_frames}") print(f"Кадров: {n_frames}")
## Подготовка массивов c shape = (144, 100, 100)
# Максимумы по z # Максимумы по z
dbz_max = np.nanmax(data['dbz'], axis=3) # (144, 100, 100) dbz_max = np.nanmax(data['dbz'], axis=3)
dbzd_max = np.nanmax(data['dbzd'], axis=3) # (144, 100, 100) dbzd_max = np.nanmax(data['dbzd'], axis=3)
meteo = data['meteo'] # (144, 100, 100) meteo = data['meteo']
# Срезы по высоте # Срезы по высоте
doppler_5km = data['doppler'][:, :, :, 5] # (144, 100, 100) doppler_5km = data['doppler'][:, :, :, 5]
# Диапазоны для colorbar # Диапазоны для colorbar
vmin_dbz = np.nanpercentile(dbz_max, 1) vmin_dbz = np.nanpercentile(dbz_max, 1)
@ -134,7 +135,7 @@ if __name__ == "__main__":
try: try:
result = create_gif(npz_file, output_file) result = create_gif(npz_file, output_file)
print(f" {result}") print(f"OK: {result}")
except Exception as e: except Exception as e:
print(f"Ошибка: {e}") print(f"Ошибка: {e}")
import traceback import traceback

10
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("=" * 70)
print("Конвертация MSG в NPZ") print("Конвертация MSG в NPZ")
print("=" * 70) print("=" * 70)
# Извлечение блоков
if verbose:
print("\n[1/3] Извлечение BUFR блоков...") print("\n[1/3] Извлечение BUFR блоков...")
blocks = extract_msg_blocks(msg_file_path, verbose=verbose) blocks = extract_msg_blocks(msg_file_path, verbose=verbose)
# Парсинг данных (параллельно)
if verbose: if verbose:
print(f"\n[2/3] Парсинг данных (workers: {n_workers})...") print(f"\n[2/3] Парсинг данных (workers: {n_workers})...")
times = sorted(set(t for l, t in blocks.keys())) times = sorted(set(t for l, t in blocks.keys()))
n_times = len(times) n_times = len(times)
# Инициализация массивов
dbz = np.full((n_times, 100, 100, 11), np.nan, dtype=np.float32) 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) 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) 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 blocks_for_time[layer] = block_data
tasks.append((time_str, blocks_for_time, time_idx)) tasks.append((time_str, blocks_for_time, time_idx))
# Параллельная обработка
with Pool(processes=n_workers) as pool: with Pool(processes=n_workers) as pool:
results = pool.map(_process_single_time, tasks) results = pool.map(_process_single_time, tasks)
# Сборка результатов
if verbose: if verbose:
print(f" Сборка результатов...") 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 doppler[time_idx] = doppler_t
meteo[time_idx] = meteo_t meteo[time_idx] = meteo_t
# Сохранение
if verbose: if verbose:
print("\n[3/3] Сохранение в NPZ...") print("\n[3/3] Сохранение в NPZ...")

Loading…
Cancel
Save