Salut, j'étais en salon tout le début de semaine, je rattrape un peu ;) On Fri, 6 Dec 2019 10:59:40 +0100 Mathieu DORAY <Mathieu.Doray@ifremer.fr> wrote:
Ta question m'a amené à revoir ce qui était sauvegardé dans dataAcquisition et dataProcessing. Et j'ai trouvé du mélange entre ces deux notions.
dataAcquisition, c'est comment la donnée a été acquise, dataProcessing, c'est comment elle a été analysée.
"acousticFrequency", "bandwidth", "transceiverPower" et "transmitPulseLength" sont des champs qui concernent l'acquisition des donnée acoustiques. Or ils sont actuellement dans la table "dataProcessing". Ils devraient en fait être en fait stockés dans la table "dataAcquisition", et alimentés à partir des mêmes champs du fichier d'import que précédemment.
Ok, c'est tout le propos du ticket https://forge.codelutin.com/issues/9739 ;) : Pour résumer : DataAcquisition : * protected String acquisitionSoftwareVersion; * protected String loggedDataFormat; * protected String loggedDataDatatype; * protected float transceiverAcquisitionPulseLength; <- pulseLength ? * protected float transceiverAcquisitionGain; * protected float transceiverAcquisitionAbsorption; * protected String transceiverAcquisitionAbsorptionDescription; * protected float transducerAcquisitionBeamAngleAthwartship; * protected float transducerAcquisitionBeamAngleAlongship; * protected float transducerAcquisitionPsi; * protected float transceiverAcquisitionPower; * protected float transceiverAcquisitionSacorrection; * protected String echosounderSoundSpeed; * protected String soundSpeedCalculations; * protected String pingDutyCycle; * protected String softwareName; * protected String storedDataFormat; * protected String comments; * protected Collection<DataProcessing> dataProcessing; * protected AcousticInstrument acousticInstrument; * protected Transect transect; * protected Mooring mooring; * protected float bandWith; <- à créer * protected float frequency; <- à créer * protected float transceiverPower; <- à créer DataProcessing : * protected String processingTemplate; * protected String processingDescription; * protected String sounderConstant; * protected float digitThreshold; * protected int eIThresholdLow; * protected int eIThresholdHigh; * protected float transceiverProcessingGain; * protected String processingSoftwareVersion; * protected float transceiverProcessingSacorrection; * protected float transceiverProcessingAbsorption; * protected String transceiverProcessingAbsorptionDescription; * protected float transducerProcessingPsi; * protected float transducerProcessingBeamAngleAthwartship; * protected float transducerProcessingBeamAngleAlongship; * protected String acousticDensityUnit; * protected String echosounderSoundSpeed; * protected String soundSpeedCalculations; * protected String notes; * protected String id; * protected String softwareName; * protected float bandWith; <- à supprimer * protected float frequency; <- à supprimer * protected float transceiverPower; <- à supprimer * protected float transmitPulseLength; <-pulseLength à supprimer ? * protected String transceiverGainUnits; * protected String comments; * protected String channelId; * protected DataAcquisition dataAcquisition; * protected Collection<Cell> cell;
A propos, j'ai vu que les champs "channelId", "transceiverGainUnits" et "transmitPulseLength" n'avaient pas de valeur dans le dataProcessing.
Ok, c'est tout le propos du ticket https://forge.codelutin.com/issues/9739 ;)
"transceiverGainUnits" devrait avoir comme valeur par défault "Decibel (dB)"
Là je n'ai pas de colonne dans le fichier d'import, donc c'est fixe ? Du coup, pourquoi mettre un champ en base de données ?
ça résoudrait ton problème : si l'acousticFrequency varie, il faut créer un dataAcquisition différent pour chaque "acousticFrequency", auquel sera rattaché un dataProcessing (il y aura autant de dataProcessing que d'acousticFrequency).
Actuellement, on a un dataAcquisition par acousticInstrument, mais en fait, il faudrait un dataAcquisition par acousticInstrument et par acousticFrequency ? Jean