#1 Fri 30 March 2012 11:26
- SIGogne
- Participant occasionnel
- Date d'inscription: 3 Oct 2011
- Messages: 19
selection forme avec SQL
Bonjour
Désolé de vous demander de me consacrer un peu de votre temps.
Pour les besoin de mon stage, je suis amené à travaillé avec les données du registre parcellaire graphique dont les informations sont divisées en trois tables.
La première table contient toutes les parcelles pour un département donné (1 identifiant par parcelle), la table 2 (simple fichier open calc) donne des informations sur les différentes cultures présentes sur la parcelle. Ainsi une parcelles avec x culture verra son identifiant répété x fois dans la table.
Après avoir découpé sous arcgis le fichier de forme de la table 1 avec les contours de ma zone d'étude, je voudrais sélectionner les parcelles avec une seule culture. Pour cela, j'ai fait l'opération sous postgreSQL avec la table 2. Ainsi, j'obtiens, après export, un nouveaux dbf contenant les identifiants parcelles à une culture pour le territoire concerné (table 3).
Ce que je n'arrive pas à obtenir, même après requête c'est un fichier de forme sous arcgis ne contenant que les parcelles à une culture pour le territoire concerné. J'ai essayé sous arcgis de faire un requête attributaire sur la couche à partir d'un fichier dbf de la table 2 mais ça semble impossible. Mais, je serai étonné que ce soit vrai.
J'ai essayé sous map info avec une requête :
SELECT * FROM parcelle_2008, parcelle_on WHERE id_ilot = num_ilot;
Mais sans résultat
Quelqu'un à une idée ? Je pensais rajouter sous postgreSQL une colonne à ma table 1 mais ce serait moins top
Cordialement
SIGogne
Hors ligne
#2 Mon 02 April 2012 15:54
Re: selection forme avec SQL
Bonjour,
Si je récapitules :
- Un shapefile avec les parcelles (table 1)
- Un tableau avec les différentes cultures des parcelles (table 2). Il y a donc une relation (1,n) entre la table 1 et la table 2
- Un DBF avec les parcelles qui ont qu'un culture (table 3). Il y a donc une relation (1,1) entre la table 1 et la table 3
Cette table 3 est le résultat d'un traitement sur la table 2 permettant d'extraire les parcelles qui ont qu'une culture. Ce traitement était aussi possible avec ArcGIS : http://webhelp.esri.com/arcgisdesktop/9 … nalysis%29
Avec ces tables, il faut obtenir un shapefile contenant que les parcelles avec une seule culture.
Il me semble qu'il suffit de faire une jointure entre la table 1 et la table 3 : http://webhelp.esri.com/arcgisdesktop/9 … ing_tables
Est-ce que j'ai bien compris ?
A+
Franck
PS : Quelle version d'ArcGIS utilisée vous (9.3, 10, 10.1...) ? Quelle niveau de licences (ArcView, ArcEditor, ArcInfo) ?
PPS : Les sous-requêtes SQL ne sont possibles que si toutes les données sont regroupées dans une géodatabase.
Hors ligne
#3 Mon 02 April 2012 18:05
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: selection forme avec SQL
Bonjour, suite aux infos postées par Franck, voici la démarche:
- S'assurer que tout est dans une "File Geodatabase" (désolé, mon ArcGIS est en anglais)
- Utiliser la requête suivante:
SELECT * FROM shapeParcelles WHERE "id_parcelle" IN (SELECT "id_parcelle_culture" FROM table3)
Hors ligne
#4 Tue 03 April 2012 09:11
- IceTea
- Juste Inscrit !
- Date d'inscription: 22 Feb 2012
- Messages: 4
Re: selection forme avec SQL
Bonjour,
[mon msg d'avant s'est révélé inexacte, dsl]
Un tableau croisé dynamique te permet après un tri de connaitre les parcelles avec 1 culture.
Une jointure selon ID parcelle te permettrait d'obtenir ce que tu souhaites.
Icetea
Dernière modification par IceTea (Thu 05 April 2012 14:15)
Hors ligne