Author: fdesbois Date: 2012-08-02 18:01:59 +0200 (Thu, 02 Aug 2012) New Revision: 349 Url: http://forge.codelutin.com/repositories/revision/sammoa/349 Log: refs #1203 : define export SHP Modified: trunk/src/site/rst/import-export.rst Modified: trunk/src/site/rst/import-export.rst =================================================================== --- trunk/src/site/rst/import-export.rst 2012-08-02 15:29:09 UTC (rev 348) +++ trunk/src/site/rst/import-export.rst 2012-08-02 16:01:59 UTC (rev 349) @@ -195,83 +195,176 @@ Chaque parcours est une ligne d'effort du fichier DBF à exporter, et correspond à un point graphique sur le fichier SHP. +Une colonne STATUS pour chaque LEG est nécessaire pour distinguer un BEGIN, d'un ADD, de plus une ligne avec un status END +devra être créée à l'export. Une ligne END correspond à la fin d'un groupe de LEG et comprendra les même données que le +dernier LEG avec les données GPS (GeoPoint) du prochain TRANSIT ou CIRCLE_BACK. + Voici les colonnes du fichier DBF : -- ROUTE_TYPE : Type de parcours (LEG, TRANSIT, CIRCLE_BACK) - route.routeType - REGION : Code de la région - route.flight.campaign.region.code + + * route.flight.campaign.region.code + - CAMPAIGN : Code de la campagne - route.flight.campaign.code + + * route.flight.campaign.code + - SECTOR* : Numéro du secteur - route.transectFlight.transect.strate.sector.sectorNumber + + * route.transectFlight.transect.strate.sector.sectorNumber + - STRATE_TYPE* : Type de strate - route.transectFlight.transect.strate.strateType + + * route.transectFlight.transect.strate.strateType + - STRATE* : Code de la strate - route.transectFlight.transect.strate.code + + * route.transectFlight.transect.strate.code + - TRANSECT* : Code du transect - route.transectFlight.transect.name + + * route.transectFlight.transect.name + - PASSAGE* : Numéro de passage - route.transectFlight.crossingNumber + + * route.transectFlight.crossingNumber + - FLIGHT : Numéro de vol - route.flight.flightNumber + + * route.flight.flightNumber + - COMPUTER : Identifiant du système - route.flight.systemId + + * route.flight.systemId + +- ROUTE_TYPE : Type de parcours (LEG, TRANSIT, CIRCLE_BACK) + + * route.routeType + - EFFORT_GROUP* : Identifiant du group d'effort - "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId + + * "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId + * si route.routeType = LEG et currentLegGroup = null => création currentLegGroup avec l'identifiant de l'effort + - EFFORT* : Identifiant de l'effort - "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId + + * "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId + + + +- STATUS* : Status (BEGIN, ADD, END) + + * si route.routeType = TRANSIT ou CIRCLE_BACK => ajout d'une ligne END (ensuite currentLegGroup = null) + * si previousRoute.routeType = TRANSIT ou CIRCLE_BACK (ou currentLegGroup = null) => BEGIN + * si previousRoute.routeType = LEG et nextRoute.routeType = LEG (ou currentLegGroup != null) => ADD + - DATE : Date du parcours/segment - route.beginTime + + * route.beginTime + - HHMMSS : Heure du parcours/segment - format(route.beginTime, "HHmmss") + + * format(route.beginTime, "HHmmss") + - SEA_STATE : Etat de la mer - route.seaState + + * route.seaState + - SWELL : Houle - route.swell + + * route.swell + - TURBIDITY : Turbidité - route.turbidity + + * route.turbidity + - SKY_GLINT : Transparence - route.skyGlint + + * route.skyGlint + - GLARE_FROM : Eblouissement de - route.glareFrom + + * route.glareFrom + - GLARE_TO : Eblouissement à - route.glareTo + + * route.glareTo + - GLARE_SEVERITY : Intensité d'éblouissement - route.glareSeverity + + * route.glareSeverity + - GLARE_UNDER : - route.glareUnder + + * route.glareUnder + - CLOUD_COVER : Couverture nuageuse - route.cloudCover + + * route.cloudCover + - SUBJECTIVE : Détectabilité - route.subjectiveConditions + + * route.subjectiveConditions + - UNEXP_LEFT : Nombre d'observations à gauche (pour les exocet par exemple) - route.unexpectedLeft + + * route.unexpectedLeft + - UNEXP_RIGHT : Nombre d'observations à droite (pour les exocet par exemple) - route.unexpectedRight + + * route.unexpectedRight + - LEFT_REAR : Observateur à gauche - route.observerPosition[FRONT_LEFT].observer.initials + + * route.observerPosition[FRONT_LEFT].observer.initials + - RIGHT_REAR : Observateur à droite - route.observerPosition[FRONT_RIGHT].observer.initials + + * route.observerPosition[FRONT_RIGHT].observer.initials + - CENTER : Observateur au centre - route.observerPosition[NAVIGATOR].observer.initials + + * route.observerPosition[NAVIGATOR].observer.initials + + + + +- CB_CAUSE** : Cause du circle-back + + * "O" + route.circleBackCause.observationNumber + "-" + route.circleBackCause.flight.flightNumber + "-" + route.circleBackCause.flight.systemId + - LAT : Latitude du point GPS - geoPoint.latitude + + * geoPoint.latitude + - LON : Longitude du point GPS - geoPoint.longitude + + * geoPoint.longitude + - SPEED : Vitesse de l'avion à ce point GPS - geoPoint.speed + + * geoPoint.speed + - ALTITUDE : Altitude de l'avion à ce point GPS - geoPoint.altitude + + * geoPoint.altitude + - GPS_TIME : Heure d'enregistrement du point (rarement différente de celle du parcours) - format(geoPoint.recordTime, "HHmmss") + + * format(geoPoint.recordTime, "HHmmss") + - AIRCRAFT : Immatriculation de l'avion - route.flight.planeImmatriculation + + * route.flight.planeImmatriculation + - COMMENT : Commentaires - route.comment + * route.comment + (*) uniquement pour un parcours de type LEG, sinon la cellule sera vide +(**) uniquement pour un parcours de type CIRCLE_BACK, sinon la cellule sera vide + Observation ~~~~~~~~~~~ @@ -287,82 +380,173 @@ Voici les colonnes du fichier DBF : - REGION : Code de la région - observation.flight.campaign.region.code + + * observation.flight.campaign.region.code + - CAMPAIGN : Code de la campagne - observation.flight.campaign.code + + * observation.flight.campaign.code + - SECTOR* : Numéro du secteur - route.transectFlight.transect.strate.sector.sectorNumber + + * route.transectFlight.transect.strate.sector.sectorNumber + - STRATE_TYPE* : Type de strate - route.transectFlight.transect.strate.strateType + + * route.transectFlight.transect.strate.strateType + - STRATE* : Code de la strate - route.transectFlight.transect.strate.code + + * route.transectFlight.transect.strate.code + - TRANSECT* : Code du transect - route.transectFlight.transect.name + + * route.transectFlight.transect.name + - PASSAGE* : Numéro de passage - route.transectFlight.crossingNumber + + * route.transectFlight.crossingNumber + - FLIGHT : Numéro de vol - route.flight.flightNumber + + * route.flight.flightNumber + - COMPUTER : Identifiant du système - route.flight.systemId + + * route.flight.systemId + +- ROUTE_TYPE : Type de parcours (LEG, TRANSIT, CIRCLE_BACK) + + * route.routeType + - EFFORT_GROUP* : Identifiant du group d'effort - "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId + + * "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId + * si route.routeType = LEG et currentLegGroup = null => création currentLegGroup avec l'identifiant de l'effort + - EFFORT* : Identifiant de l'effort - "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId + + * "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId + - OBSERVATION : Identifiant de l'observation - "O" + observation.observationNumber + "-" + observation.flight.flightNumber + "-" + observation.flight.systemId + + * "O" + observation.observationNumber + "-" + observation.flight.flightNumber + "-" + observation.flight.systemId + - DATE : Date de l'observation - observation.beginTime + + * observation.beginTime + - HHMMSS : Heure de l'observation - format(observation.beginTime, "HHmmss") + + * format(observation.beginTime, "HHmmss") + - TAXON : Type d'espèce - observation.species.type + + * observation.species.type + - GROUP : Groupe de l'espèce - observation.species.groupName + + * observation.species.groupName + - FAMILY : Famille de l'espèce - observation.species.family + + * observation.species.family + - SPECIES : Code de l'espèce - observation.species.code + + * observation.species.code + - SPECIES_NAME : Nom commun de l'espèce - observation.species.commonName + + * observation.species.commonName + - SPECIES_LATIN : Nom latin de l'espèce - observation.species.latinName + + * observation.species.latinName + - POD_SIZE : Taille des groupes - observation.podSize + + * observation.podSize + - AGE : - observation.age + + * observation.age + - DEC_ANGLE : Angle ou Bande - observation.decAngle + + * observation.decAngle + - CUE : Détection, signal visuel - observation.cue + + * observation.cue + - BEHAVIOUR : Comportement - observation.behaviour + + * observation.behaviour + - SWIM_DIR : Direction de nage - observation.swimDir + + * observation.swimDir + - CALVES : Nombre de jeunes - observation.calves + + * observation.calves + - PHOTO : Des photos ont été prises - observation.photo + + * observation.photo + - OBSERVER : Initiales de l'observateur - observation.observerPosition.observer.initials + + * observation.observerPosition.observer.initials + - SIDE : Position de l'observateur (L : LEFT, R : RIGHT, C : CENTER) - observation.observerPosition.observer.position + + * observation.observerPosition.observer.position + +- STATUS : Status de l'observation (NEW, CIRCLE_BACK, RECAPTURE, NO_RECAPTURE) + + * observation.observationStatus + + + + +- CB_CAUSE** : Cause du circle-back + + * "O" + route.circleBackCause.observationNumber + "-" + route.circleBackCause.flight.flightNumber + "-" + route.circleBackCause.flight.systemId + - LAT : Latitude du point GPS - geoPoint.latitude + + * geoPoint.latitude + - LON : Longitude du point GPS - geoPoint.longitude + + * geoPoint.longitude + - SPEED : Vitesse de l'avion à ce point GPS - geoPoint.speed + + * geoPoint.speed + - ALTITUDE : Altitude de l'avion à ce point GPS - geoPoint.altitude + + * geoPoint.altitude + - GPS_TIME : Heure d'enregistrement du point (rarement différente de celle du parcours) - format(geoPoint.recordTime, "HHmmss") + + * format(geoPoint.recordTime, "HHmmss") + - AIRCRAFT : Immatriculation de l'avion - observation.flight.planeImmatriculation + + * observation.flight.planeImmatriculation + - COMMENT : Commentaires - observation.comment + * observation.comment + (*) uniquement pour un parcours de type LEG, sinon la cellule sera vide +(**) uniquement pour un parcours de type CIRCLE_BACK, sinon la cellule sera vide + EFFORT, EFFORT_GROUP et OBSERVATION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -389,33 +573,58 @@ - EFFORT = L{effortNumber}-{flightNumber}-{systemId} (ex: L001-286-A) - EFFORT_GROUP = G{beginEffortNumber}-{flightNumber}-{systemId} (ex: G001-286-A) -:: ++-------------+------------+-----------------+------------+-----------+-------------+ +| ROUTE_TYPE | STATUS | EFFORT_GROUP | EFFORT | GPS data | CB_CAUSE | ++=============+============+=================+============+===========+=============+ +| LEG | BEGIN | G001-286-A | L001-286-A | $1 | | ++-------------+------------+-----------------+------------+-----------+-------------+ +| LEG | ADD | G001-286-A | L002-286-A | $2 | | ++-------------+------------+-----------------+------------+-----------+-------------+ +| LEG | END | G001-286-A | L002-286-A | $3 | | ++-------------+------------+-----------------+------------+-----------+-------------+ +| TRANSIT | | | | $3 | | ++-------------+------------+-----------------+------------+-----------+-------------+ +| LEG | BEGIN | G003-286-A | L003-286-A | $4 | | ++-------------+------------+-----------------+------------+-----------+-------------+ +| LEG | ADD | G003-286-A | L005-286-A | $5 | | ++-------------+------------+-----------------+------------+-----------+-------------+ +| LEG | END | G003-286-A | L005-286-A | $6 | | ++-------------+------------+-----------------+------------+-----------+-------------+ +| CIRCLE_BACK | | | | $6 | O0010-286-A | ++-------------+------------+-----------------+------------+-----------+-------------+ +| LEG | BEGIN | G006-286-A | L006-286-A | $7 | | ++-------------+------------+-----------------+------------+-----------+-------------+ +| LEG | END | G006-286-A | L006-286-A | $8 | | ++-------------+------------+-----------------+------------+-----------+-------------+ +| TRANSIT | | | | $8 | | ++-------------+------------+-----------------+------------+-----------+-------------+ - L001-286-A G001-286-A LEG (BEGIN) - L002-286-A G001-286-A LEG (ADD) - TRANSIT - L003-286-A G003-286-A LEG (BEGIN) - L005-286-A G003-286-A LEG (ADD) - CIRCLE_BACK - L006-286-A G005-286-A LEG (BEGIN) - TRANSIT - Pour l'export des observations : - OBSERVATION = O{observationNumber}-{flightNumber}-{systemId} (ex: O0001-286-A) -:: ++-------------+-----------------+------------+-------------+-------------+-------------+ +| ROUTE_TYPE | EFFORT_GROUP | EFFORT | OBSERVATION | STATUS | CB_CAUSE | ++=============+=================+============+=============+=============+=============+ +| LEG | G001-286-A | L001-286-A | O0001-286-A | NEW | | ++-------------+-----------------+------------+-------------+-------------+-------------+ +| LEG | G001-286-A | L001-286-A | O0002-286-A | NEW | | ++-------------+-----------------+------------+-------------+-------------+-------------+ +| LEG | G001-286-A | L002-286-A | O0003-286-A | NEW | | ++-------------+-----------------+------------+-------------+-------------+-------------+ +| LEG | G003-286-A | L003-286-A | O0006-286-A | NEW | | ++-------------+-----------------+------------+-------------+-------------+-------------+ +| LEG | G003-286-A | L003-286-A | O0008-286-A | NEW | | ++-------------+-----------------+------------+-------------+-------------+-------------+ +| LEG | G003-286-A | L005-286-A | O0010-286-A | CIRCLE_BACK | | ++-------------+-----------------+------------+-------------+-------------+-------------+ +| CIRCLE_BACK | | | O0011-286-A | RECAPTURE | O0010-286-A | ++-------------+-----------------+------------+-------------+-------------+-------------+ +| CIRCLE_BACK | | | O0012-286-A | NEW | O0010-286-A | ++-------------+-----------------+------------+-------------+-------------+-------------+ +| LEG | G006-286-A | L006-286-A | O0013-286-A | NEW | | ++-------------+-----------------+------------+-------------+-------------+-------------+ - O0001-286-A L001-286-A G001-286-A NEW - O0002-286-A L001-286-A G001-286-A NEW - O0003-286-A L002-286-A G001-286-A NEW - O0006-286-A L003-286-A G003-286-A NEW - O0008-286-A L003-286-A G003-286-A NEW - O0010-286-A L004-286-A G003-286-A CIRCLE_BACK - O0011-286-A RECAPTURE - O0012-286-A NEW - O0013-286-A L005-286-A G005-286-A NEW - Export SAMMOA ------------- @@ -427,19 +636,19 @@ :: - campaign-${campaignCode}.sammoa (nom du fichier exporté par défaut, mais peut être configurable) - ├── campaign.properties (meta données sur la campagne) - ├── csv - │ └── Données exportés depuis la base au format csv - ├── flight - │ ├── {flightTopiaId 1} - │ │ ├── audio - │ │ │ └── Fichiers audio enregistrés pendant le vol - │ │ └── flight.properties (meta données sur le vol) - │ └── {flightTopiaId 2} - │ └── ... - └── map - └── Fichiers sources au format SHP + campaign-${campaignCode}.sammoa (nom du fichier exporté par défaut, mais peut être configurable) + ├── campaign.properties (meta données sur la campagne) + ├── csv + │ └── Données exportés depuis la base au format csv + ├── flight + │ ├── {flightTopiaId 1} + │ │ ├── audio + │ │ │ └── Fichiers audio enregistrés pendant le vol + │ │ └── flight.properties (meta données sur le vol) + │ └── {flightTopiaId 2} + │ └── ... + └── map + └── Fichiers sources au format SHP .. - campaign-${campaignCode}.sammoa (ex: campaign-PACOMM-2012.sammoa) .. - /campaign.properties : meta données sur la campagne
participants (1)
-
fdesbois@users.forge.codelutin.com