Author: tchemit Date: 2011-12-05 17:36:41 +0100 (Mon, 05 Dec 2011) New Revision: 145 Url: http://forge.codelutin.com/repositories/revision/echobase/145 Log: apply last acoustic data model Added: trunk/src/doc/reunions/reunion-2011-12-05.txt Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties trunk/echobase-entities/src/main/xmi/echobase.zargo trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/ReferenceCsvGenerator.java Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java 2011-12-05 08:27:59 UTC (rev 144) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java 2011-12-05 16:36:41 UTC (rev 145) @@ -45,9 +45,7 @@ result.add(EchoBaseEntityEnum.Voyage); result.add(EchoBaseEntityEnum.Transit); - result.add(EchoBaseEntityEnum.TransitVessel); result.add(EchoBaseEntityEnum.Transect); - result.add(EchoBaseEntityEnum.TransectAcousticInstrument); result.add(EchoBaseEntityEnum.DataAcquisition); result.add(EchoBaseEntityEnum.DataProcessing); result.add(EchoBaseEntityEnum.Cell); @@ -82,9 +80,7 @@ result.add(EchoBaseEntityEnum.Cell); result.add(EchoBaseEntityEnum.DataProcessing); result.add(EchoBaseEntityEnum.DataAcquisition); - result.add(EchoBaseEntityEnum.TransectAcousticInstrument); result.add(EchoBaseEntityEnum.Transect); - result.add(EchoBaseEntityEnum.TransitVessel); result.add(EchoBaseEntityEnum.Transit); result.add(EchoBaseEntityEnum.Voyage); Modified: trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties =================================================================== --- trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2011-12-05 08:27:59 UTC (rev 144) +++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2011-12-05 16:36:41 UTC (rev 145) @@ -40,6 +40,7 @@ echobase.common.cellMethod= echobase.common.cellName= echobase.common.cellType= +echobase.common.childs= echobase.common.citation= echobase.common.classCode= echobase.common.codeMemo= @@ -276,7 +277,9 @@ echobase.common.voyageDescription=Description de campagne echobase.common.voyageEndDate=Date de fin de campagne echobase.common.voyageEndHarbour=Port de fin de campagne +echobase.common.voyageEndPort= echobase.common.voyageName=Nom de la campagne echobase.common.voyageStartDate=Date de début de campagne echobase.common.voyageStartHarbour=Port de début de campagne +echobase.common.voyageStartPort= echobase.config.data.directory.description=Chemin de l'application Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo =================================================================== (Binary files differ) Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/ReferenceCsvGenerator.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/ReferenceCsvGenerator.java 2011-12-05 08:27:59 UTC (rev 144) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/ReferenceCsvGenerator.java 2011-12-05 16:36:41 UTC (rev 145) @@ -76,7 +76,8 @@ T_Query_User : [ClefPere, Clef_User, Creer, Description, Dist, GB, Gen_Description, Gen_Requete, Ident, Modif, Numordre, Requete, Status, Titre, s_ColLineage, s_GUID, s_Generation, s_Lineage] with 8 entries. Table des erreurs : [NOM_CAMPAGNE] with 2 entries. ZONE : [CODE_ZONE, s_ColLineage, s_GUID, s_Generation, s_Lineage] with 5 entries. -*/ + */ + protected final File msAccessFile; protected final File exportDirectory; Added: trunk/src/doc/reunions/reunion-2011-12-05.txt =================================================================== --- trunk/src/doc/reunions/reunion-2011-12-05.txt (rev 0) +++ trunk/src/doc/reunions/reunion-2011-12-05.txt 2011-12-05 16:36:41 UTC (rev 145) @@ -0,0 +1,285 @@ +=============== +projet echobase +=============== + +Lundi 5-12-2011 (Ifremer) + +Présents : Mathieu, Tony + +Planning +-------- + +Finaliser le modèle d'import des données acoustiques. + +Modèle acoustique +----------------- + +Entité Voyage +~~~~~~~~~~~~~ + +Sample recopie de la table *CAMPAGNE* avec en plus deux clef étrangères sur +Mission et AreaOfOperation. + +*CAMPAGNE* -> VoyageName (S) +*TYPE_CAMPAGNE* -> Mission (FK) +*DATE_DEPART* -> VoyageStartDate (Date) +*DATE_ARRIVEE* -> VoyageEndDate (Date) +*PORT_DEPART* -> StartPort (S) +*PORT_ARRIVEE* -> EndPort (S) +*ZONE* -> AreaOfOperation (FK) +*COMMENTAIRE* -> VoyageDescription (S) + +Entité Transit +~~~~~~~~~~~~~~ + +Pour les données anciennes on doit créer un transit pour une campagne + +Les seuls champs à renseigner sont les suivants : + +*TransitDescription* -> "Cruise" +*TransitStartTime* -> Voyage#VoyageStartDate +*TransitEndTime* -> Voyage#VoyageEndDate + + +Entité Transect +~~~~~~~~~~~~~~~ + +Comme pour les transits, dans les données historiques, on a un seul transect +par campagne. On crée donc artificiellement un tel objet par campagne. + +Voici les champs à renseigner : + +*Title* -> "Cruise" (S) +*Comment* -> "From Baracouda" (S) +*BinUnitsPingAxis* -> n.mi." (S) +*BinSizePingAxis* -> 1 (I) +*BinSizeRangeAxis* -> "variable" (S) ? cela ne colle pas avec un type (D) ? + +On supprime l'entité *TransitVessel* et on attache directement le Vessel sur le +Transect. + +*CAMPAGNE#NAVIRE* -> vessel (FK) + +Ensemble des nouveaux champs : + +*Abstract* (S) +*History* (S) +*Metadata* (S) +*Citation* (S) +*Licence* (S) +*VesselName* -> A supprimer car redondant +*VoyageID* -> A supprimer car redondant +*DateCreated* (Date) +*GeospatialLonMin* (D) +*GeospatialLonMax* (D) +*GeospatialLatMin* (D) +*GeospatialLatMax* (D) +*Datum* (S) +*Linestring* (S) +*GeospatialVerticalMin* (D) +*GeospatialVerticalMax* (D) +*GeospatialVerticalPositive* (S) +*TimeCoverageStart* (Date) +*TimeCoverageEnd* (Date) +*BinUnitsPingAxis* (S) +*BinSizePingAxis* (D) +*BinSizeRangeAxis* (D) + +Entité DataAcquisition +~~~~~~~~~~~~~~~~~~~~~~ + +Il s'agit d'une nouvelle table. + +On supprime l'entité *AcousticInstrumentInTransect* et on attache directement +le *AcousticInstrument* sur le Transect. + +Pour les données anciennes on crée une ligne pour chaque Transect. + +AcousticInstrument (FK) la référence sur le AcousticInstrument utilisé à partir de *EI_SONDEUR#ID_REFSONDEUR* +TransceiverAcquisitionAbsorption (D) +TransceiverAcquisitionAbsorptionDescription (S) +TransducerAcquisitionBeamAngleAthwartship (D) +TransducerAcquisitionBeamAngleAlongship (D) +TransducerAcquisitionPsi (D) +TransceiverAcquisitionPower (I) +TransectAcousticInstrumentID (S) inutile on a supprimer cette table d'association +DataAcquisitionID ID -> inutile car on a déjà une clef technique +AcquisitionSoftwareVersion (S) +LoggedDataFormat (S) +LoggedDataDatatype (S) +TransceiverAcquisitionPulseLength (D) +TransceiverAcquisitionGain (D) +TransceiverAcquisitionSacorrection (D) +PingDutyCycle (S) +EchosounderSoundSpeed (I) +SoundSpeedCalculations (S) + +Entité DataProcessing +~~~~~~~~~~~~~~~~~~~~~ + +Pour les données anciennes on crée une ligne pour chaque DataAcquisition. + +On récupère ensuite les données à partir de la table *EI_CONFIGURATION* en +utilisant la ligne de la campagne *ID_EI*. + +*ID_EI* -> DataProcessingID (S) A ne pas conserver (ref vers la campagne) +*TYPE_EI* -> ProcessingTemplate (S) +*QUALIF_EI* -> ProcessingDescription (S) +*CSTSONDEUR* -> SounderConstant (D) +*SEUILNUM* -> DigitThreshold (I) +*SEUILEIT* -> EIThreshold (I) +*ENERG_UNIT_SOURCE* -> AcousticDensityUnit (S) +*COMMENTAIRE* -> Notes (S) +*SV_GAIN* -> TransceiverProcessingGain (D) + +Nouveaux champs : + +*DataAcquisitionID* (S) A supprimer +*ProcessingSoftwareVersion* (S) +*TransceiverProcessingSacorrection* (D) +*TransceiverProcessingAbsorption* (D) +*TransceiverProcessingAbsorptionDescription* (S) +*TransducerProcessingPsi* (D) +*TransducerProcessingBeamAngleAthwartship* (D) +*TransducerProcessingBeamAngleAlongship* (D) +*EchosounderSoundSpeed* (D) +*SoundSpeedCalculations* (S) + + +Entité Cell et Data +~~~~~~~~~~~~~~~~~~~ + +On utilise plutôt une relation Cell --> childs (Cell) car une cellule peut +avoir plusieurs parents. + +On veut importer trois type de cellules : + +- cellule de type région +- cellule de type ESDU (parent de type région) +- cellule de type élémentaire (parent de type ESDU) + +Cellule de type Région +++++++++++++++++++++++ + +Cell +____ + +Il s'agit de cellules de type *RegionSURF* et *RegionCLAS*, elles proviennent +de la table *POST_STRATE*. + +On prend uniquement les cellules dont le *Type_Image* vaut : + +*SURF* -> pour une cellule de type *RegionSURF* +*CLAS* -> pour une cellule de type *RegionCLAS* + +On conserve uniquement la donnée suivbante : + +*ID_STRATE* -> *CellName* (S) c'est la clef métier que l'on veut conserver. + +Data +____ + +On considère une seule donnée pour les cellules de type *Région*, à savoir de +type *Surface*. + +La donnée est encore dans la table *POST_STRATE* dans la colonne *SURFACE* + +*SURFACE* -> *dataValue* (S) + +Cellule de type ESDU +++++++++++++++++++++ + +Les cellules de type ESDU ont pour parent des cellules de type Région et +proviennent de la table *EI_ESU*, une telle cellule aura un celluleType nommé +*ESDU*. + +Pour rattacher une cellule de type “Esdu” à sa région, on utilise la table +*SCENARIO* la région = POST_STRATE_SCENARIO et l'id de la cellule esdu c'est +DTHU_SCENARIO. + +Cell +____ + +*ID_EI_ESDU* -> DataProcessingID (S) inutile car on possède d'ja cette information +*DHTU_ESDU* -> CellName (S) Il s'agit de la clef métier que l'on va conserver +*FLAG* -> DataQualityFlagValues (FK) vers la table DataQuality#qualityDataFlagValues + +celluleType -> vers celle de nom "ESDU" + +Data +____ + +5 types de données possibles : + +- *Latitude* (EI_ESU#LATDMC) +- *Longitude* (EI_ESU#LGDMC) +- *depth* (EI_ESU#SONDE) +- *time* (EI_ESU#DHTU_DEVIATION) +- *AcousticDensity* (EI_ESU#TOTAL) + +A noter que pour la donnée acoustique, on doit retrouver son type qui a été +injecté dans DataMetadata depuis la table *EI_CONFIGURATION* et qui est lié à +la campagne (utilisation du champs EI_CONFIGURATION#ENERG_UNIT_SOURCE). + +A noté que pour les données de type *Latitud*, *Longitude* et *depth*, on doit +avoir cellMethod = "Start" dans la dataMetadata à utiliser. + +Cellule de type élémentaire ++++++++++++++++++++++++++++ + +Les cellule de type élémentaire ont pour parent les cellules *ESDU* et +proviennent de la table *EIT_DESCRIPT_TRANCHE*, une telle cellule aura un +celluleType nommé *Elementaire* + +Pour rattacher une cellule de type “élémentaire” à sa cellule ESDU, on utilise +la table *EIT_ENERGIE_TRANCHES* la cellule ESDU = DHTU_ESDU et l'id de la +cellule esdu c'est Id_TRANCHE (mais on ne le conserve pas au final) + +Cell +____ + +*ID_TRANCHE* -> CellID ID (inutile car on a déjà une clef technique) +*LIBELLE_TRANCHE* -> CellName (S) (c'est la clef métier à conserver) +*FLAG* -> DataQualityFlagValues (FK) Utiliser la donnée de EI_ESDU#FLAG) vers + la table DataQuality#qualityDataFlagValues pour les données historiques. + +Data +____ + +Les cellules d'écho-intégration peuvent être référencées à la surface +(LIBELLE_TRANCHE de type "Sx") ou au fond (LIBELLE_TRANCHE de type "Fx"). +Cette information se retrouve dans le type de Data décrivant leurs limites de +profondeur. + +On utilise 3 types de données sur une telle cellule : + +- *DepthRefSurfaceStart* ou *DepthRefBottomStart* -> *EIT_DESCRIPT_TRANCHE#HMIN_TRANCHE* +- *DepthRefSurfaceEnd* ou *DepthRefBottomEnd* -> *EIT_DESCRIPT_TRANCHE#HMAX_TRANCHE* +- *AcousticDensity* -> *EIT_ENERGIE_TRANCHES#ENERGY* +- *time* -> *EIT_ENERGIE_TRANCHES#DHTU_DEVIATION* + +Comme pour les cellules de type ESDU on retrouve la metaData de type +*AcousticDensity* via le type de campagne et la meta importée à partir de la +table *EI_CONFIGURATION*. + +Entité Result +~~~~~~~~~~~~~ + +Pas encore disponible + +Import +------ + +- Prévoir un import des Calibration +- Prévoir un import des Résultats + +On en reparlera lors de la mise en place des imports. + +Actions +------- + +- faire l'import du référentiel et des données depuis la base historique (Codelutin) +- finir les actions d'import/export globale de la base (Codelutin) +- définir les scénarii d'imports (Ifremer) +- finir l'import des données historiques pour le modèle acoustique (Ifremer) +- finir le modèle de pêche (Ifremer) Property changes on: trunk/src/doc/reunions/reunion-2011-12-05.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native