Minicurso: Introducción a herramientas computacionales para Oceanografía Física

De datos oceanográficos a un proyecto reproducible

Descripción general

Este minicurso está pensado principalmente para estudiantes de nuevo ingreso al Posgrado en Oceanografía Física de CICESE, aunque está abierto a cualquier persona interesada en adquirir herramientas computacionales básicas para el trabajo científico.

El curso está organizado alrededor de un pequeño proyecto oceanográfico que desarrollaremos a lo largo de las tres sesiones. Trabajaremos con datos de temperatura superficial del mar (SST) frente a Baja California, precipitación en Ensenada y el índice oceánico de El Niño (ONI) para explorar una pregunta general:

¿Qué relación existe entre ENSO, la temperatura superficial del mar frente a Baja California y la precipitación en Ensenada?

La intención no es realizar un análisis climático completo, sino utilizar una pregunta científica sencilla para aprender un flujo de trabajo que puedan reutilizar durante el posgrado:

organizar archivos → trabajar desde la terminal → explorar datos con Python → producir figuras → documentar el análisis → llevar control de versiones con Git → compartir el proyecto en GitHub.

No se asume experiencia previa con la terminal, Git o GitHub. Se espera únicamente cierta familiaridad básica con Python; repasaremos lo necesario conforme aparezca en el proyecto.

El material está inspirado en las lecciones abiertas de Software Carpentry, adaptadas a las necesidades del Posgrado en Oceanografía Física.

Objetivos

Al terminar el minicurso podrán:

  • navegar y trabajar con archivos desde la línea de comandos;
  • organizar un directorio de trabajo para un proyecto científico;
  • reconocer y utilizar rutas relativas y absolutas;
  • activar un ambiente de Python y ejecutar programas desde la terminal;
  • abrir y explorar archivos NetCDF con xarray;
  • leer series de tiempo almacenadas en archivos CSV;
  • realizar operaciones sencillas con datos oceanográficos y producir figuras;
  • distinguir entre exploración en un notebook y ejecución de un script;
  • registrar cambios con Git;
  • decidir qué archivos conviene (y cuáles no conviene) incluir en un repositorio;
  • respaldar y compartir un proyecto mediante GitHub.

Requisitos

  • Traer la laptop con la que trabajarán durante el posgrado.
  • Completar las instrucciones de preparación e instalación antes de la primera sesión.
  • Tener instalada una terminal, Git y el ambiente de Python indicado para el curso.
  • Crear una cuenta gratuita de GitHub antes de la sesión 3.

Si tienes problemas con la instalación, escribe a kramosmu@cicese.edu.mx antes del inicio del curso.


El proyecto del curso

Trabajaremos con tres tipos de datos:

  • SST de Baja California: promedios mensuales en formato NetCDF.
  • Precipitación en Ensenada: serie de tiempo en formato CSV.
  • ONI: índice de ENSO en formato CSV.

Al terminar, cada participante tendrá un repositorio organizado aproximadamente de esta forma:

enso-baja-project/
├── data/
├── notebooks/
│   └── analysis.ipynb
├── scripts/
├── figures/
├── README.md
├── .gitignore
└── environment.yml

Contenido del curso

1. De archivos a un proyecto: línea de comandos

Basado en The Unix Shell.

  • ¿Qué es la terminal y para qué sirve en computación científica?
  • Navegación por el sistema de archivos: pwd, ls, cd.
  • Rutas relativas y absolutas.
  • Creación y organización de directorios y archivos.
  • Copiar, mover y eliminar archivos.
  • Comodines para trabajar con grupos de archivos.
  • Inspección de archivos de texto con cat, head y wc.
  • Introducción a redirecciones y pipes.
  • Activar un ambiente de Python.
  • Ejecutar JupyterLab y programas de Python desde la terminal.

El objetivo de esta sesión es que cada participante construya y entienda la estructura de su propio proyecto.

2. De datos a una pregunta: Python, xarray y series de tiempo

Inspirado en Programming with Python y adaptado al análisis de datos oceanográficos.

No será una introducción exhaustiva al lenguaje Python. Repasaremos únicamente los elementos necesarios para trabajar con los datos del proyecto.

  • Uso básico de JupyterLab.
  • Importar paquetes y leer mensajes de error.
  • Arreglos y operaciones básicas con NumPy.
  • Abrir archivos NetCDF con xarray.
  • Dataset, DataArray, dimensiones, coordenadas y atributos.
  • Seleccionar y reducir datos.
  • Calcular una serie regional de SST.
  • Introducción a climatologías y anomalías.
  • Leer archivos CSV con pandas.
  • Explorar las series de ONI y precipitación.
  • Visualización básica con xarray y matplotlib.
  • Guardar una figura.
  • Notebook vs. script.

Al final de esta sesión tendremos varias piezas del análisis y empezaremos a pensar qué relaciones vale la pena explorar en el proyecto final.

3. De análisis a proyecto reproducible: Git y GitHub

Basado en Version Control with Git.

  • ¿Qué problema resuelve el control de versiones?
  • Diferencia entre Git y GitHub.
  • Crear un repositorio con git init.
  • Revisar el estado del proyecto con git status.
  • Inspeccionar cambios con git diff.
  • Preparar cambios con git add.
  • Crear commits con mensajes informativos.
  • Consultar el historial.
  • Recuperar cambios sencillos.
  • Usar .gitignore.
  • ¿Qué archivos científicos deben entrar a Git y cuáles no?
  • Crear un repositorio remoto.
  • push y pull.

La sesión terminará con el inicio del proyecto final.


Proyecto final

Como trabajo posterior a la sesión 3, cada participante o pareja preparará un notebook que combine los datos disponibles para investigar una pregunta propia.

Algunas posibilidades son:

  • ¿Cómo cambia la SST frente a Baja California durante eventos El Niño y La Niña?
  • ¿Cómo se comporta la precipitación en Ensenada durante distintas fases de ENSO?
  • ¿Existe una relación aparente entre ONI y anomalías regionales de SST?
  • ¿Todos los eventos El Niño muestran una respuesta regional similar?
  • ¿Qué ocurre si se introduce un desfase entre dos de las series?

El notebook final deberá incluir:

  1. una pregunta clara;
  2. una breve descripción de los datos utilizados;
  3. el análisis;
  4. una o dos figuras;
  5. una interpretación breve de los resultados.

Sesión 4 opcional: resultados, problemas y discusión

Si existe interés, tendremos una cuarta sesión para revisar los proyectos.

La sesión se dedicará a:

  • resolver algunos de los problemas más comunes encontrados durante el análisis;
  • revisar dificultades con fechas, dimensiones, datos faltantes, figuras o Git;
  • presentar brevemente los proyectos;
  • discutir qué conclusiones están sustentadas por los datos y cuáles requerirían un análisis más cuidadoso;
  • identificar posibles extensiones: estacionalidad, tendencias, autocorrelación, desfases, significancia estadística y causalidad.

La intención es cerrar el curso mostrando cómo un flujo de trabajo computacional sencillo puede convertirse en el punto de partida de una investigación científica.


Calendario

Tres sesiones de aproximadamente 2 horas, los lunes de 10:00 a 12:00.

Fecha Sesión
14 septiembre 2026 De archivos a un proyecto: línea de comandos
21 septiembre 2026 De datos a una pregunta: Python, xarray y series de tiempo
28 septiembre 2026 De análisis a proyecto reproducible: Git y GitHub
5 octubre 2026 Sesión opcional: proyectos, problemas y discusión

Inscripción

Para participar, envía un correo a kramosmu@cicese.edu.mx.

Cupo limitado a 20 personas.


Día 1. De archivos a un proyecto

14 de septiembre de 2026

Esta sesión está basada parcialmente en la lección La terminal de Unix de Software Carpentry. El material original es una excelente referencia para repasar y profundizar después de la clase.

Antes de comenzar

  1. Descarga el archivo de materiales del curso.
  2. Expande el archivo .zip en un lugar que puedas localizar fácilmente, por ejemplo Desktop/ o Escritorio/.
  3. No reorganices los archivos todavía: esa será una de las primeras actividades de la sesión.
  4. Verifica que puedes activar el ambiente del curso.

Material


Día 2. De datos a una pregunta

21 de septiembre de 2026

Trabajaremos sobre el mismo proyecto creado en la sesión 1.

Usaremos Python, JupyterLab, xarray y pandas para explorar SST, ONI y precipitación, y construiremos algunas de las piezas que después podrán integrarse en el proyecto final.

Material


Día 3. De análisis a proyecto reproducible

28 de septiembre de 2026

Usaremos Git sobre el proyecto que ya hemos desarrollado durante las sesiones anteriores. Aprenderemos a registrar cambios, ignorar archivos que no deben versionarse y respaldar el proyecto en GitHub.

Al final de la sesión se planteará formalmente el proyecto final.

Material


Día 4. Proyectos, problemas y discusión

5 de octubre de 2026 — opcional

Si hay interés, utilizaremos esta sesión para revisar los retos encontrados, comparar estrategias de análisis y presentar brevemente los proyectos desarrollados.