This shows you the differences between two versions of the page.
iberonesia_configuration [2015/02/27 10:03] 0.0.0.0 created |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Iberonesia_configuration ====== | ||
- | =====Calibración de ozono en la base de datos===== | ||
- | ====Introducción==== | ||
- | 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**. | ||
- | ====Calibración de los datos de ozono==== | ||
- | 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. | ||
- | |||
- | ===Ficheros icf=== | ||
- | 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;" | **Tabla 1 ** | ||
- | |- | ||
- | ! 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 || 0 | ||
- | |- | ||
- | ! 2 | ||
- | | -.2473 ||Ozone temperature coefficient for slit 2 || || brewerid || int(11) || YES || MUL || NULL | ||
- | |- | ||
- | ! 3 | ||
- | | -.6914 ||Ozone temperature coefficient for slit 3 || || oslit1 || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 4 | ||
- | | -.6902 ||Ozone temperature coefficient for slit 4 || || oslit2 || double || YES || || NULL | ||
- | |- | ||
- | ! 5 | ||
- | | -.2794 ||Ozone temperature coefficient for slit 5 || || oslit3 || double || YES || || NULL | ||
- | |- | ||
- | !6 | ||
- | | 0 ||Micrometer steps per degree || || oslit4 || double || YES || || NULL | ||
- | |- | ||
- | ! 7 | ||
- | |.3446 ||Ozone on ozone ratio || || oslit5 || double || YES || || NULL | ||
- | |- | ||
- | ! 8 | ||
- | |2.35 ||SO2 on SO2 ratio || || mstep || double || YES || || NULL | ||
- | |- | ||
- | ! 9 | ||
- | |1.1533 ||Ozone on SO2 ratio || || o3o3rate || double || YES || || NULL | ||
- | |- | ||
- | ! 10 | ||
- | |1690 ||ETC on ozone ratio || || so2so2rate || double || YES || || NULL | ||
- | |- | ||
- | ! 11 | ||
- | |215 ||ETC on SO2 ratio || || o3so2rate || double || YES || || NULL | ||
- | |- | ||
- | ! 12 | ||
- | |4E-08 ||Dead time (seconds) || || etco3rate || double || YES || || NULL | ||
- | |- | ||
- | ! 13 | ||
- | |286 ||Wavelength calibration step number || || etcso2rate || double || YES || || NULL | ||
- | |- | ||
- | ! 14 | ||
- | |14 ||Slit mask motor delay || || deadtime || double || YES || || NULL | ||
- | |- | ||
- | ! 15 | ||
- | |1688 ||Umkehr offset || || wstepn || double || YES || || NULL | ||
- | |- | ||
- | ! 16 | ||
- | |0 ||Neutral density of filter 0 (divide by 10e4 to get attenuation) || || motordelay || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 17 | ||
- | |5000 ||Neutral density of filter 1 (divide by 10e4 to get attenuation) || || uoffset || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 18 | ||
- | |10000 ||Neutral density of filter 2 (divide by 10e4 to get attenuation) || || nfilter0 || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 19 | ||
- | |15000 ||Neutral density of filter 3 (divide by 10e4 to get attenuation) || || nfilter1 || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 20 | ||
- | |20000 ||Neutral density of filter 4 (divide by 10e4 to get attenuation) || || nfilter2 || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 21 | ||
- | |25000 ||Neutral density of filter 5 (divide by 10e4 to get attenuation) || || nfilter3 || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 22 | ||
- | |2972 ||Zenith motor steps per revolution || || nfilter4 || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 23 | ||
- | |Mkii ||Brewer model type || || nfilter5 || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 24 | ||
- | |1 ||COM port number || || zenithmotor || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 25 | ||
- | |0 ||ozone temperature coefficient for mercury exit slit || || brewer_model || varchar(255) || YES || || NULL | ||
- | |- | ||
- | ! 26 | ||
- | | - ||Not Used || || com_port || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 27 | ||
- | | - ||Not Used || || o3tempcoef || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 28 | ||
- | | - ||Not Used || || no2eslit || double || YES || || NULL | ||
- | |- | ||
- | ! 29 | ||
- | | - ||Not Used || || no2slit1 || double || YES || || NULL | ||
- | |- | ||
- | ! 30 | ||
- | | - ||Not Used || || no2slit2 || double || YES || || NULL | ||
- | |- | ||
- | ! 31 | ||
- | | - ||Not Used || || no2slit3 || double || YES || || NULL | ||
- | |- | ||
- | ! 32 | ||
- | |2310 ||ozone micrometer #1 offset || || no2slit4 || double || YES || || NULL | ||
- | |- | ||
- | ! 33 | ||
- | | - ||Not Used || || no2eslit5 || double || YES || || NULL | ||
- | |- | ||
- | ! 34 | ||
- | | - ||Not Used || || o3micro1 || double || YES || || NULL | ||
- | |- | ||
- | ! 35 | ||
- | | - ||Not Used || || unused || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 36 | ||
- | | - ||Not Used || || o3wheel3 || double || YES || || NULL | ||
- | |- | ||
- | ! 37 | ||
- | | - ||Not Used || || no2abcoef || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 38 | ||
- | | - ||Not Used || || no2dsetc || double || YES || || NULL | ||
- | |- | ||
- | ! 39 | ||
- | | - ||Not Used || || no2zsetc || double || YES || || NULL | ||
- | |- | ||
- | ! 40 | ||
- | | - ||Not Used || || no2microff || double || YES || || NULL | ||
- | |- | ||
- | ! 41 | ||
- | |.998 ||grating slope || || no2wheel3 || double || YES || || NULL | ||
- | |- | ||
- | ! 42 | ||
- | |1.901 ||grating intercept || || o3no2dist || double || YES || || NULL | ||
- | |- | ||
- | ! 43 | ||
- | |2469 ||Micrometer zero position || || gslope || double || YES || || NULL | ||
- | |- | ||
- | ! 44 | ||
- | |250 ||number of motor steps to open iris || || ginter || double || YES || || NULL | ||
- | |- | ||
- | ! 45 | ||
- | |0.8 ||Computer buffer delay (larger numbers for faster computers) || || mzeropos || double || YES || || NULL | ||
- | |- | ||
- | ! 46 | ||
- | | - ||Not Used || || mopeniris || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 47 | ||
- | |256 ||Ozone filterwheel #1 position || || bufferdelay ||int(11) || YES || || NULL | ||
- | |- | ||
- | ! 48 | ||
- | |0 ||Filterwheel #2 position || || no2wpos || double || YES || || NULL | ||
- | |- | ||
- | ! 49 | ||
- | |64 ||UV filterwheel #2 position || || o3wpos || double || YES || || NULL | ||
- | |- | ||
- | ! 50 | ||
- | |40 ||Steps from zenith sensor to the hard stop || || f2wpos || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 51 | ||
- | |2223 || Zenith UV position || || uvwpos || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 52 | ||
- | |1 Jan 99 ||Release Date || || szenith || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 53 | ||
- | |   ||   || || zuvpos || int(11) || YES || || NULL | ||
- | |- | ||
- | ! 54 | ||
- | |   ||   || || rdate || int(11) || YES || || NULL | ||
- | |} | ||
- | |||
- | | ||
- | | ||
- | Los ficheros de calibración se introducen en la base de datos mediante el programa parse_icf.pl. El programa comprueba que el fichero es correcto sintácticamente y añade los datos a la tabla //icf_t//, de estructura similar (ver Tabla 1. Notar los campos adicionales //id// y //brewerid// al inicio). | ||
- | |||
- | <code>0@@</code> | ||
- | |||
- | ===Ficheros o3brewer=== | ||
- | 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). | ||
- | |||
- | <code>1@@</code> | ||
- | |||
- | {| border="1" cellpadding="5" style="font-style:italic;" style="background:#efefef;" valign="top" align="center" | ||
- | |+ align="top" style="caption-side: top; text-align: left;" | **Tabla 2** | ||
- | |- | ||
- | ! 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 || || NULL | ||
- | |- | ||
- | ! 2 | ||
- | | brewerid || int(11) || YES || MUL || NULL || **44** || sl_no2 || double || YES || || NULL | ||
- | |- | ||
- | ! 3 | ||
- | | date || date || YES || MUL || NULL || **45** || interval_scale || double || YES || || NULL | ||
- | |- | ||
- | ! 4 | ||
- | | icf_id || int(11) || YES || MUL || NULL || **46** || be2 || double || YES || || NULL | ||
- | |- | ||
- | ! 5 | ||
- | | o3ds || tinyint(1) || YES || || NULL || **47** || be3 || double || YES || || NULL | ||
- | |- | ||
- | !6 | ||
- | | o3zs || tinyint(1) || YES || || NULL || **48** || be4 || double || YES || || NULL | ||
- | |- | ||
- | ! 7 | ||
- | | o3fz || tinyint(1) || YES || || NULL || **49** || be5 || double || YES || || NULL | ||
- | |- | ||
- | ! 8 | ||
- | | o3fm || tinyint(1) || YES || || NULL || **50** || be6 || double || YES || || NULL | ||
- | |- | ||
- | ! 9 | ||
- | | no2ds || tinyint(1) || YES || || NULL || **51** || af0 || double || YES || || NULL | ||
- | |- | ||
- | ! 10 | ||
- | | no2zs || tinyint(1) || YES || || NULL || **52** || af1 || double || YES || || NULL | ||
- | |- | ||
- | ! 11 | ||
- | | no2fm || tinyint(1) || YES || || NULL || **53** || af2 || double || YES || || NULL | ||
- | |- | ||
- | ! 12 | ||
- | | o3ds_maxstd || double || YES || || NULL || **54** || af3 || double || YES || || NULL | ||
- | |- | ||
- | ! 13 | ||
- | | o3zs_maxstd || double || YES || || NULL || **55** || af4 || double || YES || || NULL | ||
- | |- | ||
- | ! 14 | ||
- | | o3fz_maxstd || double || YES || || NULL || **56** || af5 || double || YES || || NULL | ||
- | |- | ||
- | ! 15 | ||
- | | o3fm_maxstd || double || YES || || NULL || **57** || etc0 || double || YES || || NULL | ||
- | |- | ||
- | ! 16 | ||
- | | no2ds_maxstd || double || YES || || NULL || **58** || etc1 || double || YES || || NULL | ||
- | |- | ||
- | ! 17 | ||
- | | no2zs_maxstd || double || YES || || NULL || **59** || etc2 || double || YES || || NULL | ||
- | |- | ||
- | ! 18 | ||
- | | no2fm_maxstd || double || YES || || NULL || **60** || etc3 || double || YES || || NULL | ||
- | |- | ||
- | ! 19 | ||
- | | mu_ds || int(11) || YES || || NULL || **61** || etc4 || double || YES || || NULL | ||
- | |- | ||
- | ! 20 | ||
- | | mu_fz || int(11) || YES || || NULL || **62** || etc5 || double || YES || || NULL | ||
- | |- | ||
- | ! 21 | ||
- | | mu_fm || int(11) || YES || || NULL || **63** || agency || varchar(32) || YES || || NULL | ||
- | |- | ||
- | ! 22 | ||
- | | mu_no2 || int(11) || YES || || NULL || **64** || version || varchar(32) || YES || || NULL | ||
- | |- | ||
- | ! 23 | ||
- | | hh_ds || int(11) || YES || || NULL || **65** || authority || varchar(32) || YES || || NULL | ||
- | |- | ||
- | ! 24 | ||
- | | mu_ds_max || double || YES || || NULL || **66** || name || varchar(32) || YES || || NULL | ||
- | |- | ||
- | ! 25 | ||
- | | mu_ds_min || double || YES || || NULL || **67** || country || varchar(32) || YES || || NULL | ||
- | |- | ||
- | ! 26 | ||
- | | mu_fz_max || double || YES || || NULL || **68** || gaw_id || varchar(32) || YES || || NULL | ||
- | |- | ||
- | ! 27 | ||
- | | mu_fz_min || double || YES || || NULL || **69** || go3s || varchar(32) || YES || || NULL | ||
- | |- | ||
- | ! 28 | ||
- | | mu_fm_max || double || YES || || NULL || **70** || instrument_model || varchar(32) || YES || || NULL | ||
- | |- | ||
- | ! 29 | ||
- | | mu_fm_min || double || YES || || NULL || **71** || utc_offset || varchar(32) || YES || || NULL | ||
- | |- | ||
- | ! 30 | ||
- | | mu_no2_max || double || YES || || NULL || **72** || latitude || double || YES || || NULL | ||
- | |- | ||
- | ! 31 | ||
- | | mu_no2_min || double || YES || || NULL || **73** || longitude || double || YES || || NULL | ||
- | |- | ||
- | ! 32 | ||
- | | hh_ds_max || double || YES || || NULL || **74** || height || double || YES || || NULL | ||
- | |- | ||
- | ! 33 | ||
- | | hh_ds_min || double || YES || || NULL || **75** || wl_code || tinyint(1) || YES || || NULL | ||
- | |- | ||
- | ! 34 | ||
- | | recal_ds || int(11) || YES || || NULL || **76** || obs_code || tinyint(1) || YES || || NULL | ||
- | |- | ||
- | ! 35 | ||
- | | recal_zs || int(11) || YES || || NULL || **77** || column_o3 || tinyint(1) || YES || || NULL | ||
- | |- | ||
- | ! 36 | ||
- | | recal_no2ds || int(11) || YES || || NULL || **78** || stdev_o3 || tinyint(1) || YES || || NULL | ||
- | |- | ||
- | ! 37 | ||
- | | recal_no2zs || int(11) || YES || || NULL || **79** || utc_begin || tinyint(1) || YES || || NULL | ||
- | |- | ||
- | ! 38 | ||
- | | sl_o3_cor || int(11) || YES || || NULL || **80** || utc_end || tinyint(1) || YES || || NULL | ||
- | |- | ||
- | ! 39 | ||
- | | sl_no2_cor || int(11) || YES || || NULL || **81** || utc_mean || tinyint(1) || YES || || NULL | ||
- | |- | ||
- | ! 40 | ||
- | | sl_fit_cor || int(11) || YES || || NULL || **82** || n_obs || tinyint(1) || YES || || NULL | ||
- | |- | ||
- | ! 41 | ||
- | | sl_recal_cor || int(11) || YES || || NULL || **83** || m_mu || tinyint(1) || YES || || NULL | ||
- | |- | ||
- | ! 42 | ||
- | | sl_r5 || double || YES || || NULL || **84** || column_so2 || tinyint(1) || YES || || NULL | ||
- | |} | ||
- | |||
- | |||
- | |||
- | |||
- | 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. | ||
- | |||
- | ===Script brewer_o3cfg_mym.m=== | ||
- | El proceso de evaluación de datos en Iberonesia obtiene la calibración mediante la rutina de matlab brewer_o3cfg_mym.m | ||
- | |||
- | <code>2@@</code> | ||
- | |||
- | 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 | ||
- | |||
- | ===Cofiguracion por defecto, el fichero 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. | ||
- | |||
- | ====Pasos para introducir la nueva calibracion==== | ||
- | # 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) | ||
- | |||
- | |||
- | {{wiki:config_upload.jpg|frame}} |