Personal tools

ASAR Annotations process

From hpcwiki

Jump to: navigation, search

Contents

Reporte de anotaciones realizadas

El proceso de anotaciones se realizo sobre datos extraídos de las simulaciones del norte de sudamerica, este proceso se hizo en la variable de temperatura y usando el campo vectorial de las componentes de vientos y las lineas de corriente de ese mismo campo para buscar los fenómenos que se requieren encontrar, al analizar esta variable este tipo de representación que se obtiene como resultado de realizar una interpolación de los vientos en U y los vientos en V, tomando esto a consideración se hizo una exploración en un día de la simulación que esta contenida en 7 volúmenes de 27 niveles cada uno, cada volumen representa un periodo de tiempo de 3 horas.

Esta exploración se hizo en cada nivel del volumen donde se podía observar algunas estructuras con forma espiral en la zona del pacifico y en algunas ocasiones en la zona del amazonas, pero esto se observaba en los primeros niveles del volumen cuando se iba subiendo se podrían ver estructuras que preservaban una continuidad hasta cierto punto, esto se iba observando al momento de anotar estas estructuras, después se fue explorando los otros tiempos de ese día y se encontró algunas estructuras parecidas y otras totalmente diferentes.

Cada anotación se realizo tomando en cuenta la posición geográfica en la que se visualizaba el fenómeno, para tener una referencia mas

Se trato de separar el área continental del área oceánico usando distintas figuras para anotar para eso se utilizo Rectángulo en el área continental y elipse en el área oceánica

Mes de mayo

En el año 2003 se presentan fenómenos en los niveles bajos en la zona de centro américa, Nariño, Santander y Venezuela, en los niveles mas altos se encontraron este patrón de espiral u otros cambios que se presentan en los datos esto se puede observar y estos se veían en la zona oceánicas como el mar Caribe y el océano pacifico, en especial estos patrones en espiral representaban vorticidades que fueron marcadas en los distintos niveles.


Observado en el nivel 2

thumbs

Vorticidades en Costa Rica, Venezuela y Colombia (Nariño)


Observado en el nivel 16

thumbs

Vorticidades en el Pacifico y anomalías en el mar caribe en las costas colombianas y venezolanas


En el año 2004 se presentan fenómenos (vorticidades) en los niveles bajos en la zona de centro América, Venezuela, Choco y en la Amazonia (Caqueta y Choco), en los niveles mas altos (15 en adelante) se encuentra estas espirales en la zona continental de Colombia y Venezuela se encontraban grandes vorticidades


Observado en el nivel 1

thumbs

Vorticidades en Costa Rica, Venezuela, Colombia (Caqueta) y en Brasil y la posible presencia de la ZCIT en el Choco


Observado en el nivel 18

thumbs

Posibles vorticidades en el pacifico y anomalías en las costas venezolanas


En el año 2005 se presentan fenómenos en los niveles bajos en la zona de Venezuela y la orinoquia colombiana, en los niveles intermedios se encuentran Brasil y en el pacifico (costas peruanas y del Choco), en niveles superiores (15 en adelante) se encuentra otros fenómenos en la zona continental y en las zonas oceánicas del Pacifico


Observado en el nivel 2

thumbs

Patrones extraños en las costas del Peru, vorticidades en Venezuela


Observado en el nivel 18

thumbs

Posibles vorticidades en las costas del Peru y en Venezuela

Mes de Diciembre

En el año 2003 se presentan fenómenos en los niveles bajos en la zona del pacifico, la amazonia Brasilera y el Caqueta, en las zonas intermedias se empieza a ver un patrón en el pacifico, en niveles mas altos se presentan en la zona de Venezuela y grandes espirales en los niveles mas altos

Observado en el nivel 1

thumbs

Vorticidad en el Pacifico y posible vorticidad en la zona de Brasil

Observado en el nivel 17

thumbs

Anomalía en el Pacifico y en Venezuela

En el año 2004 se presentan fenómenos en los niveles bajos en la zona de centro américa, Brasil y en el Perú, en los niveles intermedios se presentan fenómenos en la zona del Brasil y ya en los niveles mas altos se presentan espirales en la zona continental de Colombia y Venezuela

Observado en el nivel 1

thumbs

Vorticidad en Costa Rica y en Brasil, patrón de la ZCIT en la zona del Choco y Cauca

Observado en el nivel 23

thumbs

vorticidad en el Guainia

En el año 2005 se presentan fenómenos en los niveles bajos en la zona de Centro américa, Venezuela, Caqueta, Brasil, Guainia y el océano pacifico, en los niveles intermedios se encuentran fenómenos en Venezuela, Pacifico, Caqueta, En algunas zonas del Perú y después en los niveles superiores se ven espirales en la zona central de Colombia

Observado en el nivel 15

thumbs

Anomalías en el pacifico y en Venezuela, posible vorticidad en el Perú

Observado en el nivel 22

thumbs

Vorticidad en el Casanare

Algoritmo de Extracción

Se ha empezado a mirar un algoritmo para la extracción de las anotaciones que utilizará los metadatos obtenidos en la etapa de extracción de variables y las anotaciones realizadas por los expertos

clc;clear all;close all; 
%% Metadatos de la simulación
import java.lang.*
% Archivo XML generado en el proceso de extracción de variables
archivodemetadatos='metadataWRF.xml';
% Archivo XML generado en el proceso de anotaciones
archivodedatosanotados='2004-04-29_00-00-00_climate_2014-09-29-JuanMolina-jmolinar3@ucentral.edu.co.wsa';

entrada='/media/juanmolina/Juan/WRFData/2004-04-29_00-00-00_climate_2014-09-29/';
salida='/home/juanmolina/Documentos/Anotaciones/'
variables={'T' 'P' 'U' 'V' 'W'};

metadataWRF=xml2structV(archivodemetadatos);
latitudes=metadataWRF.meta.Dimensions.Latitude.data.Text;
latsC = String(latitudes);
longitudes=metadataWRF.meta.Dimensions.Longitude.data.Text;
lonsC = String(longitudes);
levels=metadataWRF.meta.Dimensions.Level.data.Text;
levsC = String(levels);
latitudesV=metadataWRF.meta.Dimensions.Latitude_V.data.Text;
latsVC = String(latitudesV);
longitudesU=metadataWRF.meta.Dimensions.Longitude_U.data.Text;
lonsUC = String(longitudesU);
levelsW=metadataWRF.meta.Dimensions.Level_W.data.Text;
levsWC = String(levelsW);

separador=' ';

lats=latsC.trim.split(separador);
lons=lonsC.trim.split(separador);
levs=levsC.trim.split(separador);

latsV=latsVC.trim.split(separador);
lonsU=lonsUC.trim.split(separador);
levsW=levsWC.trim.split(separador);

latsN=[];
lonsN=[];
latsVN=[];
lonsUN=[];
levsN=[];
levsWN=[];

for i=1:length(lats)
    latsN(i)=str2double(lats(i));
end
for i=1:length(lons)
    lonsN(i)=str2double(lons(i));
end
for i=1:length(latsV)
    latsVN(i)=str2double(latsV(i));
end
for i=1:length(lonsU)
    lonsUN(i)=str2double(lonsU(i));
end
for i=1:length(levs)
    levsN(i)=str2double(levs(i));
end
for i=1:length(levsW)
    levsWN(i)=str2double(levsW(i));
end

latsN=flipud(latsN');
latsVN=flipud(latsVN');

numlat=str2num(metadataWRF.meta.Dimensions.Latitude.value.Text);
numlon=str2num(metadataWRF.meta.Dimensions.Longitude.value.Text);
numlev=str2num(metadataWRF.meta.Dimensions.Level.value.Text);
numlatV=str2num(metadataWRF.meta.Dimensions.Latitude_V.value.Text);
numlonU=str2num(metadataWRF.meta.Dimensions.Longitude_U.value.Text);
numlevW=str2num(metadataWRF.meta.Dimensions.Level_W.value.Text);

tamanoT=[numlev numlon numlat];
tamanoU=[numlev numlonU numlat];
tamanoV=[numlev numlon numlatV];
tamanoW=[numlevW numlon numlat];

maximoP=str2num(metadataWRF.meta.Variables.P.Maximum.Text);
minimoP=str2num(metadataWRF.meta.Variables.P.Minimum.Text);
maximoT=str2num(metadataWRF.meta.Variables.T.Maximum.Text);
minimoT=str2num(metadataWRF.meta.Variables.T.Minimum.Text);
maximoU=str2num(metadataWRF.meta.Variables.U.Maximum.Text);
minimoU=str2num(metadataWRF.meta.Variables.U.Minimum.Text);
maximoV=str2num(metadataWRF.meta.Variables.V.Maximum.Text);
minimoV=str2num(metadataWRF.meta.Variables.V.Minimum.Text);
maximoW=str2num(metadataWRF.meta.Variables.W.Maximum.Text);
minimoW=str2num(metadataWRF.meta.Variables.W.Minimum.Text);

maximoF=[maximoT maximoP maximoU maximoV maximoW];
minimoF=[minimoT minimoP minimoU minimoV minimoW];

%% Generar los volumenes de la simulacion
%% Datos de las anotaciones 
metadata=xml2structV(archivodedatosanotados);

estructura=metadata.estructuras.estructura;
estructurasTotales=[];
for i=1:length(estructura)
    % Extraccion de los metadatos
    Atributos=estructura{i}.Attributes;
    marcaciones=estructura{i}.marcaciones.marca;
    anotaciones=[];
    mkdir([salida '/' Atributos.nombre])
    
    for j=1:length(marcaciones)
        anotacion.id=marcaciones{j}.Attributes.id;
        anotacion.modovisualizacion=marcaciones{j}.Attributes.modoVisualizacion;
        anotacion.nivel=marcaciones{j}.Attributes.nivel;
        anotacion.tiempo=marcaciones{j}.Attributes.tiempo;
        anotacion.tipo=marcaciones{j}.Attributes.tipo;
        observ = String(marcaciones{j}.observaciones.Text);
        anotacion.observaciones=char(observ.trim);
        puntos=marcaciones{j}.puntos.punto;
        x=[];y=[];z=[];
        for k=1:length(puntos)
            x(k)=str2double(puntos{k}.Attributes.x);
            y(k)=str2double(puntos{k}.Attributes.y);
            z(k)=str2double(puntos{k}.Attributes.z);
            xn(k)=find(abs(lonsN-x(k))<1e-5);
            yn(k)=find(abs(latsN-y(k))<1e-5);
            zn(k)=find(abs(levsN-z(k))<1e-5);
        end
        for kk=1:length(variables)
            if strcmp(variables{kk},'T')
                [volumrealT]=generateVolume([entrada variables{kk} '/' variables{kk} anotacion.tiempo '.dat'],tamanoT);
            end
            if strcmp(variables{kk},'P')
                [volumrealP]=generateVolume([entrada variables{kk} '/' variables{kk} anotacion.tiempo '.dat'],tamanoT);
            end
            if strcmp(variables{kk},'U')
                [volumrealU]=generateVolume([entrada variables{kk} '/' variables{kk} anotacion.tiempo '.dat'],tamanoU);
            end
            if strcmp(variables{kk},'V')
                [volumrealV]=generateVolume([entrada variables{kk} '/' variables{kk} anotacion.tiempo '.dat'],tamanoV);
            end
            if strcmp(variables{kk},'W')
                [volumrealW]=generateVolume([entrada variables{kk} '/' variables{kk} anotacion.tiempo '.dat'],tamanoW);
            end
        end
        if xn(1)<xn(2)
            anotacion.xnf=fliplr(xn);
            anotacion.xf=fliplr(x);
        else
            anotacion.xf=x;
            anotacion.xnf=xn;        
        end
        
        if yn(1)<yn(2)
            anotacion.ynf=fliplr(yn);
            anotacion.yf=fliplr(y);
        else
            anotacion.ynf=yn;
            anotacion.yf=y;        
        end
        anotacion.zf=z;
        anotacion.znf=zn;
        [volU,volV,volW]=imageinterp(volumrealU,volumrealV,volumrealW,[numlat,numlon],numlev);
        % Creacion de los volumenes
        P=zeros([numlat numlon]);
        %Pim=zeros([numlat numlon]);
        T=zeros([numlat numlon]);
        %Tim=zeros([numlat numlon]);
        
        U=zeros([numlat numlonU]);
        %Uim=zeros([numlat numlon]);
        
        V=zeros([numlatV numlon]);
        %Vim=zeros([numlat numlon]);
        
        W=zeros([numlat numlon]);
        %Wim=zeros([numlat numlon]);
        if xn(1)>tamanoT(2)
            disp('mostrar longitud 1')
        end
        if xn(1)>tamanoT(2)
            disp('mostrar longitud 2')
        end
        
        if yn(1)>tamanoT(3)
            disp('mostrar latitud 1')
        end
        if yn(1)>tamanoT(3)
            disp('mostrar latitud 2')
        end
         for ii=xn(1):xn(2)
             for jj=yn(1):yn(2)
                 P(jj,ii)=volumrealP(jj,ii,zn(1));
                 T(jj,ii)=volumrealT(jj,ii,zn(1));
                 U(jj,ii)=volU(jj,ii,zn(1));
                 V(jj,ii)=volV(jj,ii,zn(1));
                 W(jj,ii)=volW(jj,ii,zn(1));
                 
                 
             end
         end      
         FP=fopen([salida '/' Atributos.nombre '/' anotacion.observaciones 'P' anotacion.tiempo '-' anotacion.nivel '.dat'],'w');
         fwrite(FP,P,'single');
         fclose(FP);
         FT=fopen([salida '/' Atributos.nombre '/' anotacion.observaciones 'T' anotacion.tiempo '-' anotacion.nivel '.dat'],'w');
         fwrite(FT,T,'single');
         fclose(FT);
         FU=fopen([salida '/' Atributos.nombre '/' anotacion.observaciones 'U' anotacion.tiempo '-' anotacion.nivel '.dat'],'w');
         fwrite(FU,U,'single');
         fclose(FU);
         FV=fopen([salida '/' Atributos.nombre '/' anotacion.observaciones 'V' anotacion.tiempo '-' anotacion.nivel '.dat'],'w');
         fwrite(FV,V,'single');
         fclose(FV);
         FW=fopen([salida '/' Atributos.nombre '/' anotacion.observaciones 'W' anotacion.tiempo '-' anotacion.nivel '.dat'],'w');
         fwrite(FW,W,'single');
         fclose(FW);
         anotaciones=[anotaciones anotacion];
    end
    estructuras.anotaciones=anotaciones;
    estructurasTotales=[estructurasTotales estructuras];
end

Cantidad de anotaciones

Se realizaron un total de 1120 anotaciones

  • En 2003 392 anotaciones (192 anotaciones en el mes de mayo y 200 anotaciones en el mes de diciembre)
  • En 2004 354 anotaciones (146 anotaciones en el mes de mayo y 208 anotaciones en el mes de diciembre)
  • En 2005 374 anotaciones (171 anotaciones en el mes de mayo y 203 anotaciones en el mes de diciembre)

Acceso de los datos

Para tener acceso a los datos se debe realizar una conexión via ssh

Acceso local (Universidad Central)

  • ssh -X username@172.20.150.34

Acceso externo

  • ssh -X username@190.60.115.153 -p 20022

En el caso de acceso externo se debe realizar una nueva conexión ssh al servidor 172.20.150.34

los datos se encuentran en la carpeta

/media/hpclab-data/simulation/simulation_Climate_data/

TODO

  • Se requiere revisar las anotaciones con mayor detalle (día viernes)
  • Se requiere mirar el proceso de caracterización
  • Mejorar el código para la extracción de las anotaciones
  • Documentar el código

otras actividades