Je suis un débutant, excuses si cela est évident / a déjà été demandé et répondu mais je n'ai rien trouvé.
J'ai deux fichiers de formes: 1. une couche limite administrative pour un comté au Royaume-Uni connu comme une limite LSOA qui contient 500 petites zones 2. une zone inondable.
Idéalement, je veux savoir lesquelles des petites zones LSOA sont ≥50% dans la zone d'inondation et finir avec un oui / non ou un 1/0 pour chacune des 500 zones LSOA.
Mais je ne sais pas comment faire ça. J'ai pensé que je pouvais rejoindre les deux fichiers de formes, mais il n'y a pas d'attribut commun entre eux. Ensuite, j'ai pensé que je pouvais utiliser la fonction Join Attribute by Location, qui fonctionnait et me montrait quels LSOA se trouvaient dans la zone inondable, mais c'est presque tous (voir l'image 2).
Je pense que c'est un problème SQL mais je ne sais pas. Je suis nouveau sur QGIS et je n'ai jamais utilisé PostgreSQL.
Toute aide serait grandement appréciée. Je peux vous fournir toutes les informations dont vous avez besoin pour vous aider.
la source
Vector > Research Tools > Vector Grid... Output grid as polygons
), puis coupez la grille avec la couche d'inondation. Utilisez ensuite la sortie au lieu de la couche Flood à l'étape 3. Je suppose que la raison pour laquelle la couche était vide est parce qu'elle s'est écrasée.Vous pouvez utiliser spatialite et certaines fonctions SQL spatiales.
la source
Cela semble être quelque chose qui pourrait être fait beaucoup plus facilement que les réponses soumises. J'utiliserais personnellement un simple script python:
cela n'évalue que les polygones d'inondation qui se croisent avec le cadre de délimitation de chaque couche de délimitation de sorte qu'il devrait être assez rapide à exécuter, puis il ne met à jour qu'un champ dans la couche existante (au lieu d'une opération complexe consistant à créer une toute nouvelle couche et à copier les anciennes valeurs puis suppression)
la source
J'ai eu le même problème que KJ en suivant les instructions de Snorfalorpagus en utilisant la méthode "Intersect" à l'étape 3. Il a fallu un certain temps pour calculer et ce qui me restait était vide.
J'ai essayé de suivre les mêmes étapes, sauf en utilisant la méthode "Clip" dans QGIS au lieu d'Intersect - donc, dans votre exemple, ce qui resterait serait les parties des zones qui ne sont PAS couvertes par la zone inondable. Cela semblait fonctionner pour une raison quelconque et j'ai pu utiliser le calcul du champ "Surface" de l'étape précédente, plus un nouveau calcul "Surface" sur les parties restantes de chaque polygone, pour déterminer le% de chaque surface qui n'était PAS recouvert par l'autre couche Polygon.
C'est techniquement l'inverse de ce que vous avez demandé. Mais à partir de là, il suffit de soustraire chaque valeur de 1 pour obtenir ce qui est couvert par la zone inondable.
la source