#1 Fri 29 May 2020 10:36
- Marisa POQUET
- Participant occasionnel
- Date d'inscription: 2 Feb 2006
- Messages: 40
QGIS 2.18: Interpolation et Emprise
Bonjour, J'ai une question surement très basique mais je n'ai pas trouvé de réponse dans le forum.
J'utilise QGis 2.18
J'ai une table parcelle (polygone correspondant à l'emprise d'une parcelle) et une table sondage (chaque point correspond à un sondage, avec une note pour chaque sondage).
Je veux calculer la note moyenne sur l'ensemble de la parcelle. J'utilise raster/interpolation. Je n'arrive pas à faire en sorte que le resultat suive les limites de la parcelle. J'obtiens un rectangle correspondant à l'emprise max de mes sondages.
Comment faire pour selectionner le contour qui m'intéresse ?
Ensuite, comment calculer la note moyenne ?
Merci de votre aide.
Hors ligne
#2 Tue 02 June 2020 09:35
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: QGIS 2.18: Interpolation et Emprise
Bonjour,
Si je comprends bien ta méthode, tu souhaites, pour chaque parcelle, attribuer une note par moyenne de la valeur pondérée par la surface de représentativité des sondages.
Utilise l'outil Saga - Raster creation tools - Nearest Neighboor, qui permet de définir l'emprise de l'interpolation
Ensuite, utilise Saga - Vector <-> raster - Raster statistics for polygons pour calculer la moyenne des valeurs de pixel par polygone.
Un sondage pourra participer à la moyenne d'une parcelle dans laquelle il ne se trouve pas.
Si ce comportement te gène, les ennuis commencent.
Il n'existe pas à ma connaissance d'outil pour faire une interpolation avec barrière sous QGIS, du moins avec Saga et Grass
Une boucle en Python ou R sera indispensable.
Renaud Mouche
Hors ligne
#3 Tue 02 June 2020 10:37
- romainbh
- Participant assidu
- Date d'inscription: 20 Aug 2013
- Messages: 355
Re: QGIS 2.18: Interpolation et Emprise
Bonjour,
Autre solution, qui fonctionne avec la version 3 de QGIS, je ne l'ai par contre pas testée sur la version 2 (c'est vieux tout ça ;-).
Crée un nouveau champ virtuel dans ta couche de polygones en nombre décimal avec le code (à adapter) suivant :
Code:
aggregate( 'nom_de_ta_couche_de_points','mean',"nom_de_champ_contenant_les_notes",intersects($geometry,geometry(@parent)))
Il est important de conserver les apostrophes et guillemets !
Explications : la fonction aggregate va faire la moyenne (mean) des données d'une autre couche (points, champ note) avec comme filtre les points qui sont géographiquement dans le polygone (intersects($geometry,geometry(@parent))).
Salutations
Hors ligne