scieee AI-readable full text Open interactive document viewer

Tutorial de LiveCROCO v2.1.2 - Uso de Jupyter Notebooks para Crear una Grilla con CROCO_PYTOOLS v2.0.1

Sepulveda, Hector Hito

Abstract

Tutorial que muestra el uso de Juypter Notebooks para crear una grilla para el modelo CROCO v2.1.2 usando las herramientas CROCO_PYTOOLS v2.0.1. Se muestra la aplicacion para el caso Benguela

Full text

LiveCROCO-v2.1.2-Python Versi´on 0.9 12/2025 Jupyter Notebook para Crear la Grilla 1. Prop´osito En este tutorial revisaremos el uso de loa Jupyter Notebooks en la m´aquina virtual LiveCROCO para la creaci´on del archivo de grilla CROCO GRD.NC 2. Usando LiveCROCO 2.1. Creando el directorio de trabajo Run Usaremos la configuraci´on llamada BENGUELA como ejemplo. Esta corresponde a un dominio de la zona de surgencia de Benguela de baja resoluci´on. Esta configuraci´on es la que viene por defecto en el c´odigo de CROCO. El primer paso es abrir un terminal apretando en el ´ıcono rojo a la izquierda, bajo el s´ımbolo de Firefox, y en ese terminal escribir 1cd Desktop despu´es 1./create_config.bash lo que le dar´a 1Your choices : 2CROCO_DIR : /home/livecroco/croco-v2.1.2 3TOOLS_DIR : /home/livecroco/croco_tools-v2.1.0 4PYTOOLS_DIR : /home/livecroco/croco_pytools-v2.0.1 5CONFIG_HOME_DIR : /home/livecroco/Desktop/ 6CONFIG_WORK_DIR : /home/livecroco/Desktop/ 7CONFIG_NAME : Run 8OPTIONS : oce-dev xios test_cases agrif inter forc pisces sediment mustang 9oanalysis mattools pytools 10 Do you want to proceed ? [Y/n] y al apretar la tecla Yaparece 1Creating configuration ... 2 3Copy CROCO useful scripts and input files 4----------------------------------------- Este script crea un directorio con el nombre definido por la variable CONFIG NAME con todos los c´odigos necesarios para realizar su simulaci´on, este ser´a nuestro directorio de trabajo. 3. Creando los archivos de entrada Para crear los archivos de entrada usaremos una serie de funciones llamadas en su conjunto CROCO PYTOOLS, en particular el paquete PREPRO. 3.1. CROCO PYTOOLS Para crear los archivos de entrada usando Python comenzamos cambi´andonos al directorio donde est´an las rutinas CROCO PYTOOLS 1 LiveCROCO-v2.1.2-Python Versi´on 0.9 12/2025 1cd Run 2cd croco_pytools-v2.0.1 luego activamos el ambiente conda con el que fueron instaladas estas rutinas 1conda activate croco_pyenv Los Jupyter Notebooks se encuentran en el directorio prepro 1cd prepro en este directorio encontraremos las siguientes rutinas 1download_era5.py make_bry.py nb_make_grid.ipynb 2download_glofas_river.py make_grid.py nb_make_grid_zoom.ipynb 3download_hycom.py make_ini.py nb_make_rivers.ipynb 4download_mercator.py make_rivers.py readers.jsonc 5Examples make_tides.py Tests 6__init__.py Modules Usaremos en este tutorial el archivo nb make grid.ipynb para generar la grilla (archivo GRD). Necesitamos tambi´en el archivo de par´ametros que copiaremos desde el subdirectorio Examples 1cp Examples/benguela/benguela.ini . 3.1.1. Archivo de Grilla Para activar el Jupyter Notebook usamos la instrucci´on 1jupyter notebook nb_make_grid.ipynb que despliega un mensaje parecido al siguiente 1[I2025-12-05 11:59:03.391 ServerApp]jupyter_lsp | extension was successfully linked. 2[I2025-12-05 11:59:03.394 ServerApp]jupyter_server_terminals | extension was successfully 3[I2025-12-05 11:59:03.398 ServerApp]jupyterlab | extension was successfully linked. 4[I2025-12-05 11:59:03.404 ServerApp]notebook | extension was successfully linked. 5[I2025-12-05 11:59:03.408 ServerApp]Writing Jupyter server cookie secret to /home/livecroco 6[I2025-12-05 11:59:04.285 ServerApp]notebook_shim | extension was successfully linked. 7[I2025-12-05 11:59:04.337 ServerApp]notebook_shim | extension was successfully loaded. 8[I2025-12-05 11:59:04.340 ServerApp]jupyter_lsp | extension was successfully loaded. 9... 10 11 ... 12 [I2025-12-05 11:59:13.485 ServerApp]Kernel started: 8549f84d-a0f2-43e6-8d3e-1cbc52c60782 13 [I2025-12-05 11:59:14.570 ServerApp]Connecting to kernel 8549f84d-a0f2-43e6-8d3e-1cbc52c60 14 [W2025-12-05 11:59:14.573 ServerApp]The websocket_ping_timeout (90000)cannot be longer than 15 Setting websocket_ping_timeout=30000 16 [I2025-12-05 11:59:14.582 ServerApp]Connecting to kernel 8549f84d-a0f2-43e6-8d3e-1cbc52c60 17 [I2025-12-05 11:59:14.597 ServerApp]Connecting to kernel 8549f84d-a0f2-43e6-8d3e-1cbc52c60 18 [I2025-12-05 12:01:12.457 ServerApp]Saving file at /nb_make_grid.ipynb mostrando la siguiente pagina en el navegador Firefox 2 LiveCROCO-v2.1.2-Python Versi´on 0.9 12/2025 Figura 1: Inicio del Jupyter Notebook Este ambiente de trabajo consiste de seccione de c´odigo, que podemos llamar celdas, las cuales podemos seleccionar, editar, y ejecutar. Ese es un ambiente gr´afico que nos va a ir mostrando el resultado de nuestras instrucciones. Para comenzar primero seleccionamos una celda. La celda seleccionada mostrara una barra azul a su izquierda. Noten los par´entesis cuadrados [] que al estar varios indican que esa secci´on de c´odigo no ha sido ejecutada. Figura 2: Selecci´on de una celda en el Jupyter Notebook Para ejecutar esa secci´on de c´odigo apretamos las teclas Shift+Enter. Primero en los par´entesis cuadrados aparece un asterisco [∗] que indica que esta calculando y despu´es un n´umero [1] que indica que esas instrucciones han sido ejecutadas. El n´umero representa la cantidad de celdas activadas. En este caso, como es la primera, aparece el n´umero 1. 3 LiveCROCO-v2.1.2-Python Versi´on 0.9 12/2025 Figura 3: Celda ejecutada en el Jupyter Notebook En este caso no aparece nada mas pues en este pedazo de c´odigo solo pedimos que se cargaran unas librer´ıas. Mas adelante aparecer´an otros mensajes o gr´aficos. Algunas celdas de Jupyter Notebook solo contienen informaci´on que es ´util para interpretar el c´odigo, como es el caso de la Fig.(4) Figura 4: Celda con la descripci´on de directorios y nombre de variables que ser´an usado En la siguiente celda editaremos el nombre del archivo de par´ametros que usaremos. Reemplazamos grid.ini Figura 5: Archivo de par´ametros predefinido. grid.ini por benguela.ini Figura 6: Modificaci´on del archivo de par´ametros a leer. Escribimos benguela.ini 4 LiveCROCO-v2.1.2-Python Versi´on 0.9 12/2025 y posteriormente ejecutamos esa secci´on del c´odigo, como en los casos anteriores apretando las teclas Shift+Enter. Eso nos entrega Figura 7: Lectura de variables del archivo benguela.ini Al activar la siguiente secci´on obtenemos informaci´on sobre los archivos de batimetr´ıa que ser´an usados para escribir la grilla del modelo y el archivo de l´ınea de costa que sera usado para dibujar el contorno de esta en los mapas Figura 8: Configuraci´on de archivos de entrada en batimetr´ıa y l´ınea de costa Podemos ver en la Fig. 8 que la batimetr´ıa se basa en el archivo etopo2.nc y que la l´ınea de costa proviene de los archivos GSHHS La celda representada en la Fig. 9 explica los par´ametros usar para definir el dominio que simularemos. 5 LiveCROCO-v2.1.2-Python Versi´on 0.9 12/2025 Figura 9: Explicaci´on de los par´ametros que definen un dominio de simulaci´on central lat ycentral lon definen las coordenadas de nuestro dominio. size x km ysize y km especifica el ancho, en km, en la direcci´on x e y. Ahora hay que especificar en cuantos intervalos queremos definir nuestro dominio, para eso est´an los par´ametros npoints x ynpoints y. Dividiendo el ancho de cada dimensi´on por el n´umero de puntos tendremos el tama˜no, en km de cada celda de la matriz que representa nuestro dominio. Finalmente la variable grid angle la podemos usar para rotar el dominio. Para el caso del dominio Benguela (Fig. 10) el punto central es 15 E, 32 S, con anchos de 1556 km en la direcci´on E–O, y 1334 km en la direcci´on N–S, divididos en 41 y 42 celdas respectivamente. Estos ´ultimos valores son importantes pues cuando creamos un caso nuevo, son valores que hay que modificar en el archivo param.h antes de compilar el ejecutable. Figura 10: Valores de los par´ametros que definen el dominio de simulaci´on para el caso Benguela Ahora ejecutamos la celda representada en la Fig. 11 para crear la grilla. Figura 11: 6 LiveCROCO-v2.1.2-Python Versi´on 0.9 12/2025 Con la ejecuci´on de la celda representada en la Fig. 12 podemos ver un mapa de la zona de estudio, definida por el cuadrado rojo, y la l´ınea de costa representada por la l´ınea negra. Figura 12: Esquema del dominio y la l´ınea de costa En las celdas representadas por las Figs. 13 y 14 definimos los criterios de suavizamiento de la batimetr´ıa, necesario debido al uso de las coordenadas verticales sigma, y para a remoci´on de cuerpos de agua que est´en aislados del dominio de inter´es, por ejemplo un lago que no nos interese calcular. Figura 13: Criterios para suavizamiento de la topograf´ıa 7 LiveCROCO-v2.1.2-Python Versi´on 0.9 12/2025 Figura 14: Criterios para remover cuerpos de agua aislados Aplicamos los criterios d suavizamiento y remoci´on de cuerpos de agua aislados definidos en las Figs. 13 y 14 al ejecutar la instrucci´on de la Fig. 15 Figura 15: La instrucci´on de la celda en la Fig. 16 nos muestra un mapa la batimetr´ıa del dominio ya suavizada. 8 LiveCROCO-v2.1.2-Python Versi´on 0.9 12/2025 Figura 16: Mapa del ´area de estudio con la batimetr´ıa y l´ınea de costa Finalmente, activando la celda representada en la Fig. 17, grabamos el archivo resultante (GRD) y las modificaciones al archivo de par´ametros (.INI) Figura 17: Instrucciones para grabar el archivo resultante (GRD) y las modificaciones al archivo de par´ametros (.INI) 4. Detalles avanzados Las secciones siguientes de este Jupyter Notbook contienen las instrucciones para la edici´on de la mascara y de la batimetr´ıa. Esto sera explicado en otro tutorial. Todo lo ac´a mostrado est´a preconfigurado para el caso de ejemplo Benguela en el directorio Run. En otro tutorial discutiremos qu´e modificar de esos archivos para estudiar la zona que sea de su inter´es. 9