fernando oropeza rosales - unamcabernet.atmosfcu.unam.mx/publico/curso_imta/... · pequeño...

Post on 15-May-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introducción a Matlab

Jiutepec, Morelos 27, 28 y 29 de Abril de 2011

Fernando Oropeza Rosales

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

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/

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 )

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

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)

Trabajando con la base de datos Maya

Mapa de lluvia según MAYA, para el 01-10-1961

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)

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

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

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

Archivos NetCDF

Jiutepec, Morelos 27, 28 y 29 de Abril de 2011

Fernando Oropeza Rosales

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?

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

¿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

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”

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

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

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)

Trabajando con archivos de WRF(Petición de Fabian)

Jiutepec, Morelos 27, 28 y 29 de Abril de 2011

Fernando Oropeza Rosales

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.

Simulaciones Operativas

WRF

WW-III

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

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

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“

Generar archivo nc_dump.txt

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‟);

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]);

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

top related