Skip to content

Sistemas Convectivos de Mesoescala (SCM). Con los datos de NCEP Climate Forecast System CFSv2 (Saha, 2014) se calcularon los campos sinópticos de los SCM.

Notifications You must be signed in to change notification settings

leonardojimenez1990/Calculate-SA-MCS-Index-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Calculate SAMCSIndex Python

Sistemas Convectivos de Mesoescala (SCM). Con los datos de NCEP Climate Forecast System CFSv2 (Saha, 2014) se calcularon los campos sinópticos de los SCM.

Índice SA-MCS para Carrasco, Uruguay

Descripción

Este proyecto implementa el cálculo del Índice SA-MCS (South American Mesoscale Convective Systems) para la estación meteorológica de Carrasco, Uruguay.

El índice SA-MCS es una herramienta diagnóstica que evalúa el potencial de desarrollo de sistemas convectivos de mesoescala mediante la combinación de varios parámetros meteorológicos clave.

Autor: @leonardojimenez1990
Fecha: Octubre 2025


📍 Ubicación

Carrasco, Uruguay

  • Latitud: -34.83°S
  • Longitud: -56.01°W
  • Sistema de coordenadas: WGS84 (-180° a 180°)

🎯 Características del Código

Funcionalidades Principales

Conversión automática de coordenadas: Transforma longitudes de 0-360° a -180-180°
Interpolación espacial: Usa método de vecino más cercano (nearest neighbor) para obtener el valor en Carrasco
Cálculo del índice MCS: Combina 4 componentes meteorológicas
Visualización cartográfica: Genera mapas con Cartopy
Exportación de resultados: Guarda mapas en formato PNG de alta resolución


📊 Variables Meteorológicas Utilizadas

El índice SA-MCS se calcula a partir de las siguientes variables del modelo GFS:

Variable Nivel Descripción Índice GRIB
u500hPa 500 hPa Componente U del viento 356
v500hPa 500 hPa Componente V del viento 357
t775hPa 750 hPa Temperatura* 430
u775hPa 750 hPa Componente U del viento* 436
v775hPa 750 hPa Componente V del viento* 437
w 800 hPa Velocidad vertical 450
u1000hPa 1000 hPa Componente U del viento 548
v1000hPa 1000 hPa Componente V del viento 549
pwatcapa Superficie Agua precipitable 626
lftx4 Superficie Índice de inestabilidad (4 capas) 709

Nota: *Se usa 750 hPa como aproximación a 775 hPa (no disponible en GFS 0.25°)


🧮 Fórmula del Índice SA-MCS

El índice se calcula mediante la siguiente ecuación estandarizada:

MCS = ((shear - 13.66) / 5.5) 
    + ((grad_horiz - 4.28e-5) / 5.19e-5) 
    + (-(w_800 + 0.269) / 0.286) 
    + (-(lftx + 2.142) / 2.175)

Componentes:

  1. Cizalladura vertical del viento (500-1000 hPa)

    shear = sqrt(u500² + v500²) - sqrt(u1000² + v1000²)
  2. Advección térmica horizontal a 750 hPa

    grad_horiz = -T/x - T/y
  3. Velocidad vertical a 800 hPa

    • Movimiento ascendente favorece la convección
  4. Índice de inestabilidad (4-layer lifted index)

    • Valores negativos indican inestabilidad atmosférica

📈 Interpretación de Resultados

Rango del Índice Color Interpretación
< -1.15 Blanco Muy bajo potencial convectivo
-1.15 a -0.12 Verde Bajo potencial convectivo
-0.12 a 1.58 Amarillo Potencial convectivo moderado
1.58 a 2.74 Naranja Alto potencial convectivo
> 2.74 Rojo Muy alto potencial convectivo

Criterios de enmascaramiento:

  • Se enmascaran (ocultan) valores donde pwat < 27 kg/m² Y lftx > 0 K
  • Esto filtra regiones sin suficiente humedad o con atmósfera estable

🔧 Instalación y Requisitos

Dependencias

# Crear ambiente conda (recomendado)
conda create -n mcs_index python=3.9

# Activar ambiente
conda activate mcs_index

# Instalar dependencias
conda install -c conda-forge pygrib xarray metpy matplotlib cartopy numpy

Requisitos del sistema

  • Python 3.8 o superior
  • Acceso a archivos GRIB2 del modelo GFS
  • Memoria RAM: mínimo 4 GB (8 GB recomendado)

💻 Uso

Modo Básico

python3 code/indexMCSInterCarrasco.py

Especificar archivo GRIB

Editar la línea 124 en indexMCSInterCarrasco.py:

grib_file = '/ruta/a/tu/archivo.grib2'

Transformación de Coordenadas

Conversión implementada:

# De 0-360° a -180-180°
longitudes_converted = np.where(longitudes > 180, longitudes - 360, longitudes)

Razón:

  • Convención WMO (World Meteorological Organization)
  • Facilita trabajo con coordenadas oeste (Sudamérica)
  • Compatible con sistemas cartográficos estándar

📖 Referencias

Fundamento Teórico

  1. Zipser, E. J., et al. (2006). Where are the most intense thunderstorms on Earth? Bulletin of the American Meteorological Society, 87(8), 1057-1072.

  2. Houze, R. A. (2004). Mesoscale convective systems. Reviews of Geophysics, 42(4).

  3. Brooks, H. E., et al. (2003). The spatial distribution of severe thunderstorm and tornado environments from global reanalysis data. Atmospheric Research, 67, 73-94.

Herramientas y Librerías

  1. xarray: Hoyer, S., & Hamman, J. (2017). xarray: N-D labeled arrays and datasets in Python. Journal of Open Research Software, 5(1), 10.

  2. MetPy: May, R. M., et al. (2020). MetPy: A Python Package for Meteorological Data. Unidata.

  3. Cartopy: Met Office (2010-2015). Cartopy: a cartographic python library with a Matplotlib interface.


About

Sistemas Convectivos de Mesoescala (SCM). Con los datos de NCEP Climate Forecast System CFSv2 (Saha, 2014) se calcularon los campos sinópticos de los SCM.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages