Suite

Créer un cluster de plantages à l'aide de QGIS ?


J'ai un shapefile avec 52K points d'accidents de la route, entre 2007 et 2012.

Chaque accident a un indice de gravité. Je veux montrer des grappes de 5 accidents (au moins), pour chaque année, qui ont un indice de gravité égal ou supérieur à 20, et qui se trouvent dans un rayon de 100 mètres de la même route.

J'ai déjà essayé de créer des tampons de 100 mètres et de croiser les tampons, mais je n'ai pas pu.

Je travaille sur QGIS 2.0.1.

Pouvez-vous m'aider?


Tout d'abord, vous avez affaire à @ 52k points, donc chaque fois que vous exécutez une analyse avec cette quantité de données, il y a de fortes chances que QGIS regards gelé mais le plus souvent, il est toujours en cours de traitement (vous pouvez le vérifier avec le gestionnaire de tâches et l'utilisation du processeur).

Pour commencer, nous devons filtrer tous les points inutiles que nous ne voulons pas, je suggère donc de créer et d'utiliser un calque en double et de l'enregistrer dans un autre fichier de formes. Chargez votre table attributaire et sélectionnez le Filtre avancé (expression):

Utilisez cette expression et appliquez :

"VL_GRAVIDA" >= 20

Sélectionner TOUT des points affichés, puis sélectionnez Afficher toutes les fonctionnalités. Inversez la sélection et supprimez les champs. Cela réduit considérablement vos données à moins de 3 000 points, ce qui permet de mener une analyse plus approfondie beaucoup plus rapidement. Assurez-vous d'enregistrer les modifications.

Faire votre Amortir analyse de 100m et exécutez le Intersection outil avec votre couche de routes. Nous utiliserons cette couche nouvellement intersectée.

Maintenant, téléchargez et installez le Statistiques du groupe plug-in via Plugins > Gérer et installer des plugins… . Nous allons l'utiliser pour compter combien de polygones se trouvent sur la même route en utilisant le champ "COD_VIA" (merci de l'avoir signalé !). Cliquez/glissez le champ "COD_VIA" depuis le Des champs liste dans le Lignes et Valeurs boîtes comme indiqué dans l'image ci-dessous. Descendez le Des champs liste pour trouver diverses fonctions, répétez pour compter dans le Valeurs case et cliquez Calculer:

Vous avez maintenant le nombre total de polygones qui se trouvent sur la même route. Triez par la deuxième colonne et descendez la liste jusqu'à ce que vous atteigniez le premier champ avec un nombre de5. Sélectionnez ce champ, descendez dans la liste, maintenez décalage à gauche et sélectionnez le dernier champ. Aller à Données > Copier la sélection dans le presse-papiers (l'enregistrer en tant que fichier .csv n'enregistre pas les valeurs de comptage).

Ouvrez un tableur et collez les valeurs. Vous pouvez renommer la deuxième colonne si vous le souhaitez bien que ce ne soit pas nécessaire (je l'ai simplement renommée en COUNT). Enregistrez ceci en tant que fichier .csv :

Faites glisser le fichier .csv dans QGIS, nous serons joindre ceci avec la couche intersectée. Ouvrez le Propriétés de la couche > Jointure > faire correspondre les champs :

Maintenant, vos attributs pour la couche intersectée contiennent le nombre de comptes pour chaque route. Ouvrez la table attributaire et triez par la colonne nouvellement ajoutée à la fin, nous allons maintenant supprimer tous les champs avecNULcompte :

Enregistrez les modifications. Vous avez maintenant une couche de champs avec un indice de gravité >= 20 et au moins 5 polygones sur la même route. Répétez la méthode avec le plugin Group Stats pour avoir 5 champs chaque année.

Alors maintenant, vous avez une couche filtrée avec vos besoins :

  • Indice de gravité >= 20
  • 100 mètres dans la route la plus proche
  • Au moins 5 accidents par route
  • Données pour chaque année de 2007 à 2012

Et vous pouvez jouer avec les styles pour les rendre plus attrayants visuellement. J'ai ajouté un style qui montre le rayon de 100 m autour du point central et utilisé le plugin OpenLayers comme arrière-plan :

Juste une note supplémentaire en termes de visualisation des données de points, j'aime personnellement utiliser les Heatmaps (Interpolation > Cartes thermiques) et jouez avec les couleurs pour obtenir de jolis résultats :