Eubrewnet Wiki
Eubrewnet Documentation
Eubrewnet Documentation
This is an old revision of the document!
Introducir la calibración es el único proceso exclusivo del administrador, tanto de la base de datos como del sistema iberonesia.
Los programas que gestionan la base de datos están en Perl y Matlab, y aunque no es necesario su conocimiento, si es recomendable. Los más usados se encuentran en el directorio /data/bin. Todas las fuentes están alojadas en los directorios /home/admin/projects/….<br/>
La documentación sobre su uso se encuentra en comentarios al programa. Tener la precaución de abrirlos como solo lectura para no modificarlos accidentalmente.
Para introducir una calibración en la base de datos necesitaremos dos ficheros para cada brewer: #El fichero de configuración instrumental ICFJJJAA.NNN (JJJ es el día Juliano, AA el año y NNN el número del instrumento) #El fichero de configuración de la evaluación de datos del programa o3brewer (software de Martin Stanek) correspondiente, o3brewer.iXX El primero se proporciona durante las calibraciones del instrumento (Tabla 1); el segundo se genera mediante el programa o3brewer (Tabla 2). Consultar el Apéndice I para una guía de como obtener estos ficheros.
Los valores de las constantes instrumentales del brewer se encuentran en los ficheros ICFJJJAA.NNN, con fecha la de calibración (o bien con fecha cercana a ésta). El contenido del fichero ICF también se copia en la cabecera de los ficheros B según el contenido del op_st.NNN (Operating State file).<br/>
{| border=“1” cellpadding=“5” style=“font-style:italic;” style=“background:#efefef;” valign=“top” align=“center”
+ align=“top” style=“caption-side: top; text-align: left;” |
! colspan=“3” style=“background:#ffdead;” align=“center” | Formato del fichero ICF (para brewer monocromador) ! ! colspan=“5” style=“background:#ffdead;” align=“center” | Estructura de la tabla icf_t
! # !! Example !! Name !! !! Field !! Type !! Null !! Key !! Default
! 1
0 | Ozone temperature coefficient for slit 1 | id | int(11) | PRI | |||||||||
! 2
-.2473 | Ozone temperature coefficient for slit 2 | brewerid | int(11) | YES | MUL | ||||||||
! 3
-.6914 | Ozone temperature coefficient for slit 3 | oslit1 | int(11) | YES | |||||||||
! 4
-.6902 | Ozone temperature coefficient for slit 4 | oslit2 | double | YES | |||||||||
! 5
-.2794 | Ozone temperature coefficient for slit 5 | oslit3 | double | YES | |||||||||
!6
0 | Micrometer steps per degree | oslit4 | double | YES | |||||||||
! 7
.3446 | Ozone on ozone ratio | oslit5 | double | YES | |||||||||
! 8
2.35 | SO2 on SO2 ratio | mstep | double | YES | |||||||||
! 9
1.1533 | Ozone on SO2 ratio | o3o3rate | double | YES | |||||||||
! 10
1690 | ETC on ozone ratio | so2so2rate | double | YES | |||||||||
! 11
215 | ETC on SO2 ratio | o3so2rate | double | YES | |||||||||
! 12
4E-08 | Dead time (seconds) | etco3rate | double | YES | |||||||||
! 13
286 | Wavelength calibration step number | etcso2rate | double | YES | |||||||||
! 14
14 | Slit mask motor delay | deadtime | double | YES | |||||||||
! 15
1688 | Umkehr offset | wstepn | double | YES | |||||||||
! 16
0 | Neutral density of filter 0 (divide by 10e4 to get attenuation) | motordelay | int(11) | YES | |||||||||
! 17
5000 | Neutral density of filter 1 (divide by 10e4 to get attenuation) | uoffset | int(11) | YES | |||||||||
! 18
10000 | Neutral density of filter 2 (divide by 10e4 to get attenuation) | nfilter0 | int(11) | YES | |||||||||
! 19
15000 | Neutral density of filter 3 (divide by 10e4 to get attenuation) | nfilter1 | int(11) | YES | |||||||||
! 20
20000 | Neutral density of filter 4 (divide by 10e4 to get attenuation) | nfilter2 | int(11) | YES | |||||||||
! 21
25000 | Neutral density of filter 5 (divide by 10e4 to get attenuation) | nfilter3 | int(11) | YES | |||||||||
! 22
2972 | Zenith motor steps per revolution | nfilter4 | int(11) | YES | |||||||||
! 23
Mkii | Brewer model type | nfilter5 | int(11) | YES | |||||||||
! 24
1 | COM port number | zenithmotor | int(11) | YES | |||||||||
! 25
0 | ozone temperature coefficient for mercury exit slit | brewer_model | varchar(255) | YES | |||||||||
! 26
- | Not Used | com_port | int(11) | YES | |||||||||
! 27
- | Not Used | o3tempcoef | int(11) | YES | |||||||||
! 28
- | Not Used | no2eslit | double | YES | |||||||||
! 29
- | Not Used | no2slit1 | double | YES | |||||||||
! 30
- | Not Used | no2slit2 | double | YES | |||||||||
! 31
- | Not Used | no2slit3 | double | YES | |||||||||
! 32
2310 | ozone micrometer #1 offset | no2slit4 | double | YES | |||||||||
! 33
- | Not Used | no2eslit5 | double | YES | |||||||||
! 34
- | Not Used | o3micro1 | double | YES | |||||||||
! 35
- | Not Used | unused | int(11) | YES | |||||||||
! 36
- | Not Used | o3wheel3 | double | YES | |||||||||
! 37
- | Not Used | no2abcoef | int(11) | YES | |||||||||
! 38
- | Not Used | no2dsetc | double | YES | |||||||||
! 39
- | Not Used | no2zsetc | double | YES | |||||||||
! 40
- | Not Used | no2microff | double | YES | |||||||||
! 41
.998 | grating slope | no2wheel3 | double | YES | |||||||||
! 42
1.901 | grating intercept | o3no2dist | double | YES | |||||||||
! 43
2469 | Micrometer zero position | gslope | double | YES | |||||||||
! 44
250 | number of motor steps to open iris | ginter | double | YES | |||||||||
! 45
0.8 | Computer buffer delay (larger numbers for faster computers) | mzeropos | double | YES | |||||||||
! 46
- | Not Used | mopeniris | int(11) | YES | |||||||||
! 47
256 | Ozone filterwheel #1 position | bufferdelay | int(11) | YES | |||||||||
! 48
0 | Filterwheel #2 position | no2wpos | double | YES | |||||||||
! 49
64 | UV filterwheel #2 position | o3wpos | double | YES | |||||||||
! 50
40 | Steps from zenith sensor to the hard stop | f2wpos | int(11) | YES | |||||||||
! 51
2223 | Zenith UV position | uvwpos | int(11) | YES | |||||||||
! 52
1 Jan 99 | Release Date | szenith | int(11) | YES | |||||||||
! 53
| | zuvpos | int(11) | YES | |||||||||
! 54
| | rdate | int(11) | YES | |||||||||
0@@
No toda la información necesaria para evaluar los datos de ozono está en el icf; como ejemplo, el valor de la lámpara estándar de referencia requerida para corrección de SL (este valor también se facilita una vez realizada la calibración). Este y otros parámetros del proceso automático de datos son los que se aportan con el fichero o3brewer.iXX. El script parse_config.pl comprueba que sintácticamente el fichero es correcto, y en el caso de que todo esté bien llevará los datos a la BBDD (config_t, ver Tabla 2).
1@@
{| border=“1” cellpadding=“5” style=“font-style:italic;” style=“background:#efefef;” valign=“top” align=“center”
+ align=“top” style=“caption-side: top; text-align: left;” |
! colspan=“12” style=“background:#ffdead;” align=“center” | Estructura de la tabla config_t
! # !! Field !! Type !! Null !! Key !! Default !! # !! Field !! Type !! Null !! Key !! Default
! 1
id | int(11) | PRI | 0 | 43 | sl_r6 | double | YES | ||||||||||||
! 2
brewerid | int(11) | YES | MUL | NULL | 44 | sl_no2 | double | YES | |||||||||||
! 3
date | date | YES | MUL | NULL | 45 | interval_scale | double | YES | |||||||||||
! 4
icf_id | int(11) | YES | MUL | NULL | 46 | be2 | double | YES | |||||||||||
! 5
o3ds | tinyint(1) | YES | NULL | 47 | be3 | double | YES | ||||||||||||
!6
o3zs | tinyint(1) | YES | NULL | 48 | be4 | double | YES | ||||||||||||
! 7
o3fz | tinyint(1) | YES | NULL | 49 | be5 | double | YES | ||||||||||||
! 8
o3fm | tinyint(1) | YES | NULL | 50 | be6 | double | YES | ||||||||||||
! 9
no2ds | tinyint(1) | YES | NULL | 51 | af0 | double | YES | ||||||||||||
! 10
no2zs | tinyint(1) | YES | NULL | 52 | af1 | double | YES | ||||||||||||
! 11
no2fm | tinyint(1) | YES | NULL | 53 | af2 | double | YES | ||||||||||||
! 12
o3ds_maxstd | double | YES | NULL | 54 | af3 | double | YES | ||||||||||||
! 13
o3zs_maxstd | double | YES | NULL | 55 | af4 | double | YES | ||||||||||||
! 14
o3fz_maxstd | double | YES | NULL | 56 | af5 | double | YES | ||||||||||||
! 15
o3fm_maxstd | double | YES | NULL | 57 | etc0 | double | YES | ||||||||||||
! 16
no2ds_maxstd | double | YES | NULL | 58 | etc1 | double | YES | ||||||||||||
! 17
no2zs_maxstd | double | YES | NULL | 59 | etc2 | double | YES | ||||||||||||
! 18
no2fm_maxstd | double | YES | NULL | 60 | etc3 | double | YES | ||||||||||||
! 19
mu_ds | int(11) | YES | NULL | 61 | etc4 | double | YES | ||||||||||||
! 20
mu_fz | int(11) | YES | NULL | 62 | etc5 | double | YES | ||||||||||||
! 21
mu_fm | int(11) | YES | NULL | 63 | agency | varchar(32) | YES | ||||||||||||
! 22
mu_no2 | int(11) | YES | NULL | 64 | version | varchar(32) | YES | ||||||||||||
! 23
hh_ds | int(11) | YES | NULL | 65 | authority | varchar(32) | YES | ||||||||||||
! 24
mu_ds_max | double | YES | NULL | 66 | name | varchar(32) | YES | ||||||||||||
! 25
mu_ds_min | double | YES | NULL | 67 | country | varchar(32) | YES | ||||||||||||
! 26
mu_fz_max | double | YES | NULL | 68 | gaw_id | varchar(32) | YES | ||||||||||||
! 27
mu_fz_min | double | YES | NULL | 69 | go3s | varchar(32) | YES | ||||||||||||
! 28
mu_fm_max | double | YES | NULL | 70 | instrument_model | varchar(32) | YES | ||||||||||||
! 29
mu_fm_min | double | YES | NULL | 71 | utc_offset | varchar(32) | YES | ||||||||||||
! 30
mu_no2_max | double | YES | NULL | 72 | latitude | double | YES | ||||||||||||
! 31
mu_no2_min | double | YES | NULL | 73 | longitude | double | YES | ||||||||||||
! 32
hh_ds_max | double | YES | NULL | 74 | height | double | YES | ||||||||||||
! 33
hh_ds_min | double | YES | NULL | 75 | wl_code | tinyint(1) | YES | ||||||||||||
! 34
recal_ds | int(11) | YES | NULL | 76 | obs_code | tinyint(1) | YES | ||||||||||||
! 35
recal_zs | int(11) | YES | NULL | 77 | column_o3 | tinyint(1) | YES | ||||||||||||
! 36
recal_no2ds | int(11) | YES | NULL | 78 | stdev_o3 | tinyint(1) | YES | ||||||||||||
! 37
recal_no2zs | int(11) | YES | NULL | 79 | utc_begin | tinyint(1) | YES | ||||||||||||
! 38
sl_o3_cor | int(11) | YES | NULL | 80 | utc_end | tinyint(1) | YES | ||||||||||||
! 39
sl_no2_cor | int(11) | YES | NULL | 81 | utc_mean | tinyint(1) | YES | ||||||||||||
! 40
sl_fit_cor | int(11) | YES | NULL | 82 | n_obs | tinyint(1) | YES | ||||||||||||
! 41
sl_recal_cor | int(11) | YES | NULL | 83 | m_mu | tinyint(1) | YES | ||||||||||||
! 42
sl_r5 | double | YES | NULL | 84 | column_so2 | tinyint(1) | YES | ||||||||||||
Las tablas config_t e icf_t se hallan vinculadas mediante el campo config_t.icf_id (#4). Por la tanto, para garantizar que ambas están emparejadas de modo correcto, es importante que las fechas de los dos ficheros de entrada, o sea, los analizados por los parser, sean las mismas. Actualmente, esto se ha solucionado mediante la opción -d del parse_config.pl.
El proceso de evaluación de datos en Iberonesia obtiene la calibración mediante la rutina de matlab brewer_o3cfg_mym.m
2@@
La rutina busca primero si la tabla config_t existe para este brewer y elige la calibración más cercana al la fecha del fichero. En un segundo paso obtiene la configuración instrumental de icf_t, si no existe utiliza la copia que existe en la cabecera del los ficheros B. Si no existe la tabla config_t, utiliza los valores por defecto que se encuentran en la rutina brewer_ini.m
El fichero brewer_ini.m contenía la configuración de la red brewer en la antigua web, ahora su uso es obsoleto y desarrollar programas que hagan uso de esta informacion está totalmente desaconsejado. Se mantuvo para facilitar la transicion entre el anterior diseño y el actual, siendo ahora su único uso el de almacenar los valores por defecto de la configuración.
# Obtener los ficheros ICFJJJYY.NNN y o3brewer.iXX. Es recomendable que el fichero o3brewer.ixx no supere las 100 líneas. Esto es debido a que las nuevas versiones de la aplicación o3brewer añaden nuevos campos al fichero de configuración (para medidas de aerosoles, principalmente). Sin embargo, el script parse_config.pl está diseñado con la versión antigua. # Acceder como administrador a Iberonesia.net, e ir a Administrador → Brewers (ver figura siguiente) # Seleccionar el Brewer y añadir los ficheros correspondientes. El campo date se corresponde con la fecha del fichero ICF, pero en formato yyy-mm-dd (esto equivale a la opción –d del script parse_config.pl) # Comprobar, consultando la base de datos, o bien matlab, que todo se ha realizado correctamente (con matlab, usando la rutina brewer_o3cfg_mym.m que devuelve en la variable proc_flag que configuracion usa y un código de error)