This topic aims to describe the specification from a technical point of view. %TOC% ---+ 1.3 Granularity The following discussion apply to data extraction from individual OIFits files. Subgrouping must be done in the following order : target(OI_TARGET), instrument(OI_WAVELENGTH), night (OI_DATA rows) ---++ Group by targets The purpose is to identify different targets within an OIFits file or a file set. ---+++ Check and identify a target with Simbad Function: return id for a target given its description Inputs: target name (string) and/or coords (ra(deg), dec(deg), equinox(int)) Output: Simbad target identifier ---++++ Definitions Target identifier (integer): OID (integer) from Simbad resolution if success resolving target ---++++ Function contents * if target_name * do name resolution with Simbad * no result * continue * single result: check returned coords against given coords * no coords: return identifier * off coords: raise error * within search radius: report difference, return identifier * more than one result * select result with closest to coords (within search radius) * do resolution with coords (and search radius) * no result * continue * single result * if name != result.name, report warning * return identifier * multiple result * report warning * return closest result * return resolution failure ---++++ Use cases * invalid coords * fancy coords * resolution of target name close to coords * target name and coords do not match (big distance) * unknown target ---++++ Impact * jmcs : * manage coords with equinox != 2000 * resolve target names with simbad (catalog) * oiexplorer-core * function implemtation ---++++ Notes * selection of the search radius for coord resolution * associate resolution timestamp to result in case of reprocessing later? * any additional information to save from resolution result? ---+++ Identify target Function: return id for a target given its description Inputs: target name (string) and or coords (ra(deg), dec(deg), equinox(int)) Output: target identifier This provides an identifier even if the target is unknown by Simbad. ---++++ Definitions temporary id: negative integer (no conflict with Simbad ID) id cache: an association table between name or coords and identifier ---++++ Function contents * try resolving with Simbad * success * return identifier * failure * search temporary id cache with coords * if unknown target * create a new temporary id * save association of temporary id with coords in cache * return id ---+++ Identify targets in a !OIFitsFile An !OIFits file can contain data for several targets. These targets are represented as rows inside the OI_TARGET table. There is no guarantee that the targets are correct and unique within the target. Function: associate ids to targets in a !OIFits file Inputs: OI_TARGET table (TARGET_ID, RAEP0, DECEP0, EQUINOX columns) ---++++ Definitions OI_TARGET identifier: derived column with type integer temporary id: negative integer (to separate from Simbad identifier) associated with coords ---++++ Function contents * for each row in table * if fancy/incomplete coords * return failure * run 'identify target' * success * set derived column with id * error * search temporary id cache with coords * if unknown target * create a new temporary id * save association temporary id with coords * return temporary id ---++++ Use cases * invalid coords * resolution of target name close to coords * target name and coords does not match (big distance) * unknown target * set unknown targets * fancy coords * missing coords * missing name * duplicated targets in rows ---++++ Impact * oitools: add derived columns in OI_TARGET (!TargetUUID + !CatalogIDs) * oiexplorer-core: function implementation ---++ Group by instrument mode Function: retrieve instrument modes %BR% Inputs: OI_WAVELENGTH tables : INSNAME + EFF_WAVE_min/max + NB_EFF_WAVE + EFF_BAND %BR% knowledge instrument_mode database %BR% Outputs: List of instrument modes Do not presume that every data are sorted properly in OIFits files when searching for min/max values. ---+++ Use cases * same data with epsilon values should retrieve the same instrument mode (may feed INSNAME aliases) ---+++ Impact * oitools : add derived column (InsModeID for each OI_DATA or one per data row?) * oiexplorer-core : compute instrument signature (insname, wavelengths, resolution) * oidb : * use instrument signature to select instrument mode * insname aliases, knowledge database (aspro-conf) * instrument configurations ---+++ Examples ---+++ Questions: * how to handle data for unknown instrument ? * how to store an instrument_mode (single string, fields concatenation...) * How to solve ambiguity for MIDI (and MATISSE) between HIGH_SENS and SCI_PHOT ? ---++ Group by nights Function: split by observation nights %BR% Inputs: OI_DATA tables : (DATE-OBS + TIME ) or (MJD), ARRNAME %BR% OI_ARRAY tables %BR% Outputs: List of observation nights ---+++ Use cases * handle oifits without OI_ARRAY ---+++ Impact * jmal : date, coords * oitools : add derived column (NightID for each data line) * oiexplorer-core : computing NightID ---+++ Examples ---++ General * oiexplorer-core must provide for every table row : the targetId, nightId, targetUuid * do we have to refresh/compare data retrieved by simbad
This topic: Jmmc/Software
>
OiDbTechnicalSpecs
Topic revision: r4 - 2014-04-09 - PatrickBernaud
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback