07 marzo 2015

Guía de estilo para MATLAB: Estructuras

Guía de estilo para MATLAB: Estructuras

Cuando proceso datos en MATLAB uso estructuras. El uso de estructuras hace engorroso el acceso a los datos pero me facilita el manejo de los metadatos. Para cada variable creo una estructura con el campo data donde almaceno el valor de la variable; el resto de los campos de la estructura contienen los metadatos de la variable.

Contents

Variables individuales

Supongamos que queremos graficar una serie de tiempo de la marea. Usaremos las estructuras Tiempo y Altura.

% Inicializar
clear, close all

% Se define la variable independiente
Tiempo.data = linspace(0,24);
Tiempo.units = 'hr';
Tiempo.long_name = 'Tiempo';
Tiempo.standard_name = 'time';
Tiempo.axis = 'T';

% Se define la variable dependiente
Altura.data = sin(Tiempo.data/24*2*pi);
Altura.units = 'm';
Altura.long_name = 'Altura del Nivel del Mar';
Altura.standard_name = 'sea_surface_height';

Atributos globales

Conviene incluir las estructuras de ambas variables en una estructuras que contenga los atributos globales de la serie de tiempo.

% Incluir ambas variables
Marea.Tiempo=Tiempo;
Marea.Altura=Altura;

% Definir atributos globales
Marea.Metadata.title = 'Serie de tiempo de la marea';
Marea.Metadata.institution = 'GECI';
Marea.Metadata.source = 'Datos sintéticos';
Marea.Metadata.history = [datestr(now,30) ' Versión inicial'];
Marea.Metadata.references = 'http://evaristor.blogspot.com/search/label/MATLAB';
Marea.Metadata.comment = 'Guía de estilo para MATLAB: Estructuras';

% Graficado
plot(Marea.Tiempo.data,Marea.Altura.data)
xlabel([Marea.Tiempo.long_name ' (' Marea.Tiempo.units ')']);
ylabel([Marea.Altura.long_name ' (' Marea.Altura.units ')']);
title(Marea.Metadata.title)

19 junio 2013

Algunas definiciones en el contexto de datos geoespaciales

Se define punto, serie de tiempo, perfil, mapa y trayectoria en el contexto de datos geoespaciales.

En las siguientes definiciones $x,y\in\mathbb{R}$ son coordenadas horizontales, $z\in\mathbb{R}$ es la posición vertical, $t\in\mathbb{R}^+$ es el tiempo y $u$ es el valor del dato. El subínce $0$ se usa para denotar un elemento fijo, $\left\{a_k\right\}_{k=1}^n$ representa un vector de dimensión $n$ y $A_{l,m}$ es una matriz $l \times m$.

Definiciones:

  • Punto es una quíntupla de la forma $$\left(x_0,y_0,z_0,t_0,u_0\right).$$
  • Serie de tiempo es una quíntupla de la forma $$\left(x_0,y_0,z_0,\left\{t_k\right\}_{k=1}^n,\left\{u_k\right\}_{k=1}^n\right).$$
  • Perfil es una quíntupla de la forma $$\left(\left\{x_k\right\}_{k=1}^n,\left\{y_k\right\}_{k=1}^n,\left\{z_k\right\}_{k=1}^n,t_0,\left\{u_k\right\}_{k=1}^n\right).$$
    • Perfil vertical es una quíntupla de la forma $$\left(x_0,y_0,\left\{z_k\right\}_{k=1}^n,t_0,\left\{u_k\right\}_{k=1}^n\right).$$
    • Perfil horizontal es una quíntupla de la forma $$\left(\left\{x_k\right\}_{k=1}^n,\left\{y_k\right\}_{k=1}^n,z_0,t_0,\left\{u_k\right\}_{k=1}^n\right).$$
      • Perfil zonal es una quíntupla de la forma $$\left(\left\{x_k\right\}_{k=1}^n,y_0,z_0,t_0,\left\{u_k\right\}_{k=1}^n\right).$$
      • Perfil meridional es una quíntupla de la forma $$\left(x_0,\left\{y_k\right\}_{k=1}^n,z_0,t_0,\left\{u_k\right\}_{k=1}^n\right).$$
  • Trayectoria es una quíntupla de la forma $$\left(\left\{x_k\right\}_{k=1}^n,\left\{y_k\right\}_{k=1}^n,\left\{z_k\right\}_{k=1}^n,\left\{t_k\right\}_{k=1}^n,\left\{u_k\right\}_{k=1}^n\right).$$
  • Mapa es una quíntupla de la forma $$\left(X_{l,m},Y_{l,m},z_0,t_0,U_{l,m}\right).$$
  • Serie de tiempo espacial es una quíntupla de la forma $$\left(X_{l,m},Y_{l,m},z_0,\left\{t_k\right\}_{k=1}^n,\left\{U_{k,l,m}\right\}_{k=1}^n\right).$$

11 marzo 2013

Plantilla LaTeX

Ésta es la plantilla que comúnmente uso al escribir en LaTeX

\documentclass[12pt,letterpaper,onecolumn]{article}
\usepackage{amsfonts,amsmath,amssymb,amsthm,dsfont}
\usepackage[utf8]{inputenc}
\usepackage[spanish,mexico]{babel}
% Incluir figuras
\usepackage{graphicx}
% Formato de párrafos
\usepackage{parskip}
\setlength{\parindent}{20pt}
% Encabezado y pie de página
\usepackage{fancyhdr,lastpage}
\pagestyle{fancy}
\fancyhf{}
\lhead{\footnotesize{Instituci\'on}}
\rhead{\footnotesize{Proyecto}}
\rfoot{\scriptsize{\thepage\ de \pageref{LastPage}}}
% Info
\title{T\'itulo}
\author{Evaristo Rojas}
% Documento
\begin{document}
\maketitle
\input{documento.tex}
\end{document}