Base de données Tracking des oiseaux marins de...

Post on 05-Jul-2020

7 views 0 download

Transcript of Base de données Tracking des oiseaux marins de...

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;