101.2. Uso de un Notebook#
101.2. Uso de un Notebook¶
Para la Plataforma Científica de Rubin en data.lsst.cloud.
Divulgación de Datos: Vista Previa de Datos 1
Tamaño del contenedor (Container size): large
Versión de las Pipelines Científicas de LSST: r29.2.0
Última verificación de ejecución: 2025-09-02
Repositorio: github.com/lsst/tutorial-notebooks
DOI: 10.11578/rubin/dc.20250909.20
Objetivo de aprendizaje: Cómo usar un Jupyter Notebook.
Productos de datos LSST: Ninguno.
Paquetes: Ninguno.
Créditos: Desarrollado originalmente por el equipo científico de la comunidad de Rubin. Por favor, considerar reconocer su trabajo si este notebook se utiliza para la preparación de artículos de revistas, lanzamientos de software u otros notebooks.
Soporte: Se invita a toda la comunidad a hacer preguntas o plantear problemas en la Categoría de asistencia del Foro de la Comunidad de Rubin. El equipo de Rubin responderá a todas las preguntas publicadas allí.
1. Introducción¶
La Faceta Notebook de la Plataforma Científica de Rubin es JupyterLab, un entorno de software basado en un navegador para el acceso programático a datos y análisis. El entorno incluye la capacidad de ejecutar código desde la línea de comandos de la terminal, desde scripts o desde Jupyter Notebooks.
1.1. Jupyter Notebooks¶
Los Jupyter Notebooks brindan la oportunidad de combinar código, texto narrativo y las visualizaciones de datos en un mismo archivo.
La fuente más completa de documentación sobre Jupyter Notebooks se encuentra en jupyter-notebook.readthedocs.io, pero existen muchos tutoriales y demostraciones de nivel principiante muy buenos. Por lo general, una búsqueda web sobre alguna pregunta del estilo "cómo hacer una tabla markdown en jupyter notebook", ofrecerá varios buenos ejemplos. A menudo las respuestas se encuentran en StackOverflow.
2. Celdas de un Notebook¶
Un Jupyter Notebook es una serie de celdas individuales (cells). Hay tres tipos de celdas: markdown, código (code) y crudo (raw).
El tipo de celda se puede cambiar mediante el menú desplegable en la barra de menú.
2.1. Markdown¶
Este texto está en una celda de tipo markdown. Hacer doble clic sobre este texto para convertirla en una celda editable.
Con el cursor dentro de la celda editable, presionar las teclas Shift (Mayús) y Enter (Entrar) al mismo tiempo, o hacer clic en el triángulo que apunta a la derecha en la barra de menú para “ejecutar” esta celda, y volverá a mostrarse como markdown renderizado.
2.2. Código (Code)¶
La siguiente es una celda de código. Con el cursor dentro de la celda, presionar Shift-Enter (o usar el ícono del triángulo) para ejecutar la celda. El comando para imprimir las palabras ¡Hola Mundo! será ejecutado y la salida, las palabras ¡Hola Mundo!, aparecerán debajo de la celda.
# El texto precedido por # es un comentario y no será ejecutado
print('¡Hola Mundo!')
¡Hola Mundo!
2.3. Crudo (Raw)¶
3. El kernel¶
El kernel es el motor de cómputo para el notebook (la RSP usa un kernel de python3)
y se puede pensar como un compilador en vivo.
Desde el menú "Kernel", la opción "Restart Kernel and Clear Outputs of All Cells..." reinicia el kernel y limpia todas las salidas, lo que significa que todas las variables o funciones definidas son eliminadas de la memoria, y todas las celdas de código vuelven al estado "sin-ejecutar".
Si el kernel “muere” o deja de responder y ninguna celda puede ejecutarse, una causa común es haberse quedado sin memoria. Se debe reiniciar el kernel. Si se está usando un servidor de tamaño pequeño (small), cerrar la sesión, volver a iniciar sesión y seleccionar un servidor grande (large).
3.1. Ejecutar todas las celdas¶
Ir a la barra de menú superior y seleccionar "Kernel", luego seleccionar la opción para reiniciar el kernel y ejecutar todas las celdas "Restart Kernel and Run All Cells".
3.2. Matar el kernel (parada de emergencia)¶
Si una celda de código está demorando mucho tiempo en ejecutarse (e.g., si se inició por accidente un proceso para obtener los datos de un catálogo entero) se puede matar yendo a "Kernel" en el menú de la parte superior y seleccionando "Restart Kernel and Clear All Outputs". Puede igualmente tomar algunas decenas de segundos, pero detendrá el proceso y reiniciará el kernel.
4. Versión del software¶
La versión del software está determinada por la “imagen” seleccionada al iniciar sesión. Elegir siempre la imagen recomendada, a menos que se sepa que es necesaria una versión diferente del software.
Mirar a lo largo de la barra inferior de esta ventana del navegador y encontrar la versión de las Pipelines Científicas de LSST que fue seleccionada como “imagen”.
Alternativamente, descomentar las dos líneas en la siguiente celda de código y ejecutar la celda.
# ! echo $IMAGE_DESCRIPTION
# ! eups list -s | grep lsst_distrib
5. Importar paquetes¶
Los Jupyter Notebooks comienzan importando todos los paquetes que necesitarán en la primera celda de código.
No es necesario conocer estos paquetes en profundidad para completar este tutorial, pero a continuación se incluye un poco de información básica y algunos enlaces para aprender más.
numpy: Un paquete fundamental para cómputo científico con arreglos (arrays) en Python. Su documentación completa está disponible en numpy.org, e incluye guías rápidas para principiantes. (El paquete numpy no se utiliza en este notebook, pero se importa como ejemplo porque es un paquete de uso muy frecuente).
matplotlib: Este paquete es una biblioteca muy completa para crear visualizaciones estáticas, animadas e interactivas en Python. Toda su documentación se encuentra en matplotlib.org. La galería de matplotlib es un gran punto de partida y tiene enlaces a ejemplos.
astropy: Un paquete de Python con herramientas de astronomía muy útiles. Se puede aprender más en la documentación de astropy.
lsst: Todos estos paquetes forman parte de las Pipelines Científicas de LSST.
lsst.rsp.get_tap_service: habilita el acceso a imágenes y catálogos mediante el servicio TAP.lsst.daf.butler.Butler: habilita el acceso a imágenes y catálogos a través de Butler.lsst.afw.display: permite mostrar imágenes.
import numpy
import astropy
import matplotlib.pyplot as plt
from lsst.rsp import get_tap_service
from lsst.daf.butler import Butler
import lsst.afw.display as afwDisplay
5.1. Obtener la versión de los paquetes¶
Imprimir la versión de los paquetes numpy y astropy.
print('Versión de numpy: ', numpy.__version__)
print('Versión de matplotlib: ', astropy.__version__)
Versión de numpy: 2.2.6 Versión de matplotlib: 7.1.0
5.2. Encontrar los módulos de un paquete¶
Se puede ver una lista emergente de cualquier módulo de un paquete escribiendo el nombre del paquete, luego un punto y finalmente presionando la tecla Tab. Probar esto en la celda de abajo.
Usar las flechas hacia arriba y abajo para desplazarse a través de la lista emergente. Esto funciona tanto si la línea de código está comentada como si no lo está.
En la celda de abajo, numpy. está comentado porque no es una sentencia de código que se pueda ejecutar y, si no estuviera el #, esta celda fallaría en la ejecución (probar esto -- eliminar el #, presionar Shift-Enter y observar cómo falla).
# numpy.
5.3. Obtener ayuda sobre un paquete¶
Utilizar la función "help" para ver la documentación de ayuda de un paquete. Borrar el símbolo # para descomentar cualquiera de las líneas y ejecutar la siguiente celda.
La documentación de ayuda puede ser demasiado larga. Re-comentar la línea reintroduciendo el #, luego re-ejecutar la celda y la salida desaparecerá.
# help(numpy)
# help(numpy.abs)