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é ?

#1 Fri 09 November 2012 19:07

Astrakhan
Participant assidu
Date d'inscription: 6 Mar 2007
Messages: 228

MI8 - Comment faire une requete spatiale supracomplexe???

Bonsoir à tous,

Mon besoin est assez urgent (ca c'est pour les cheveux blancs qui colonisent mon doux cuir chevelu) et je séche sur comment faire une requete spatiale complexe sachant que je suis une bille en SQL.

Mon problème est le suivant, sachant que je dispose de deux fihciers pour le résoudre.

* Le premier fichier contient des objets sous forme de points (2.400 communes avec ID INSEE) auxquels sont associées des variables attributaires remplies.

* le second fichier contient des isochrones, 1 par commune, et un corpus de données attributaires défini que je souhaite remplir par le premier fichier.

Ce que je cherche à faire pourrait se retranscrire de la manière suivante si on se le farci à la mano ce qui prendrait approximativement 2 ans 4 mois et 7 jours.

Je prend un isochrone (étape A), je regarde quels points il contient (étape B), puis je récupère les isochrones associés (étape C) [...on ne peut pas faire de recouvrement spatial sinon on viendrait prendre des isochrones dont le point associé ne serait pas détecté en étape B...] pour créer une surface agrégée (étape D) qui va venir me sommer distinctement les valeurs de mes points contenus dans cette surface agrégée (étape E) et me déverser les résultats dans les cases de mon isochrone choisi en étape A.
2400 fois cette procédure, ca risque d'être long à la main, existe t'il une requete qui permettrait d'injecter ce processus???

D'avance merci et surtout excellent week-end à tous.

Hors ligne

 

#2 Fri 09 November 2012 22:19

pierre agha
Participant actif
Lieu: TOULOUSE
Date d'inscription: 15 Oct 2005
Messages: 97

Re: MI8 - Comment faire une requete spatiale supracomplexe???

Bonjour

Vos communes sont des points.
Vous isochrones sont des lignes.

- Vous prenez un isochrone = étape A.
- Quels points il contient = étape B. Y a t il des points non intersectés par des isochrones ? Des points qui seraient entre deux isochrones ?
- Vous récupérez les isochrones associés (étape C) = vous voulez dire les points, non ?
- Créer une surface agrégée (étape D) = transformer l'espace visiblement délimité par deux isochrones en surface, c'est à dire en polygone (fermé donc). C'est cela ?
- Sommer ?

Requête Mise à jour
SI TOUS LES POINTS SONT TOUCHES PAR UN ISOCHRONE (donc pas de points entre deux isochrones). Un isochrone = plusieurs communes. Une commune = un seul isochrone.

- mettre à jour colonne  X de la table isochrone
- en utilisant les données des points
- condition de jointure = point est contenu dans la ligne isochrone (ou intersectant)
- calcul = somme des valeurs la variable associée aux points

MENU = mettre à jour colonne.

Requête Mise à jour
SI DES POINTS SONT TOUCHES PAR UN ISOCHRONE ET DES POINTS SONT ENTRE DEUX ISOCHRONES

Il vous faut alors transformer l'espace délimité par deux isochrones en surface fermée.
Procédure à tester.
A) transformer vos isochrones (lignes) en polygones (menu objet = transformer polylignes)
B) dessiner un objet polygone qui couvre l'intégralité de l'étendue pour y inclure tous les points et tous les polygones isochrones.
C) découper l'objet ainsi crée par les polygones-isochrones; vous aurez ainsi des surfaces découpées aux limites des différents isochrones.
D) récupérer l'identifiant de l'isochrone ligne pour le verser à l'isochrone-polygone
E) les points situés aux limites des isochrones devront être traités avec la procédure ci-haut
F) les points situés dans les isochrones-polygones devront être traités également
G) avoir donné des id communs aux objets isochrones-lignes et isochrones-polygones vous permet de sommer les valeurs pour prendre en compte tous les points.

Si ma compréhension de votre problème était erronée : vous est-il possible d'illustrer vos propos par une image montrant
1 - la situation de départ
2 - le résultat que vous voulez obtenir.

Bonne chance en tout cas.

Hors ligne

 

Pied de page des forums

Powered by FluxBB