ASAR Annotations process
From hpcwiki
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
Vorticidades en Costa Rica, Venezuela y Colombia (Nariño)
Observado en el nivel 16
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
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
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
Patrones extraños en las costas del Peru, vorticidades en Venezuela
Observado en el nivel 18
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
Vorticidad en el Pacifico y posible vorticidad en la zona de Brasil
Observado en el nivel 17
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
Vorticidad en Costa Rica y en Brasil, patrón de la ZCIT en la zona del Choco y Cauca
Observado en el nivel 23
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
Anomalías en el pacifico y en Venezuela, posible vorticidad en el Perú
Observado en el nivel 22
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