base de données tracking des oiseaux marins de...

Post on 05-Jul-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Base de données  Tracking des oiseaux marins de l’océan Indien tropical

Atelier de travail sur les bases de données et bases de connaissances environnementales à La Réunion

Campagnes en mer Dates, trajectoires, Espèces, nombres, comportements, …

Télémétrie Espèce, colonie, type de plateforme, dates, coordonnées, SST, Comportements,…

Colonies de reproduction Ile, Espèce, coordonnées, dénombrements, …

Environnement marin Bathymetrie, SST, Chla, SHA, stratistiques de pêche,…

Iles Nom, coordonnées, altitude, surface, substrat, statut de conservation, invasion biologique, …

Démographie Capture – marquage – recapture Succès reproducteur Croissance

Bases du données « Oiseaux marins » du laboratoire ECOMAR

Programme régional de suivi télémétrique des oiseaux marins pour identifier les

secteurs océaniques à protéger dans l’océan Indien

Petrels Puffin Frégates Paille en queue Fous

Exemples

Paille en queue à brins rouges Pétrel de Barau

Wintering period

Breeding period

Red-tailed tropicbird: annual distribution as revealed by GLS data

December

January

February June

August

July

(modified from Pinet et al. submitted)

Third case: Barau’s petrel Tracked with Argos transmitters and GLS

Wintering period

Breeding period

Postbreeding migration

Prebreeding migration

November

January

July

June

Barau’s petrel: seasonal variations

Core foraging areas of all tracked species (kernel 50%, h=1)

First overview of the seabird hotspots in the tropical Indian Ocean

Wedgetailed shearwater (from Cousin)

Wedgetailed shearwater (from Aride)

Great frigatebird (from Aldabra)

Great frigatebird (from Europa)

Red-tailed tropicbird (from Europa)

Barau’s Petrel (from Réunion)

Red-footed and masked boobies

Wedgetailed shearwater (from Cousin)

Wedgetailed shearwater (from Aride)

Great frigatebird (from Aldabra)

Great frigatebird (from Europa)

Red-tailed tropicbird (from Europa)

Barau’s Petrel (from Réunion)

Red-footed and masked boobies

Organisation des données de tracking

LAN •  PSQL •  ODBC

•  R •  …

•  Apache + PHP

Internet •  Client Web •  …

Shapefiles

shp2pgsql

POSTGRES +

POSTGIS •  QGIS •  GRASS • …

•  Mapsserver •  GeoServer • …

POSTGRESQL

•  systèmedegestiondebasededonnéesrelationnelleetobjet(SGBDRO)

•  pratiquementconformeauxnormesANSISQL89,SQL92(SQL2),SQL99(SQL3)etSQL:2003

•  fonctionnesurdiversesplates‐formesmatériellesetsousdifférentssystèmesd'exploitation

•  Licence BSD

Caractéristiques (1/2) •  Transactions ▫  BEGIN ; ▫  UPDATE salaires SET montant = montant * 1.10 WHERE

trig<>’jpa’ ; UPDATE salaires SET montant = montant * 2 WHERE trig=’jpa’ ; ▫  COMMIT

•  Vues (Fondées sur une requête) ▫  Interface cohérente vers les données, même si les tables évoluent ▫  Pas de vues matérialisées à ce jour dans PostgreSQL

•  Schémas (espaces de noms dans une base de données ) ▫  grouper les objets d’une base de données ▫  séparer les utilisateurs entre eux ▫  contrôler plus efficacement les accès aux données ▫  d’éviter les conflits de noms dans les grosses bases de données

Caractéristiques (2/2) •  Triggers ▫ Exécutés avant (BEFORE) ou après (AFTER) un

INSERT, un UPDATE ou un DELETE ▫ Soit pour l’ensemble de la requête (FOR STATEMENT) ▫ Soit pour chaque ligne impactée (FOR EACH ROW) ▫ Peuvent être écrits dans n’importe lequel des langages

de procédure supportés par PostgreSQL (C, PL/PgSQL, PL/Perl, etc. )

•  Héritages ▫ Sur les tables ▫ Sur la structure ▫ Sur l’administration

POSTGIS

•  Module spatial pour PostgreSQL •  Conforme aux spécifications de l’OpenGIS

Consortium • Compatible avec Mapserver / GeoServer •  PostGIS permet le traitement d'objets spatiaux

dans les serveurs PostgreSQL, autorisant le stockage en base de données pour les SIG

Les Objets SIG •  Exemples de représentation en WKT d'objets spatiaux ▫  POINT(0 0) ▫  LINESTRING(0 0,1 1,1 2) ▫  POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) ▫ MULTIPOINT(0 0,1 2) ▫ MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ▫ MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)),

((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ▫  GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2

3,3 4))) •  les objets géographiques inclue un identifiant du système

de références spatiales ("spatial referencing system identifier", SRID).

• ST_Intersects(A, B)

• ST_Contains(A, B) • ST_Within(B, A)

• ST_Touches(A, B)

• ST_Crosses(A, B)

• ST_DWithin(A, B, D) D

ST_Intersects() = TRUE

ST_Intersection() =

Architecture de la base Seabird_tracking

carto Public

Requêtes croisées

CREATE TRIGGER donnees_update BEFORE INSERT ON tracking FOR EACH ROW EXECUTE PROCEDURE format_postgis();

•  Automatisation du formatage POSTGIS

CREATE VIEW seabird_postgis AS SELECT tracking.id_track AS id, tracking.lon, tracking.lat, tracking.date, site.island, site.colony, meta_data.tag_type, bird.band, bird.sex, species.name AS "species name", tracking.geom FROM tracking JOIN meta_data ON meta_data.id_meta_data = tracking.id_meta_data JOIN bird ON bird.id_bird = meta_data.id_bird JOIN species ON species.id_species = bird.id_species JOIN site ON meta_data.id_site = site.id_site;

•  Synthèse de l’information pour utilisation avec les SIG

Architecture de la base

Exemples d’utilisation

•  SIG ▫ Quantum QGIS --> connexion directe au serveur

POSTGRES/POSTGIS ▫ Uniquement les tables portant des informations

géographiques --> utilité des vues ▫ Visualisation rapide/Possibilité d’éditer des clauses

WHERE dans la table affichée •  R ▫ Utilisation du package RODBC (implémentation ODBC

sur R) ▫ Edition des requêtes SQL (accès à toute la base de

données) ▫ Stockage des résultats de la requête

QGIS

QGIS

Utilisation dans R -- Exemple de Script •  require(RODBC) # database connectivity •  require(maps) # map package

•  ### ouverture de la connection avec la base de donnée ##### •  channel <- odbcConnect("seabird", uid= »xxxx", pwd= »xxxxxx", case="postgresql")

•  ######## la requêtes ######### •  land=c("SELECT tracking.date,tracking.time,tracking.lat,tracking.lon FROM

tracking , carto.lowres WHERE ST_ Within(tracking.geom,lowres.the_geom);")

•  ## exécution de la requête, stockage des résultats et fermeture de la connexion ## •  data=sqlQuery(channel, land) •  odbcCloseAll()

•  #### visualisation des resultats #### •  plot(data$lon,data$lat,asp=1,pch=19) •  map(add=T)

Utilisation dans R

Interface

•  Psql(console)•  Java:pilotesJDBC/JDO,•  PHP:phpPgAdmin(interfacewebd'administration)•  pgAdmin(application)•  Python:Psycopgzsql/PyGRes(pilotesPython),PoPy/Zope‐DA(pilotesZope)

• MicrosoftWindows:despilotesADO,.NET,OLEetODBCexistent

A && B = TRUE A && B = FALSE

A && B = TRUE _ST_Intersects(A && B) = FALSE

-- Function: format_postgis()

-- DROP FUNCTION format_postgis();

CREATE OR REPLACE FUNCTION format_postgis() RETURNS "trigger" AS $BODY$ DECLARE BEGIN NEW.the_geom = setSRID(MakePoint(NEW.lon,NEW.lat),4326);

RETURN NEW; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION format_postgis() OWNER TO gael;

top related