Guía de descarga y visualización de datos de radar meteorológico de IDEAM

Introducción

Los radares meteorológicos son herramientas fundamentales para el monitoreo de fenómenos atmosféricos intensos, como lluvias torrenciales, tormentas eléctricas o granizo. Funcionan mediante la emisión de pulsos electromagnéticos en banda C y la medición de los ecos que se reflejan en las gotas de agua o partículas presentes en la atmósfera. Estos ecos permiten reconstruir la estructura y evolución de sistemas precipitantes en tres dimensiones.

El Instituto de Hidrología, Meteorología y Estudios Ambientales de Colombia (IDEAM) cuenta con una red nacional de radares meteorológicos de doble polarización, instalados estratégicamente para cubrir diferentes regiones del país. Estos equipos operan bajo protocolos estandarizados y realizan escaneos volumétricos de la atmósfera con una resolución temporal fija de 5 minutos, lo que garantiza una vigilancia continua y detallada de la dinámica atmosférica.

Actualmente, IDEAM ha habilitado el acceso abierto a toda su base de datos históricos de radar, a través de un bucket público en la nube de Amazon Web Services (AWS). Esto permite a investigadores, estudiantes y profesionales consultar, descargar y analizar información volumétrica de reflectividad, velocidad radial, fase diferencial, entre otras variables polarimétricas.

Este cuaderno tiene como propósito servir como una guía práctica y reproducible para acceder, explorar y visualizar los datos de radar disponibles, utilizando herramientas como el cliente de línea de comandos de AWS (awscli) y librerías especializadas en Python como Py-ART.


📌 Enlaces oficiales de referencia:

📘 1. Introducción y contexto general

Esta guía tiene como propósito brindar una introducción clara, práctica y detallada al proceso de descarga, lectura y visualización de datos de radares meteorológicos del IDEAM, los cuales se encuentran disponibles públicamente a través de un bucket de Amazon Web Services (AWS).

Los archivos de radar procesados en esta guía son generados por los sistemas de radar meteorológico del IDEAM (Instituto de Hidrología, Meteorología y Estudios Ambientales de Colombia), los cuales utilizan tecnología de radar Doppler de doble polarización marca Vaisala, con formato de salida nativo .RAW producido por el software IRIS.


🎯 ¿Qué aprenderás en esta guía?

  1. Cómo está estructurada la red de radares meteorológicos del IDEAM.
  2. Cómo instalar el cliente de AWS para acceder al repositorio público de datos.
  3. Cómo consultar, explorar y descargar archivos .RAW desde AWS.
  4. Cómo abrir y explorar archivos de radar con la biblioteca Py-ART.
  5. Cómo visualizar variables clave como la reflectividad, la velocidad radial y otras variables polarimétricas.

🐍 ¿Qué es Python y por qué lo usamos aquí?

Python es un lenguaje de programación abierto, versátil y ampliamente utilizado en ciencia de datos, meteorología, análisis ambiental y visualización científica. Su comunidad activa y sus potentes bibliotecas lo hacen ideal para trabajar con grandes volúmenes de datos atmosféricos como los que generan los radares meteorológicos.


📦 ¿Qué es Py-ART?

Py-ART (Python ARM Radar Toolkit) es una biblioteca especializada desarrollada por el programa ARM del Departamento de Energía de los Estados Unidos, orientada al análisis y visualización de datos de radar atmosférico. Es capaz de leer múltiples formatos, entre ellos:

  • .RAW (formato IRIS de Vaisala) ✅
  • NEXRAD Level II
  • CFradial y UF
  • NetCDF-4

Con Py-ART es posible cargar archivos .RAW, visualizar cortes de reflectividad y otras variables, explorar metadatos del volumen escaneado y exportar datos a formatos interoperables.


🧰 Librerías necesarias

Para seguir esta guía, necesitarás tener instaladas las siguientes bibliotecas de Python:

LibreríaFunción principal
arm_pyartLectura y visualización de datos de radar
numpyProcesamiento de arreglos numéricos
matplotlibGeneración de gráficos estáticos
netCDF4Exportación a formatos interoperables
awscliAcceso al bucket público de AWS

Puedes instalarlas con el siguiente comando:

pip install arm_pyart numpy matplotlib netCDF4

🌐 Red de radares meteorológicos del IDEAM

IDEAM opera actualmente una red nacional de radares meteorológicos en banda C con capacidad de doble polarización, cuya función principal es el monitoreo de la atmósfera en tiempo real para apoyar procesos de pronóstico, alerta y análisis climatológico. Esta red cuenta con cuatro radares fijos, instalados en puntos estratégicos del país que permiten una cobertura amplia y diversa del territorio nacional, en especial sobre regiones vulnerables a eventos extremos como lluvias intensas, tormentas eléctricas, granizo o vendavales.

Cada radar realiza escaneos volumétricos cada 5 minutos, generando productos con alta resolución espacial y temporal. Su operación se realiza a través de barridos del tipo PPI (Plan Position Indicator) en múltiples ángulos de elevación, lo cual permite reconstruir tridimensionalmente la estructura de los ecos de radar.

A continuación, se presenta la descripción de cada radar y su área de cobertura:


📡 Radar de San José del Guaviare

Este radar está ubicado en el municipio de San José del Guaviare, capital del departamento de Guaviare, sobre una llanura amazónica a una altitud aproximada de 180 metros sobre el nivel del mar. Su localización estratégica le permite monitorear regiones de alta actividad convectiva en el piedemonte llanero y la Amazonía colombiana.

Cubre principalmente los departamentos de Meta, Guaviare, Caquetá y sectores del Vaupés, incluyendo municipios como La Macarena, San Vicente del Caguán, El Retorno y Puerto Rico. Esta zona es especialmente relevante para la vigilancia de tormentas intensas, sistemas convectivos mesoescalares y procesos de convección profunda asociados a la zona de convergencia intertropical (ZCIT).

Radar de San José del Guaviare

📷 Fotografía del radar (próximamente)


📡 Radar de Cerro Munchique

El radar de Cerro Munchique se encuentra instalado en la cima del cerro del mismo nombre, en jurisdicción del municipio de El Tambo (Cauca), a más de 2800 metros sobre el nivel del mar. Esta ubicación elevada le otorga una capacidad única para observar procesos convectivos complejos en la región andino-pacífica, incluyendo influencias de humedad oceánica y efectos orográficos intensos.

Su cobertura incluye los departamentos de Cauca, Nariño, Valle del Cauca y Huila, con incidencia directa sobre ciudades importantes como Popayán, Pasto, Palmira, Buga, Tuluá e incluso zonas del sur de Cali. Este radar es clave para entender la interacción entre las cadenas montañosas, la humedad del Pacífico y la generación de eventos severos como lluvias torrenciales y granizadas en zonas andinas.

Radar de Cerro Munchique

📷 Fotografía del radar (próximamente)


📡 Radar de Barrancabermeja

El radar de Barrancabermeja se encuentra instalado en el área de influencia del aeropuerto Yariguíes, en inmediaciones del municipio de Barrancabermeja (Santander), a unos 100 metros de altitud. Se trata de una ubicación estratégica para la vigilancia meteorológica del Magdalena Medio, una región con alta densidad poblacional, actividad industrial y condiciones atmosféricas dinámicas.

Este radar cubre los departamentos de Santander, Antioquia, Bolívar, y sectores del sur del Cesar, permitiendo observar fenómenos de rápida intensificación como tormentas eléctricas severas, líneas de turbonada y sistemas convectivos organizados. Ciudades como Bucaramanga, Yondó, Puerto Wilches, Aguachica y Cimitarra se encuentran dentro de su área de cobertura efectiva.

Radar de Barrancabermeja

📷 Fotografía del radar (próximamente)


📡 Radar de Carimagua

Este radar está ubicado en el corregimiento de Carimagua, en jurisdicción del municipio de Puerto Gaitán (Meta), a una altitud de aproximadamente 200 metros sobre el nivel del mar. Se sitúa en una zona de transición entre la altillanura oriental y la sabana inundable, donde predominan extensas planicies y fenómenos convectivos asociados a humedad superficial y calentamiento local.

Su cobertura incluye amplios sectores de los departamentos de Meta, Casanare, Vichada y el norte del Guaviare, alcanzando municipios como Puerto Gaitán, Orocué, Paz de Ariporo, Villanueva, Trinidad y zonas cercanas a Yopal. Este radar es esencial para el seguimiento de eventos de lluvia extrema en regiones rurales y para el apoyo a sistemas de alerta temprana en zonas productivas del oriente colombiano.

Radar de Carimagua

📷 Fotografía del radar (próximamente)


🗺️ Producto compuesto nacional de reflectividad

Adicionalmente, el IDEAM genera un producto compuesto en tiempo real que integra los datos de los radares activos, unificando en una sola imagen el campo de reflectividad máxima sobre el país. Esta imagen compuesta facilita la vigilancia nacional de eventos meteorológicos extremos, como líneas de turbonada, sistemas de mesoescala y núcleos de convección intensa.

Radar Compuesto IDEAM


⚙️ 2. Requisitos previos: instalación del cliente AWS CLI

📦 ¿Qué es AWS CLI?

El cliente de línea de comandos de Amazon Web Services, conocido como AWS CLI, es una herramienta que permite interactuar con los servicios de AWS directamente desde la terminal o línea de comandos. En este caso, lo utilizaremos para explorar, listar y descargar los archivos históricos de radar dispuestos por el IDEAM en un bucket público.

🔗 Documentación oficial: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html

Este acceso es público, por lo que no se requiere autenticación ni cuenta de AWS para la consulta y descarga.


💻 Instalación por sistema operativo

A continuación, se explican los pasos detallados para instalar AWS CLI en los principales sistemas operativos.

▶️ Instalación en Windows

  1. Dirígete al siguiente enlace para descargar el instalador oficial del cliente:

    👉 Descargar AWS CLI para Windows

  2. Ejecuta el archivo descargado (AWSCLIV2.msi). Durante el asistente de instalación:
    • Acepta los términos y condiciones.
    • Elige la instalación para todos los usuarios o solo para el usuario actual.
    • Presiona "Instalar" y espera a que finalice el proceso.
  3. Una vez instalado, abre el símbolo del sistema (cmd) y ejecuta:
cmd
aws --version

Deberías obtener una salida similar a:

aws-cli/2.15.1 Python/3.11.4 Windows/10 exe/x86_64

Si obtienes un error indicando que 'aws' no se reconoce, reinicia el equipo o asegúrate de que la ruta esté correctamente agregada al PATH del sistema.


🐧 Instalación en Linux (Debian/Ubuntu/Fedora)

  1. Abre una terminal y asegúrate de tener permisos administrativos. Luego ejecuta:
sudo apt update && sudo apt install unzip curl -y
  1. Descarga el instalador más reciente:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  1. Descomprime el instalador:
unzip awscliv2.zip
  1. Ejecuta el proceso de instalación:
sudo ./aws/install
  1. Verifica la instalación:
aws --version

Resultado esperado:

aws-cli/2.15.1 Python/3.11.4 Linux/x86_64

Si el comando aws no responde, asegúrate de que la ruta /usr/local/bin esté incluida en tu variable PATH.


🍎 Instalación en macOS

Opción 1: Usando Homebrew (recomendado si ya tienes brew instalado)

  1. Abre la Terminal y ejecuta:
brew install awscli
  1. Espera a que finalice el proceso. Luego verifica la instalación:
aws --version

Opción 2: Descarga directa del instalador

  1. Descarga el paquete desde el sitio oficial:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
  1. Instálalo ejecutando:
sudo installer -pkg AWSCLIV2.pkg -target /
  1. Verifica la instalación:
aws --version

En caso de error, asegúrate de que /usr/local/bin esté en tu PATH o reinicia la terminal.


🧪 Validación de instalación

Después de la instalación en cualquier sistema operativo, ejecuta:

aws --version

Una salida como la siguiente confirmará que el cliente está listo:

aws-cli/2.x.x Python/3.x.x ...

Ya puedes usar aws s3 para consultar el bucket de radares del IDEAM.

📝 No es necesario ejecutar aws configure ni registrar credenciales porque el bucket de radares es completamente público.

🗂️ 3. Estructura del repositorio de datos en AWS (IDEAM - Radares Meteorológicos)

El IDEAM (Instituto de Hidrología, Meteorología y Estudios Ambientales de Colombia) ha dispuesto su archivo histórico de datos volumétricos de radar meteorológico en un bucket público de Amazon Web Services, con el objetivo de fomentar la investigación, promover el desarrollo de productos hidrometeorológicos avanzados y mejorar la comprensión de los fenómenos atmosféricos que afectan al país.

Este repositorio forma parte del programa de Datos Abiertos de AWS y se encuentra disponible en la siguiente dirección oficial:

📁 Bucket principal: s3://s3-radaresideam/ 🔗 Página del repositorio: https://registry.opendata.aws/ideam-radares/

📡 Radares incluidos

El bucket contiene exclusivamente información generada por los cuatro radares meteorológicos de doble polarización actualmente operados por el IDEAM, todos fabricados por Vaisala y gestionados mediante el software IRIS:

  • Barrancabermeja (Departamento de Santander)
  • Carimagua (Departamento del Meta)
  • Guaviare (Departamento del Guaviare)
  • Cerro Munchique (Departamento del Cauca)

Cada radar cubre un área de hasta 300 km de radio y realiza observaciones volumétricas cada cinco minutos, generando una serie continua de archivos binarios crudos (.RAW).

🗃️ Organización del repositorio

La estructura interna del bucket es jerárquica y facilita la exploración temporal y espacial. Se organiza en función de la fecha de adquisición y el radar de origen, como se muestra a continuación:

s3://s3-radaresideam/
└── l2_data/
    └── <AÑO>/            # Año en cuatro dígitos (ej. 2023)
        └── <MES>/        # Mes en dos dígitos (ej. 08)
            └── <DIA>/    # Día en dos dígitos (ej. 16)
                └── <RADAR>/  # Nombre del radar (ej. Barrancabermeja)
                    └── <ARCHIVO.RAW>  # Archivo binario crudo

📦 Ejemplo real de ruta

s3://s3-radaresideam/l2_data/2023/08/16/Barrancabermeja/BAR230816152805.RAW91Y9

🧬 Estructura del nombre del archivo

Un archivo típico del repositorio tiene un nombre como:

BAR230816152805.RAW91Y9

Y se interpreta de la siguiente forma:

  • BAR: identificador del radar (en este caso, Barrancabermeja).
  • 230816: fecha de adquisición → 16 de agosto de 2023.
  • 152805: hora UTC → 15:28:05.
  • .RAW91Y9: extensión y código de volumen generado por IRIS.

🛠️ Formato .RAW y estrategia de escaneo

Los archivos .RAW contienen los datos volumétricos sin procesar (nivel 2), registrados por el radar en múltiples ángulos de elevación. Este formato:

  • Es binario, estructurado según el estándar propietario del software IRIS.
  • Es compatible con bibliotecas especializadas como Py-ART.
  • Almacena información de reflectividad, velocidad radial, ancho espectral y variables polarimétricas (ZDR, PHIDP, RHOHV, KDP).

Cada archivo .RAW representa una instantánea tridimensional de la atmósfera. Esta instantánea se genera a partir de una tarea de escaneo específica configurada por el IDEAM en su estrategia operativa. Las tareas implementadas incluyen:

  • SURVP: exploración meteorológica en el ángulo más bajo del haz (superficie).
  • PREC-A, PREC-B, PREC-C: tareas complementarias de escaneo en volumen para la estimación de precipitación, que incluyen diferentes rangos de distancia y ángulos de elevación.

Todos estos productos son almacenados en el bucket de AWS como parte del conjunto histórico.

📁 Nombres de los radares en el bucket

Los nombres utilizados como subcarpetas dentro de l2_data corresponden de manera directa a los siguientes radares:

Barrancabermeja/
Carimagua/
Guaviare/
Munchique/

⚠️ No existen datos de otros sensores o radares. Este repositorio está dedicado exclusivamente a la red operativa de radares del IDEAM.

📅 Resolución temporal y volumen de datos

Cada radar realiza un escaneo volumétrico completo cada 5 minutos, lo que implica una frecuencia de generación de 288 archivos por día. En condiciones normales de operación, esto se traduce en:

  • ~2 GB a 6 GB de datos diarios por radar.
  • ~80,000 archivos anuales por radar.
  • Decenas de millones de archivos disponibles para el conjunto histórico completo.

📝 La frecuencia de escaneo puede variar levemente por mantenimiento, fallos eléctricos o cambios en el modo operativo del radar.


En la siguiente sección se explicará cómo consultar, explorar y descargar estos archivos desde la línea de comandos utilizando awscli sin necesidad de credenciales, empleando filtros por fecha y radar.

📥 4. Consulta y descarga de archivos desde el bucket público

Una vez instalado el cliente awscli, es posible consultar y descargar archivos directamente desde el bucket público s3://s3-radaresideam/. A continuación, se presentan los comandos más útiles para explorar el contenido del repositorio y descargar los archivos según distintas necesidades.

📝 Este bucket no requiere autenticación ni configuración previa (aws configure), ya que es completamente público.

📋 Comandos básicos para listar archivos

Listar todos los radares disponibles para un día:

aws s3 ls s3://s3-radaresideam/l2_data/2023/08/16/ --no-sign-request

Listar archivos de un radar específico para un día:

aws s3 ls s3://s3-radaresideam/l2_data/2023/08/16/Barrancabermeja/ --no-sign-request

Listar archivos dentro de un rango horario específico (visual, requiere filtrado manual):

aws s3 ls s3://s3-radaresideam/l2_data/2023/08/16/Guaviare/ --no-sign-request |
  grep '23081612\|23081613'  # Rango 12:00 a 13:59 UTC

📦 Comandos para descargar archivos

Descargar un solo archivo

aws s3 cp s3://s3-radaresideam/l2_data/2023/08/16/Guaviare/GUA230816120003.RAWZB2G \
          ./descargas/Guaviare/ --no-sign-request

Descargar todos los archivos de un radar para un día

aws s3 sync s3://s3-radaresideam/l2_data/2023/08/16/Barrancabermeja/ \
             ./descargas/Barrancabermeja/ --no-sign-request

Descargar todos los archivos de todos los radares para un día

for radar in Barrancabermeja Carimagua Guaviare Munchique; do
  aws s3 sync s3://s3-radaresideam/l2_data/2023/08/16/$radar/ \
               ./descargas/$radar/ --no-sign-request
done

Descargar archivos en un rango de tiempo específico (por nombre)

Este tipo de descarga requiere filtrar manualmente la lista de archivos y usar aws s3 cp uno a uno:

aws s3 ls s3://s3-radaresideam/l2_data/2023/08/16/Guaviare/ --no-sign-request |
  grep '23081612\|23081613' | awk '{print $4}' > archivos.txt

for archivo in $(cat archivos.txt); do
  aws s3 cp s3://s3-radaresideam/l2_data/2023/08/16/Guaviare/$archivo \
            ./descargas/Guaviare/ --no-sign-request
done

📁 Estructura sugerida de carpetas locales

Se recomienda organizar las descargas localmente de forma jerárquica para facilitar su análisis posterior:

./descargas/
├── Barrancabermeja/
│   └── [archivos .RAW]
├── Carimagua/
│   └── [archivos .RAW]
├── Guaviare/
│   └── [archivos .RAW]
└── Munchique/
    └── [archivos .RAW]

📌 Es posible automatizar procesos de descarga masiva o periódica mediante scripts y tareas programadas (cron, bash, Python, etc.)


En las siguientes secciones se explicará cómo leer y visualizar estos archivos .RAW utilizando la biblioteca Py-ART en Python, permitiendo inspeccionar sus atributos, extraer variables y representar campos meteorológicos clave como reflectividad y velocidad radial.

📊 5. Lectura y visualización básica con Py-ART

Una vez descargados los archivos .RAW, el siguiente paso es cargarlos en Python utilizando la biblioteca Py-ART, explorar su contenido e inspeccionar las variables meteorológicas disponibles. En esta sección se presenta una guía básica para abrir un archivo, revisar sus metadatos y generar visualizaciones simples de los campos más relevantes.

📝 Los ejemplos de esta sección están pensados para ejecutarse localmente, con un archivo .RAW previamente descargado desde el bucket de AWS.

📦 5.1 Importar librerías

import pyart
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors

# Configuración general de visualización
plt.rcParams['figure.dpi'] = 120
plt.rcParams['font.family'] = 'DejaVu Sans'

📂 5.2 Abrir un archivo de radar (.RAW)

Para cargar un archivo .RAW de IRIS/Vaisala se utiliza la función pyart.io.read(), que detecta automáticamente el formato del archivo y construye un objeto Radar con todos sus atributos.

⚠️ Reemplaza la variable archivo_radar con la ruta al archivo que descargaste desde el bucket de AWS.

# Ruta al archivo .RAW descargado localmente
# Ejemplo: "./descargas/Guaviare/GUA230816120003.RAWZB2G"
archivo_radar = "./descargas/Guaviare/GUA230816120003.RAWZB2G"

# Leer el archivo con Py-ART
radar = pyart.io.read(archivo_radar)

print("✅ Archivo cargado exitosamente.")

🔍 5.3 Explorar metadatos del volumen

El objeto radar retornado por Py-ART contiene toda la información del volumen escaneado: posición geográfica del radar, ángulos de elevación, variables almacenadas y parámetros técnicos del escaneo.

# --- Ubicación geográfica del radar ---
print("=" * 50)
print("  INFORMACIÓN GENERAL DEL RADAR")
print("=" * 50)
print(f"  Nombre    : {radar.metadata.get('instrument_name', 'No disponible')}")
print(f"  Longitud  : {radar.longitude['data'][0]:.4f} °")
print(f"  Latitud   : {radar.latitude['data'][0]:.4f} °")
print(f"  Altitud   : {radar.altitude['data'][0]:.1f} m s.n.m.")

# --- Ángulos de elevación del volumen ---
print("\n" + "=" * 50)
print("  BARRIDOS DE ELEVACIÓN")
print("=" * 50)
for i, el in enumerate(radar.fixed_angle['data']):
    print(f"  Barrido {i:02d}: {el:.2f}°")

# --- Variables almacenadas en el volumen ---
print("\n" + "=" * 50)
print("  VARIABLES (CAMPOS) DISPONIBLES")
print("=" * 50)
for campo in radar.fields.keys():
    unidades = radar.fields[campo].get('units', 'N/A')
    descripcion = radar.fields[campo].get('long_name', campo)
    print(f"  {campo:<30} [{unidades}]  →  {descripcion}")

📡 5.4 Visualización de reflectividad (DBZH)

La reflectividad (DBZH) es la variable fundamental del radar meteorológico. Representa la intensidad del eco devuelto por las partículas (gotas de lluvia, granizo, nieve) y se expresa en unidades logarítmicas dBZ. Valores altos de reflectividad indican mayor intensidad de precipitación.

La figura generada corresponde a un PPI (Plan Position Indicator): una proyección horizontal de los datos en el ángulo de elevación seleccionado.

# Seleccionar el barrido (sweep) a visualizar (0 = ángulo de elevación más bajo)
sweep = 0

# Detectar el nombre del campo de reflectividad disponible en el archivo
campo_dbz = None
for candidato in ['reflectivity', 'DBZH', 'DBZ', 'TH', 'total_power']:
    if candidato in radar.fields:
        campo_dbz = candidato
        break

if campo_dbz is None:
    print("⚠️  No se encontró un campo de reflectividad. Campos disponibles:")
    print(list(radar.fields.keys()))
else:
    display = pyart.graph.RadarDisplay(radar)

    fig, ax = plt.subplots(figsize=(8, 7))
    display.plot(
        campo_dbz,
        sweep=sweep,
        ax=ax,
        vmin=-10,
        vmax=70,
        cmap='pyart_NWSRef',
        title=f"Reflectividad — Barrido {radar.fixed_angle['data'][sweep]:.1f}°",
        colorbar_label='Reflectividad (dBZ)',
        axislabels=('Distancia E-O (km)', 'Distancia N-S (km)')
    )
    ax.set_xlim(-300, 300)
    ax.set_ylim(-300, 300)
    plt.tight_layout()
    plt.show()

🌀 5.5 Visualización de velocidad radial (VRAD)

La velocidad radial (VRAD) indica el movimiento del hidrometeoro hacia el radar (valores negativos) o alejándose de él (valores positivos), expresado en m/s. Es una variable clave para identificar circulaciones, cizalladura del viento y rotaciones asociadas a tormentas severas.

# Detectar el nombre del campo de velocidad disponible en el archivo
campo_vel = None
for candidato in ['velocity', 'VRAD', 'VEL', 'V', 'mean_doppler_velocity']:
    if candidato in radar.fields:
        campo_vel = candidato
        break

if campo_vel is None:
    print("⚠️  No se encontró un campo de velocidad. Campos disponibles:")
    print(list(radar.fields.keys()))
else:
    display = pyart.graph.RadarDisplay(radar)

    fig, ax = plt.subplots(figsize=(8, 7))
    display.plot(
        campo_vel,
        sweep=sweep,
        ax=ax,
        vmin=-30,
        vmax=30,
        cmap='pyart_BuDRd18',
        title=f"Velocidad Radial — Barrido {radar.fixed_angle['data'][sweep]:.1f}°",
        colorbar_label='Velocidad radial (m/s)',
        axislabels=('Distancia E-O (km)', 'Distancia N-S (km)')
    )
    ax.set_xlim(-300, 300)
    ax.set_ylim(-300, 300)
    plt.tight_layout()
    plt.show()

📊 5.6 Variables polarimétricas

Gracias a la tecnología de doble polarización de los radares del IDEAM, cada volumen escaneado contiene variables adicionales que permiten identificar el tipo de hidrometeoro y mejorar la estimación de precipitación. Las principales son:

VariableNombre completoDescripción
ZDRReflectividad diferencialDistingue gotas esféricas (0 dB) de gotas achatadas (> 0 dB) o granizo (≈ 0 dB con alta reflectividad)
RHOHVCoeficiente de correlaciónValores cercanos a 1 indican lluvia uniforme; valores bajos sugieren mezcla de hidrometeoros o ruido
PHIDPFase diferencialSe usa para corregir atenuación y estimar precipitación acumulada
KDPFase diferencial específicaVariable derivada de PHIDP, directamente relacionada con la tasa de lluvia

A continuación se visualizan ZDR y RHOHV como ejemplo:

display = pyart.graph.RadarDisplay(radar)

# Mapa de campos polimétricos a visualizar: {nombre_campo: (vmin, vmax, cmap, label)}
campos_polimetricos = {
    'ZDR':  ('differential_reflectivity', -2, 6,   'pyart_RefDiff', 'ZDR (dB)'),
    'RHOHV':('cross_correlation_ratio',    0.6, 1.05, 'pyart_Wild25', 'RhoHV'),
}

for clave_iris, (clave_pyart, vmin, vmax, cmap, label) in campos_polimetricos.items():
    # Buscar el campo por nombre IRIS o por nombre estándar de PyART
    campo = None
    for candidato in [clave_iris, clave_pyart]:
        if candidato in radar.fields:
            campo = candidato
            break

    if campo is None:
        print(f"⚠️  Campo '{clave_iris}' no disponible en este archivo.")
        continue

    fig, ax = plt.subplots(figsize=(8, 7))
    display.plot(
        campo,
        sweep=sweep,
        ax=ax,
        vmin=vmin,
        vmax=vmax,
        cmap=cmap,
        title=f"{clave_iris} — Barrido {radar.fixed_angle['data'][sweep]:.1f}°",
        colorbar_label=label,
        axislabels=('Distancia E-O (km)', 'Distancia N-S (km)')
    )
    ax.set_xlim(-300, 300)
    ax.set_ylim(-300, 300)
    plt.tight_layout()
    plt.show()
Tipo Publicacion
Manuales e Instructivos

Espacios para escuchar, proponer y actuar

¿Sabías que puedes aportar ideas, hacer control ciudadano y colaborar en la planeación institucional del IDEAM? En nuestra sección Participa encontrarás espacios abiertos para la consulta ciudadana, el control social, la colaboración e innovación, y mecan

Descubre cómo puedes participar arrow_forward_ios