Pages: 1
- Sujet précédent - Fusion tables complètements différentes + calcul surface sans découpe - Sujet suivant
#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
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 )
--> 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
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.
Hors ligne
Pages: 1
- Sujet précédent - Fusion tables complètements différentes + calcul surface sans découpe - Sujet suivant