Pages: 1
- Sujet précédent - QGIS (Débian 6) : GEOFLA Communes et Départements voisins - Sujet suivant
#1 Sat 09 August 2014 12:56
- Laurent_G
- Juste Inscrit !
- Date d'inscription: 9 Aug 2014
- Messages: 2
QGIS (Débian 6) : GEOFLA Communes et Départements voisins
Bonjour, utilisateur très ponctuel de SIG, je me permets de vous solliciter pour un traitement générique que je n'arrive pas à réaliser.
A partir de GEOFLA (communes, dept ou régions, sans importance), je cherche à obtenir une table associant les entités par voisinage.
C'est à dire qu'in fine, je recherche l'obtention d'un fichier plat structuré de la façon suivante (les doublons ne me génant pas) représentant une relation de voisinage géographique que je pourrais injecter dans un moteur de calcul (non sig):
Commune_X;Commune_Y
Commune_X;Commune_Z
Commune_X;Commune_A
idem avec dept et région
Ma problématique est je pense relativement simple pour qui sait utiliser mais demande que je monte en compétence dans l'utilisation de QGIS tant sur la partie concept (voisinage) que sur la partie automation (python) pour appliquer à tous les éléments ce traitement. Et comme il ne s'agit que d'un besoin très ponctuel dans un traitement largement plus vaste auquel je voudrais juste apporter un éclairage du style "et que s'est il passé chez mon voisin pendant ce temps là?" basé sur des ensembles de données socio-économiques plutot massifs, pouvez vous m'orienter un petit peu sur les fonctions ou l'organisation de mon travail pour éviter que je ne me perde.
Typiquement j'aurai besoin des fonctions à utiliser et d'un exemple d'automatisation pour l'appliquer à un ensemble (toutes les entités choisies).
Merci de votre lecture et bon we/bonne vacances.
Bien cordialement, Laurent
Hors ligne
#2 Mon 11 August 2014 11:33
- Atm
- Juste Inscrit !
- Date d'inscription: 11 Aug 2014
- Messages: 6
Re: QGIS (Débian 6) : GEOFLA Communes et Départements voisins
Bonjour,
Pour commencer il faut que vous soyez plus explicite sur la définition du voisinage que vous voulez utiliser. Il en existe 3 types différents.
Le voisinage par contiguïté, chaque aire en contact avec l'aire étudiée est considérée comme un voisin. Il est subdivisé en 2 catégories, la contiguïté nodale, ou voisinage de moore ou voisinage de la reine. Dans ce cas un seul point de contact suffit à définir un voisin. La seconde catégorie est la contiguïté latérale, ou voisinage de von neumann ou voisinage de la tour. Dans ce cas de points son considérés comme voisins si ils ont une arête en commun.
Le second type de voisinage est le voisinage par distance. On considère comme voisins tous les polygones situés à une distance fixée de l'individu étudié. Il est à noter que l'on utiliser différentes mesures de distances, la distance euclidienne et la distance de Manhattan.
Le troisième type de voisinage est celui des plus proche voisins. Ce dernier consiste à sélectionner comme voisin les k plus proches voisins (avec k à fixer par l'utilisateur). L'avantage de cette méthode est le contrôle du nombre de voisins.
Pour ce qui est de la construction de la matrice de voisinage à proprement parler qgis ne permet pas (à ma connaissance) ce type d'opérations. La première solution de substitution est d'utiliser Geoda, ce logiciel permet de construire à partir d'un shapefile (shp) une matrice de voisinage (tous les types présentés ci-dessus sont disponibles). Le problème est que la matrice ainsi crée à une forme particulière qu'il est nécessaire de retravailler afin d'obtenir le fichier sur lequel vous souhaitez travailler.
Voici typiquement la forme d'une matrice de voisinage de geoda :
0 756 auto POLY_ID # 756 nb d'individus # POLY_ID nom de la variable identifiant
1 7 # Individu n° 1 # 7 voisins
65 58 46 33 32 27 8 # Les voisins sont les individus 65, 58, 46 …
2 5 # etc
68 59 11 12 69
3 3
65 60 8
4 11
64 63 61 7 6 11 68 12 69 13 70
5 9
75 64 62 21 7 8 13 65 70
6 3
63 4 61
7 12
64 26 21 20 12 13 69 70 4 5 61 62
8 13
80 78 75 65 62 27 13 70 1 3 58 60 5
9 1
66
Je pense qu'il est possible de transformer ce genre de fichiers avec sed et grep.
Les deux autres solutions possibles sont l'utilisation de la bibliothèque PySAL sous python (je ne l'ai jamais utilisée) ou l'utilisation de la bibliothèque spdep sous R. Cette dernière est semblable à geoda mais propose des options plus nombreuses d'export.
Quoi qu'il en soit il va falloir mettre les mains dans le cambouis pour obtenir un fichier correspondant à votre demande.
Cordialement
Hors ligne
#3 Mon 11 August 2014 11:52
- Laurent_G
- Juste Inscrit !
- Date d'inscription: 9 Aug 2014
- Messages: 2
Re: QGIS (Débian 6) : GEOFLA Communes et Départements voisins
Merci beaucoup pour cette réponse, en particulier concernant la typologie des voisinages. Je vais partir sur la distance avec une procédure stockée dans mysql qui est le réceptacle de l'ensemble de mes données. Je voulais passer du code postal à geofla puis voisinage, j'ai réussi à affecter aux 6000 codes postaux des lat/long et vais calculer directement en scriptant (php en ligne de commande).
En tout cas merci beaucoup de vos explications claires et détaillées, si vous avez besoin d'un script pour l'exploitation (le découpage) d'un fichier tel que vous me l'avez présenté je serai heureux de vous rendre la pareille.
Un grand merci
Hors ligne
#4 Tue 12 August 2014 06:10
- FERNANE
- Participant actif
- Date d'inscription: 14 Sep 2005
- Messages: 139
Re: QGIS (Débian 6) : GEOFLA Communes et Départements voisins
Bonjour,
Vous pouvez créer une table de tampons de la table geofla (+1 à10 m
suffisent) ensuite faire l'intersection du fichier de tampons des
communes avec le fichier de la table des communes.
cordialement,
Béatrice FERNANE
Hors ligne
Pages: 1
- Sujet précédent - QGIS (Débian 6) : GEOFLA Communes et Départements voisins - Sujet suivant