Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño...
Transcript of Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño...
![Page 1: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/1.jpg)
Introducción a Matlab
Jiutepec, Morelos 27, 28 y 29 de Abril de 2011
Fernando Oropeza Rosales
![Page 2: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/2.jpg)
La clase será Jueves y Viernes
Horario de 09:00 a 13:20 una hora con 20 min. para
comer, por la tarde de 14:20 a 18:00 hrs
Logística
Día Lugar Horario
Jueves 28 Sala de video-conferencias
Sala de video-conferencias
09:00 a 13:20
14:40 a 18:00
Viernes 29 Salón 2 DEPFI
Salón 2 DEPFI
09:00 a 13:20
14:40 a 18:00
![Page 3: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/3.jpg)
Ya subí la presentación de ayer a un servidor en la
UNAM, y hoy vamos a utilizar archivos que vamos a bajar
de ahí, la liga es:
Logística
http://cabernet.atmosfcu.unam.mx/publico/Curso_IMTA/
![Page 4: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/4.jpg)
Funcionesfunction [argumentos de salida]=nombre_funcion(argumentos de entrada)
Ejemplo:
function [xx yy zz kk jj]=stat(x)
xx=sum(x);
yy=mean(x);
zz=std(x);
kk=min(x(:));
jj=max(x(:));
End
• Discutir ejemplo programa kk.m que llama a la función stat
• Discutir sobre las TOOLBOX en Matlab y como se dan de alta (generar
stat.m y moverla a directorio de toolboxes /tools_curso_imta/stat )
![Page 5: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/5.jpg)
Trabajando con la base de datos MAYA v 1.0(Petición de Ch-Ch)
Terminar antes del descanso a las 11:30
Jiutepec, Morelos 27, 28 y 29 de Abril de 2011
Fernando Oropeza Rosales
![Page 6: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/6.jpg)
Trabajando con la base de datos Maya
MAYA v1.0, es una base de datos generada en el SMN a
partir de los datos de la base de datos climatológicas
nacional (Clicom)
![Page 7: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/7.jpg)
Trabajando con la base de datos Maya
Mapa de lluvia según MAYA, para el 01-10-1961
![Page 8: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/8.jpg)
Trabajando con la base de datos Maya
Los archivos de MAYA son la
versión texto del formato
GRD de SURFER, son
archivos de texto, con un
encabezado que contiene el
número de divisiones de la
malla en “x” (157) y en “y”
(96) las coordenadas
máxima y mínima en
longitud (-117.2, -86 W) y en
latitud (14, 33 N).
Hacemos uso de la función
grd_read_v2.m e inside
(copiar a tod@s)
![Page 9: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/9.jpg)
Trabajando con la base de datos Maya
Lo que necesita José (ch-ch) es extraer los nodos de MAYA
que están dentro del polígono del Estado de Morelos y
escribirlos en un archivo de texto, con los valores de longitud,
latitud y lluvia
-115 -110 -105 -100 -95 -9014
16
18
20
22
24
26
28
30
32
Precipitación acumulada diaria para el: 01-10-1961
0
10
20
30
40
50
60
![Page 10: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/10.jpg)
Trabajando con la base de datos Maya
http://cabernet.atmosfcu.unam.mx/publico/Curso_IMTA/tools_curso_imta/
Para bajar las toolboxes que vamos a
necesitar para estos ejercicios
Sugerencia: generar un directorio temporal dentro del directorio del
curso (p.e. /kk) y bajar ahí los archivos compactados, cambiarse de
directorio en Matlab a ese directorio y descompactar todos los archivos
(unzip nombre.zip)
Después copiar todos los directorios a
/tools_curso_imta (generar este directorio)
En el directorio de toolbox de Matlab
Dar de alta en Set Path
![Page 11: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/11.jpg)
Trabajando con la base de datos Maya
Para bajar las toolboxes que vamos a
necesitar para estos ejercicios
http://cabernet.atmosfcu.unam.mx/publico/Curso_IMTA/programas/
Sugerencia: descompactar el archivo de la misma
forma que se hizo en el paso anterior y copiar o
mover el directorio surferP (recién descompactado) al
directorio /programas
![Page 12: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/12.jpg)
Archivos NetCDF
Jiutepec, Morelos 27, 28 y 29 de Abril de 2011
Fernando Oropeza Rosales
![Page 13: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/13.jpg)
Network Common Data Form es un set de software,
librerias y formatos de archivos (independientes de la
plataforma) que permiten la creación, acceso y
distribución de datos científicos en arreglos. (distribución
libre)
http://www.unidata.ucar.edu/software/netcdf/
¿Qué son los archivos NetCDF?
![Page 14: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/14.jpg)
Un archivo NetCDF es
• Auto-descriptivo: contiene información (metadata) de los
datos que contiene
• Portable: Se puede acceder en cualquier computadora
independientemente del método de almacenamiento de
enteros, caracteres y números de punto flotante.
• Escalable: Se puede acceder en forma eficiente un
pequeño subconjunto de datos de un conjunto de datos
muy grande.
• Concatenable: Se pueden agregar datos a un archivo
(con la estructura adecuada)
• Compartible: Un usuario puede escribir en y muchos
otros leer al mismo tiempo un mismo archivo.
• Archivable: El acceso a todas las versiones de NetCDF
serán soportadas por el software actual y futuro
![Page 15: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/15.jpg)
¿Quién desarrolló NetCDF?
El software fue desarrollado por Glenn Davis, Russ Rew,
Ed Hartnett, John Caron, Steve Emmerson, y Harvey
Davies en el “Unidata Program Center” en Boulder,
Colorado, con contribuciones de muchos otros usuarios
de NetCDF
¿Como puedo trabajar con archivos NetCDF?
La distribución de NetCDF viene con interfaces para C,
Fortran 77, Fortran 90 y C++. Otros lenguajes (de cuarta
generación) que tienes sus propias interfaces son:
1) Ada , 2) IDL , 3) Java , 4) MATLAB , 5) Perl , 6) Python
, 7)R, 8) Ruby, 9) Tcl/Tk
![Page 16: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/16.jpg)
Que necesita Matlab
•MEXNC es una interfaz “mex-file” para manejar los archivos
NetCDF en Matlab y tiene equivalentes uno a uno con la API
(Aplication Programming Interface) de C para NetCDF
•SNCTOOLS es un set de archivos “m” (scripts de Matlab)
que se basan en el uso de MEXNC
http://mexcdf.sourceforge.net/
Poner archivos en el directorio de “toolbox” y dar de alta en el
“path”
![Page 17: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/17.jpg)
Instalando SNCTOOLS
Bajar de cabernet los archivos compactados para win32 o
win64, según sea su caso, descompactar y copiar los
directorio mexnc y snctools al directorio de toolboxes, y
darlos de alta en el path
http://cabernet.atmosfcu.unam.mx/publico/Curso_IMTA/tools_curso_imta/
Si no tiene permisos buscar:
\matlab\r2010a\toolbox\local\pathdef.m
Y cambiar permisos de escritura
![Page 18: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/18.jpg)
Instalando SNCTOOLS
Para los que tienen Win-64 bits, ejecutar las siguientes
líneas en la ventana de comandos:
javaaddpath([pwd'/netcdfAll-4.1.jar']);
setpref('SNCTOOLS','USE_JAVA',true);
setpref('SNCTOOLS','USE_MEXNC',false);
(Ojo: por ahora ejecutar cada vez que se quiera utilizar,
checar si alguien sabe como dejarlo permanente)
http://mexcdf.sourceforge.net/downloads/8b_10a.php
Hacer
>> which nc_dump
>>help nc_dump
![Page 19: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/19.jpg)
Probando las SNCTOOLS
Bajar el archivo prub.nc y guardarlo en el directorio
/programas y colocarse en ese directorio en Matlab
http://cabernet.atmosfcu.unam.mx/publico/Curso_IMTA/programas/
A continuación escribir:
>> f='prub.nc'
>> lon=nc_varget(f,'lon_coast');
>> lat=nc_varget(f,'lat_coast');
>> plot(lon,lat)
![Page 20: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/20.jpg)
Trabajando con archivos de WRF(Petición de Fabian)
Jiutepec, Morelos 27, 28 y 29 de Abril de 2011
Fernando Oropeza Rosales
![Page 21: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/21.jpg)
Simulaciones Operativas
Las simulaciones que vamos a utilizar fueron generadas
por la versión operativa de WRF que han desarrollado en
el grupo del Dr. Jorge Zavala del CCA (con
financiamiento parcial de PEMEX) y los archivos fueron
gentilmente proporcionados por Valentín López, el
pronóstico lo pueden consultar en:
http://132.248.8.222/pronostico_wrf/
El grupo de trabajo en ese proyecto son: Valentín López
Méndez, Oscar Calderón Bustamante, Jorge Zavala
Hidalgo, Rosario Romero Centeno, Octavio Gómez
Ramos, Olmo Zavala Romero, Oliverio Jitrik Mercado,
Erika Danaé Lopez Espinoza.
![Page 22: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/22.jpg)
Simulaciones Operativas
WRF
WW-III
![Page 23: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/23.jpg)
WRF
Weather Research and Forecasting Model: modelo
atmosférico administrado principalmente por NCAR (National
Center for Atmospheric Research) y UCAR (University
Corporation for Atmospheric Research).
Es de acceso libre, solo es necesario registrarse como
usuario del modelo, el sitio electrónico para obtenerlo:
http://www.mmm.ucar.edu/wrf/users
Pueden encontrar una descripción detallada en la
presentación de Valentín del curso de huracanes de 2009 en:
http://cabernet.atmosfcu.unam.mx/IAI/2nd_sctc/presentations/Valentin_Lopez.pdf
![Page 24: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/24.jpg)
Directorio de Trabajo
Abrir Matlab, generar y ubicarse en el directorio
/programas/WRF
f=„./data/wrfout_d01_2009-08-27_12.nc‟
nc_dump(f)
dimensions:
Time = UNLIMITED ; (25 currently)
DateStrLen = 19 ;
west_east = 244 ;
south_north = 161 ;
bottom_top = 27 ;
bottom_top_stag = 28 ;
soil_layers_stag = 5 ;
west_east_stag = 245 ;
south_north_stag = 162 ;
Meta-datos
![Page 25: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/25.jpg)
Meta-datos
variables:
char Times(Time,DateStrLen), shape = [25 19]
float U10(Time,south_north,west_east), shape = [25 161 244]
U10:FieldType = 104 d
U10:MemoryOrder = "XY "
U10:description = "U at 10 M"
U10:units = "m s-1"
U10:stagger = ""
U10:coordinates = "XLONG XLAT"
float V10(Time,south_north,west_east), shape = [25 161
244]
V10:FieldType = 104 d
V10:MemoryOrder = "XY "
V10:description = "V at 10 M"
V10:units = "m s-1"
V10:stagger = ""
V10:coordinates = "XLONG XLAT“
![Page 26: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/26.jpg)
Generar archivo nc_dump.txt
![Page 27: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/27.jpg)
Leyendo variables
Fecha para cada paso de tiempo:
fecha=nc_varget ( f , ‟Times‟);
Coordenadas de los puntos de malla
lon=nc_varget ( f , „XLONG‟);
lat=nc_varget ( f , ‟XLAT‟);
Componentes Zonal y Meridional del viento a 10 metros
u10=nc_varget ( f , ‟U10‟);
v10=nc_varget ( f , ‟V10‟);
![Page 28: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/28.jpg)
Leyendo un fragmento
Componentes Zonal y Meridional del viento en toda la columna,
si revisamos las dimensiones en los meta-datos:
float U(Time,bottom_top,south_north,west_east_stag), shape = [25 27 161 245]
26,625,375 elementos en cada variable
Si queremos leer la variable con TODAS sus dimensiones:
u=nc_varget ( f , ‟U‟,);
Que tal si leemos todos los campos x,y,z para el primer tiempo:
u=nc_varget ( f , ‟U‟,[0 0 0 0],[1 -1 -1 -1]);
![Page 29: Fernando Oropeza Rosales - UNAMcabernet.atmosfcu.unam.mx/publico/Curso_IMTA/... · pequeño subconjunto de datos de un conjunto de datos muy grande. •Concatenable: Se pueden agregar](https://reader036.fdocuments.net/reader036/viewer/2022070709/5ebe539898e8e7568970c4e1/html5/thumbnails/29.jpg)
Leyendo un fragmento
u=nc_varget ( f , ‟U‟,[0 0 0 0],[1 -1 -1 -1]);
Indice en el que quiero
extraer cada dimensión
Tamaño del fragmento
a extraer -1= TODO
Tiempo Nivel Long Lat