banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Thu 14 February 2008 15:02

Céline Cantoni
Participant occasionnel
Date d'inscription: 21 Aug 2007
Messages: 23

Fusion tables complètements différentes + calcul surface sans découpe

Bonjour,

Après avoir essayé de voir si mon problème avait déjà été abordé, je reviens vers vous suite à ma recherche infructueuse sad

Mon problème est double :

1 - j'ai 2 tables différentes : une des sites Natura 2000, et l'autre représentant des polygones forestiers pour chacun desquels correspond un identifiant. Ma 1ère requête a consisté à sélectionner les polygones inclus tout ou partie dans les sites N2000. Je souhaiterais savoir s'il existe une méthode pour intégrer à la table de mes forêts un champ comme quoi elles sont concernées par un site N2000 par le bias d'une fusion ...... ?
--> j'aimerais créer une table qui renseigne mes polygones forêts s'ils sont dans un site N2000, sauf qu'il n'y a aucun champ en commun entre les 2 tables d'origine.

2 - A partir de ma requête précédemment décrite, est il possible de calculer la surface de mes polygones forêts qui intersectent les sites N2000, sans effectuer de découpage des polygones forêts (évidemment en découpant c'est plus simple wink )
--> en fait j'aimerais éviter de créer 50000 tables... mais sans doute n'aurais je pas trop le choix.

Version MapInfo utilisée : 8.5

Merci de votre aide smile

Cordialement
Céline

Hors ligne

 

#2 Thu 14 February 2008 16:06

Thomas
Participant actif
Lieu: Rennes
Date d'inscription: 5 Sep 2005
Messages: 71

Re: Fusion tables complètements différentes + calcul surface sans découpe

Bonjour,
Pour la 1ere question, pourquoi ne pas utiliser l'opérateur Intersect ou Whithin dans la selection sql?

Pour la seconde, une solution simple serait de générer dans une nouvelle table "intersection" les polygones qui sont à cheval sur tes deux tables d'origine (voir peut-être : http://georezo.net/forum/viewtopic.php? … eux+tables).

Tu calcules ensuite leur surface et tu remplis un champ "surface_natura_2000" dans ta table "forêt" en passant par table/mettre à jour colonne, et en définissant une jointure de type géographique (du genre "où objet de la table foret contient objet de la table intersection").

Mais il y a peut être plus simple...

Hors ligne

 

#3 Thu 14 February 2008 17:59

diophamidou
Participant assidu
Date d'inscription: 18 Jan 2006
Messages: 243

Re: Fusion tables complètements différentes + calcul surface sans découpe

Dans ta fenêtre de requete sql sur la partie colonne , aprés avoir inseré les colonnes que tu voudrais voir dans ton résultat tu peux rajouter Areaoverlap(polygone.obj,Natura2000.obj) (entre polygone.obj et natura200.obj il y a une virgule elle est à peine visible c'est pour cela que le note entre parenthése)et dans tes critères de sélection tu peux rajouter polygone.obj intersects Natura200.obj. Attentention à l'unité que tu peux fixer dans tes préfences.

De la même manière tu peux rajouter le pourcentage des surfaces de foret couvertes par la la couche  Natura2000 avec la fonction proportionOverlap libellée de la même manière que précédemment

Hors ligne

 

#4 Thu 14 February 2008 18:12

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Fusion tables complètements différentes + calcul surface sans découpe

Question 1:
- créer le champ Natura2k en entier court dans la table foret
- select * from foret where obj intersects any (select obj from natura2000) into toto
- enfin mettre à jour la selection toto en donnant au champ natura2k la valeur 1 (les autres seront à 0)
Question 2:
- créer dans foret, s'il n'y en a pas déjà un, un identifiant unique ID et un champ en flottant surf_N2K
-  facultatif: taper dans la FMB set coordsys table foret et set area units "sq m" (puis 'enter' sur chaque ligne) pour forcer le calcul a se faire dans la projection de foret et en mètres carrés
- select ID, areaoverlap foret.obj,natura2000.obj) "surf_in_N2K" from foret,natura2000 where foret.obj intersects natura2000obj into tutu
- enfin mettre à jour foret avec la selection tutu en donnant au champ surf_N2K de foret la valeur du champ surf_in_N2K de tutu, sur le critère foret.ID=tutu.ID ... enregistrer foret et fermer tutu

Hors ligne

 

#5 Fri 15 February 2008 12:21

Céline Cantoni
Participant occasionnel
Date d'inscription: 21 Aug 2007
Messages: 23

Re: Fusion tables complètements différentes + calcul surface sans découpe

Bonjour,

Merci pour vos réponses, la méthode de Maurice fonctionne très bien.

smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB