Project

General

Profile

DB GUI Client

La GUI cliente es la interfaz gráfica al API cliente, que coordina la autenticación y autorización de usuarios, la búsqueda de archivos de datos en la PC del usuario, la comunicación con el servidor intermediario Gossip, y la organización de datos y metadatos en el sistema de archivos.
La interfaz es simple ya que la función principal de la GUI cliente es también simple: Subir datos.

Instalación del GUI Cliente

Descargar los ejecutables:
Linux
Windows

Configuracion

La primera vez que se ejecuta el programa, se elige un directorio para guardar archivos temporales. Se sugiere hacer check a usar el directorio por defecto, y elegir el directorio:
en Windows: C:/Windows/Temp
en Linux: /tmp

Se presenta la pantalla de Login. Usar el usuario y password respectivos.



Se muestra el usuario conectado. Para probar que todas las conexiones están funcionando, hacer click en Info -> Server

El resultado muestra el estado de los servidores Gossip (almacenamiento temporal para uploads y downloads) y Puma (almacenamiento semi-permanente).

Antiguamente, el GUI tenía operaciones de Búsqueda y Download. Esas Operaciones han sido movidas a un servidor Web que veremos dentro de poco. Elegir la opción Operations -> Upload

Upload Operation

La pantalla principal de la operación upload:

Existen dos operaciones:

  • Crear una nueva campaña (upload)
  • Subir datos a una campaña existente (insert)

Cada campaña depende de la combinación de un instrumento y un experimento, con posibilidad de varios sub-experimentos. Note que se debe contar con los permisos necesarios para operaciones que afectan la base de datos como upload e insert. Solicitar a un administrador los permisos correspondientes.

Datatype:

Existen tres tipos de datos:

  • Datos Iniciales: Cada dato inicial corresponde a los datos que se obtienen directamente del sistema de adquisición. Principalmente estos pueden ser datos crudos (raw-data) y en algunos experimentos la data pre-procesada (pdata) puede llegar a ser datos iniciales.

  • Datos Intermedios: A diferencia de la obtención de los datos iniciales, los datos intermedios son producto de un tipo de procesamiento de la data; y debido a que pueden ver diversas formas como tipos de procesamientos, los datos intermedios están definidos por niveles, donde cada nivel refleja un nivel de procesamiento de la data.

  • Datos Finales: este tipo de datos tienen las mismas características que los datos intermedios, debido a que cuentan con niveles y también están agrupados por las fechas en que se obtuvieron los datos.

Los tres tipos de datos están agrupados a la fecha en la cual se obtuvieron y a partir de aquí cada fecha (cada día) contiene un conjunto de archivos que se han obtenido en la ejecución de un experimento o procesamiento.

Level:

Texto que describe el nivel de datos intermedios y finales.

Configuration:

Se elige un directorio que contiene los datos de configuración a subir del experimento. Estos pueden ser scripts que se usaron para automatizar la ejecución, archivos de configuración de dispositivos, etc.
Nota: solo se copian archivos en la raíz del directorio seleccionado. No se copian subdirectorios. Se recomienda usar archivos comprimidos para guardar estructuras de directorio.

Metadata:

Se elige un directorio que contiene los metadatos del experimento. Por ejemplo estos pueden ser archivos que especifiquen el paso del sol, la galaxia e Hidra, reportes de actividad solar en UTC, etc.
Nota: solo se copian archivos en la raíz del directorio seleccionado. No se copian subdirectorios. Se recomienda usar archivos comprimidos para guardar estructuras de directorio.

Path:

Este es el directorio principal donde estan guardados los datos a subir. Una organización eficiente es mantener una estructura de directorios que reflejen los días de toma de datos, los experimentos y sub-experimentos de haberlos.

Profile:

Texto que identifica la estructura del directorio path, describiendo en qué sub-directorios se encuentran los archivos y al mismo tiempo identificando los días asociados. Se hace de un modo parecido a expresiones regulares, o el formato de funciones como date(). Note que en general el profile debe comenzar con path/ para hacer uso del directorio base. Cada instrumento incluye un profile por defecto, pero se también se puede personalizar.
Al hacer clic en el signo interrogativo aparece un texto de ayuda con ejemplo, que se presenta a continuación:

Date:

El directorio path puede tener muchos días de datos acumulados, pero es posible que solo un rango de éstos sean datos útiles. Se puede limitar los días adquiridos al llenar estas fechas.

SCAN:

Una vez especificados los parámetros de subida de datos, se procede a hacer un Scan al path / profile seleccionado.

Ejemplo

El siguiente ejemplo muestra los parámetros para una subida de datos. Se muestra la estructura del directorio al lado

Filtros Post Scan:

Una vez hecho el Scan, se muestra al usuario los dias encontrados en forma de calendario:

Se pueden deseleccionar los días que sean necesarios (en conjunto con el rango de días inicial esto dá bastante flexibilidad.)
Note que para Datos Iniciales, múltiples subidas de datos con los mismos nombres de archivo sobreescriben a archivos anteriores (y también en configuración y metadatos). Se recomienda tener cuidado al subir datos. De encontrarse errores post-subida de datos, se puede usar la interfaz web para pedir borrado de datos.
Para Datos Intermedios y Finales, cada nivel creado tiene sus propia configuración y metadata. No se puede escribir al mismo nivel así que se recomienda usar la combinación de rango de días y selección de días para subir todos los datos de un nivel en una sola operación. La alternativa es crear múltiples niveles cuya nombre sea descriptivo a la situación.

También se pueden filtrar ciertos días al ver los resultados del Scan en forma de lista:

Una vez elegidos los días a utilizar, apretar UPLOAD.

Progress:

En la barra de herramientas, la opción Progress mostrará el progreso de la subida de datos. La resolución para la actualización del progreso es de 1 día, asi que es posible que se tarde en actualizar hasta que un día de datos sea subido a Gossip.

El programa trabaja con Threads, de modo que se pueden crear varias operaciones de subida sin tener que esperar a que termine la anterior:

Sin embargo esta funcionalidad es por la conveniencia de poder dejar varias operaciones corriendo. La velocidad total sigue siendo limitada por la conexión ethernet hacia el servidor Gossip.
Una vez registradas, las operaciones entrarán en un sistema de colas para ser atendidas sin intervención del usuario. Una vez que se ejecuten el usuario recibirá un correo indicando que su operación a terminado. Al correr el GUI de nuevo (O apretar el botón de refresh junto a la lista de campañas de seguir abierto el GUI), aparecerá la campaña que se creó.

De haberse subido datos a una campaña existente, no habría cambios en el GUI, pero si en la página web, en donde se hacer las operaciones de búsqueda, bajada, borrado y restauración de datos.

Resumen de Subida de Datos

  • Se elige el modo de campaña “Existing” o “New”.
  • Se selecciona el instrumento
  • Se elige el experimento de las opciones mostradas para ese instrumento
  • De haber opción, se selecciona el/los subexperimento(s)
  • Seleccionar tipo de dato: Inicial, Intermedio, o Final
  • (Opcional) Añadir directorios para configuración y metadatos
  • Seleccionar el directorio base en Path
  • Seleccionar el profile del experimento, o escribir uno propio
  • (Opcional) Seleccionar rango de días
  • SCAN
  • (Opcional) Seleccionar días individuales con el calendario o lista
  • UPLOAD

GUI-ProgressBarMultiple.png View (29.3 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-RefreshCampaigns.png View (15.5 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-SampleUploadListFilter.png View (72.8 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-ProgressBar.png View (17.8 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-SampleUploadFolders.png View (9.02 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-SampleUploadCalendarFilter.png View (69.2 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-SampleUpload.png View (40 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-Profile.png View (60 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-Upload_main_screen.png View (28.2 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-InfoServerSpace.png View (8.25 KB) Juan Carlos Espinoza, 05/31/2017 01:40 PM

GUI-InfoServer.png View (14.9 KB) Juan Carlos Espinoza, 05/31/2017 01:55 PM

GUI-login.png View (31.2 KB) Juan Carlos Espinoza, 05/31/2017 01:55 PM

GUI-Workspace.png View (29.5 KB) Juan Carlos Espinoza, 05/31/2017 01:55 PM