Suppression de petits polygones «sel et poivre» de la couche dans QGIS?


11

J'ai une carte composée de plusieurs polygones, avec quelques centaines de milliers de points de polygones très petits sur l' intérieur.

J'ai besoin de polygones plus grands, mais pas de petits polygones de points . Comment sélectionner et supprimer tous les petits polygones de points , tout en préservant les polygones plus grands? (Je ne veux évidemment pas le faire manuellement - il y a trop de points pour ça!)

Je suis totalement nouveau sur QGIS, et j'ai beaucoup cherché sur Google sans chance. Probablement parce que je ne suis pas sûr de la terminologie correcte à utiliser dans une recherche Google!

Les fichiers que j'utilise sont un .dbf, .prj, .qpj, .shp et .shx. Je fais simplement glisser le fichier .shp sur QGIS, et la carte apparaît comme une seule couche. Fondamentalement, une carte du Royaume-Uni divisée en régions (que je veux) et couverte de points (qui ne veulent pas).

vue de la carte Vue de tableau

Voilà à quoi ça ressemble de près. J'ai fait une dissolution pour voir s'ils iraient dans la couche environnante, sans chance:

vue rapprochée des polygones


4
Il semble que vous utilisiez des fichiers de formes (.shp). Chaque fichier de formes ne peut contenir qu'un seul point, ligne ou polygone. Ainsi, un (ou plusieurs) de vos fichiers de formes contiendra les régions du Royaume-Uni sous forme de polygones, et 1 (ou plusieurs) de vos fichiers de formes contiendra uniquement des points. Si vous activez / désactivez les fichiers de formes dans la table des matières (la case à côté d'eux), vous verrez quelles données sont contenues dans chaque fichier. Vous pouvez ensuite simplement supprimer les fichiers contenant les points.
Dan_h_b

1
Qui a créé les données ou d'où les avez-vous obtenues? Il semble (sur la base de l'image) que vous ayez des polygones avec des trous.
HeikkiVesanto

1
Je suis d'accord avec Vesanto que s'il ne s'agit que d'une seule couche, il pourrait s'agir d'une couche de polygones avec des trous ou de très petits polygones. Dans ce cas, vous pouvez les fusionner avec les polygones plus grands. Par exemple, sélectionnez les polygones qui sont dans le grand puis fusionnez. Pourriez-vous effectuer un zoom avant et fournir une capture d'écran en gros plan des «points» sur votre carte?
Chris P

1
Avez-vous des chances de joindre le fichier shp?
Dan_h_b

1
Ok, donc à une supposition, je dirai que vous avez des polygones en plusieurs parties (sur la base du fait qu'il n'y a que 17 lignes dans votre table d'attributs). Si vous explosez vos données en polygones à une seule partie, vous vous retrouverez avec des centaines de polygones. (Vecteur> Outils de géométrie> Multipart à pièces uniques). Vous devriez alors être en mesure de faire une sélection en fonction de la zone (c'est-à-dire sélectionner les très petites zones) et les supprimer pour vous débarrasser de tous ces minuscules polygones, ou de la même manière, vous devriez pouvoir les dissoudre dans le plus grand polygone dans lequel ils tombent dans.
Dan_h_b

Réponses:


22

Il semble que vous travaillez avec des données Ordnance Survey Code-Point , qui sont un ensemble de données des zones de code postal en Grande-Bretagne et en Irlande du Nord.

Les "points" dont vous parlez sont de petits polygones carrés qui représentent ce que l'on appelle des "rues verticales": des piles de plusieurs codes postaux, qui ne peuvent pas être représentées à l'aide de polygones "conventionnels" (voir le commentaire d'Andy Harfoot pour plus de détails). ). Vous voudrez peut-être réfléchir à deux fois avant de supprimer ces polygones si vous avez besoin des codes postaux affectés pour votre analyse.

Cela dit, voici comment supprimer ces polygones:

  1. Sélectionnez tous les polygones de rues verticales en cliquant sur "Sélectionner des entités à l'aide d'une expression" et en entrant "POSTCODE" LIKE 'V%'. Cela sélectionnera toutes les entités dont le code postal commence par V, qui sont les rues verticales.

  2. La simple suppression des entités n'aidera pas, car les polygones laisseront des trous, comme vous l'avez déjà remarqué. Au lieu de cela, vous pouvez fusionner les rues verticales avec un grand polygone voisin à l'aide de "Vector / Outils de géotraitement / Éliminer les polygones de ruban", en enregistrant le résultat dans un nouveau fichier.

  3. Vous pouvez recevoir le message d'avertissement indiquant que certaines fonctionnalités n'ont pas pu être dissoutes, ainsi qu'une liste d'ID de fonctionnalités. Si vous souhaitez également vous débarrasser de ces entités, sélectionnez les rues verticales du nouveau calque à l'aide de l'expression précédente, puis effectuez l'une des opérations suivantes:

    1. Si vous voulez une solution automatique, vous pouvez dissoudre les rues verticales avec tous les polygones voisins. Enregistrez la sélection dans un nouveau calque à l'aide de "Calque / Enregistrer la sélection en tant que fichier vectoriel", puis utilisez "Outils vectoriels / de recherche / Sélectionner par emplacement" pour sélectionner les entités du calque fusionné qui se croisent avec les rues verticales incriminées, créant une nouvelle sélection . Dissolvez ensuite cette sélection à l'aide de "Vector / Outils de géotraitement / Dissoudre", en choisissant --- Dissolve all ---dans le "champ Dissoudre". Notez que cette approche peut conduire à la dissolution indésirable de polygones «appropriés» si la rue verticale incriminée se trouve à la limite de deux autres polygones, ou s'il existe des rues verticales incriminées dans deux polygones voisins.

    2. Si vous voulez éviter de dissoudre d'autres polygones, vous pouvez sélectionner manuellement les rues verticales et un polygone adjacent, en prenant soin de ne pas sélectionner deux polygones voisins, puis de les dissoudre comme ci-dessus.


3
Excellente présentation de la source, des risques, des options et du processus que l'OP avait initialement demandé!
RyanKDalton

1
Point mineur - les rues verticales existent où il y a une pile verticale de plus d'un code postal, empêchant leur représentation comme un polygone «conventionnel» dans l'ensemble de données. Cela se produit généralement dans les tours d'habitation ou les immeubles de bureaux. Une liste est fournie en tant que complément du jeu de données principal du polygone de point de code qui étend le code de rue vertical (en commençant par V) dans les multiples codes postaux qui le composent.
Andy Harfoot

@AndyHarfoot: Ah oui, merci pour la clarification! J'ai édité ma réponse
Jake

C'est génial - merci. Une seule chose: je ne trouve pas Sélectionner des entités à l'aide d'une expression ou d'un vecteur / Outils de géotraitement / Éliminer les polygones de ruban. Je suis sur 1.8.0 Lisboa. Dois-je mettre à niveau?
Dazed and Confused

2

Essayez d'inverser votre méthodologie. Au lieu d'essayer de sélectionner et de supprimer des milliers de points, avez-vous essayé de sélectionner les polygones et de créer une nouvelle couche à partir de cette sélection? Ce ne serait pas trop fastidieux si vous aviez une méthode pour supprimer manuellement tous les points, sélectionnez simplement les entités surfaciques à la place et créez une couche ou exportez-les. Si ces points sont de petits polygones, comme d'autres l'ont commenté, vous pouvez toujours sélectionner uniquement les polygones que vous souhaitez conserver et exporter.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.