#1 Thu 19 May 2011 14:58
Modélisation d'une base pour corine Biotope
Bonjour,
Je me permet d'ouvrir un sujet car j'essaye de modéliser une base postgresql pour accueillir les données corine biotope.
L'objectif est de pouvoir grâce à un code corine (ex : 41.12 ) récupérer l'arbre corine, càd les numéros corine précédent le n° 41.12 par exemple.
Au départ, je pensais exploser le fichier Excel en 8 tables car il y a au maximum 8 niveaux dans l'arbre. Par la suite, j'ai été confronté à un problème important : comment lier toutes les tables pour re-créer l'arbre ? J'ai beau me creuser la tête, je n'arrive pas à produire une base Merise qui soit simple à remplir et qui puisse répondre à mes attentes.
Les données corine biotope sont téléchargeables sur :http://inpn.mnhn.fr/isb/programmes/fr/r … iotope.jsp via un fichier Excel.
Pouvez-vous me guider sur la création de cette base ?
Par avance merci.
Dernière modification par heretik25 (Thu 19 May 2011 15:25)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#2 Fri 20 May 2011 14:57
Re: Modélisation d'une base pour corine Biotope
Personne pour m'aiguiller ?
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#3 Fri 20 May 2011 15:19
- damien_boilley
- Participant assidu
- Lieu: Grenoble
- Date d'inscription: 16 Apr 2009
- Messages: 224
Re: Modélisation d'une base pour corine Biotope
Bonjour, si j'ai bien compris ce n'est pas vraiment un problème SIG ? Si personne n'a d'idée essayez peut-être de trouver un forum PostGreSql...
Hors ligne
#4 Fri 20 May 2011 15:30
Re: Modélisation d'une base pour corine Biotope
Bonjour et merci pour la réponse,
C'est un problème de modélisation. Suite à cette modélisation, il faut que je puisse être capable de remplir les données avec FME Je pense que le sujet a sa place au sein d'un forum SIG car être SIGISTE c'est aussi modéliser et gérer des données attributaires.
Ci joint un fichier excel avec quelques lignes et le résultat que j'aimerai obtenir partant d'une modélisation différente que pensée au départ.
Modélisation :
-une table contenant les informations du code
code_corine | caracteristiques
4 | Forêt
-Une table contenant les différents niveaux hiérarchiques de corine biotope
niveau_1|niveau_2|niveau_3
4 |41 |41.1
Si il y à des pro en FME
@bientôt et merci
Dernière modification par heretik25 (Fri 20 May 2011 15:40)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#5 Mon 23 May 2011 09:59
- Jean-Yves G
- Membre
- Lieu: toulouse
- Date d'inscription: 12 Oct 2005
- Messages: 516
Re: Modélisation d'une base pour corine Biotope
Bonjour,
je pense que ce problème de modélisation aurait plus d'audience sur le forum Geo-BD , je transfère donc le sujet
JY
Hors ligne
#6 Mon 23 May 2011 11:04
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Modélisation d'une base pour corine Biotope
Bonjour,
Effectivement le sujet a plus sa place ici.
Suite à cette modélisation, il faut que je puisse être capable de remplir les données avec FME
Il faut savoir que la modélisation est indépendante de l'outil, ou du langage de programmation ou du SGDBR. C'est une règle d'or.
Ensuite le code d'un niveau est composé de n digit n = N° du niveau si l'on excepte le "." donc pour un niveau n le niveau n-1= extractionchaîne(chaîne,1, longueurchaine(chaine)-1)
le niveau n-i =extractionchaîne(chaîne,1, longueurchaine(chaine)-i)
(si on excepte le ".")
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#7 Mon 23 May 2011 11:16
Re: Modélisation d'une base pour corine Biotope
Bonjour,
Cest une relation parent/enfant à une seule table, dans laquelle l'attribut cd_cb_sup fait référence à une valeur de l'attribut cd_cb.
j'ai intégré les données telles qu'issues de l'iNPN :
http://sig.cenlr.org/integration_donnee … ls_habitat
Ensuite, cet article du très bon site postgresqlonline explique l'utilisation de la récursivité avec postgresql pour représenter un arbre :
http://www.postgresonline.com/journal/a … tures.html
Code:
WITH RECURSIVE arbre_corine AS (SELECT cd_cb, lb_cb97_fr, cd_cb_sup, CAST(cd_cb As varchar(1000)) As branche FROM inpn.typo_corine_biotopes WHERE cd_cb_sup IS NULL OR cd_cb_sup ='' UNION ALL SELECT cb.cd_cb,cb.lb_cb97_fr, cb.cd_cb_sup, CAST(sp.branche || '->' || cb.cd_cb As varchar(1000)) As branche FROM inpn.typo_corine_biotopes As cb INNER JOIN arbre_corine AS sp ON (cb.cd_cb_sup = sp.cd_cb) ) SELECT branche||' : '||lb_cb97_fr FROM arbre_corine ORDER BY cd_cb;
Voici les premières lignes de résultat :
1 : Habitats littoraux et halophiles
1->11 : Mers et océans
1->11->11.1 : Eaux marines
1->11->11.1->11.11 : Eaux océaniques
1->11->11.1->11.12 : Eaux du talus et du plateau continental (= eaux néritiques)
1->11->11.1->11.12->11.121 : Eaux littorales
...
A adapter avant export csv pour obtenir le résultat attendu.
Dernière modification par Mathieu BOSSAERT (Mon 23 May 2011 11:22)
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#8 Mon 23 May 2011 12:23
Re: Modélisation d'une base pour corine Biotope
Bonjour,
Merci pour vos réponses et merci pour l'exemple PostgreSQL et les liens M. Bossaert.
J'ai réussi à créer une procédure sous FME qui correspond à mes besoins.
Ci-joint, le projet Workbench.
@bientôt et bonne continuation
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne