Pages: 1
- Sujet précédent - QGIS/Grass : renseigner une grille vecteur depuis données d'un raster - Sujet suivant
#1 Wed 17 November 2010 15:02
QGIS/Grass : renseigner une grille vecteur depuis données d'un raster
Bonjour à tous,
je souhaite sur certains sites d'études produire une couche vecteur, constituée de maille carrées de 100m de coté, renseignée avec les valeurs moyennes du MNT pour l'altitude, la pente et l'exposition.
J'ai créé ma grille avec GRASS :
Code:
v.mkgrid map=grille_lr_100m grid=2600,3000 --o position=coor coor=588600,6137100 box=100,100
Je souhaite maintenant intérroger le mnt pour l'altitude :
Code:
v.rast.stats -c -e vector=grille_lr_100m@PERMANENT raster=mnt11@PERMANENT colprefix=mnt_
L'erreur suivante est renvoyée, aprés un avertissement :
Code:
WARNING: This module has been replaced by r.category ERROR: No categories found in raster map
Avez vous été confrontés à ce problème, avez vous une piste de contournement ?
Merci d'avance,
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#2 Wed 17 November 2010 15:57
Re: QGIS/Grass : renseigner une grille vecteur depuis données d'un raster
Comment obtenir les valeurs moyennes avec ton MNT?
De plus, il faut qu'elles soient obtenues selon le même maillage
Sinon, avec QGIS, une fois que tu as ton raster MNT interpolé, tu peux obtenir les valeurs comme ceci
1-on génère la grille
Vecteur > Outils d'analyse > Grille Vecteur => grilleVecteur.shp
2-On rasterise
Raster > Rasteriser en prenant l'ID comme attribut => grilleVecteur.tiff
3-On croise les 2 rasters
Extension > Raster Calculator > on multiple les valeurs du MNT par celui du raster généré et on divise par cette même valeur [N_MNT_02B]@1 * [grilleVecteur]@1 / [grilleVecteur]@1=>grilleVecteur-MNT.tiff
4-On polygonise
Raster > Polygoniser=>grilleVecteur-MNT.shp
geodata au cerema et petits billets en géomatique
Hors ligne
#3 Wed 17 November 2010 16:08
- ppluvinet
- Participant assidu
- Lieu: VALENCE
- Date d'inscription: 6 Aug 2007
- Messages: 617
Re: QGIS/Grass : renseigner une grille vecteur depuis données d'un raster
Salut Mathieu,
voilà ce que j'ai lu :
v.rast.stats still tries to use the old 'r.cats' module to gather raster categories. This should be updated to use the new 'r.category' module. This may also allow extended functionality for v.rast.stats
http://trac.osgeo.org/grass/ticket/161
Or ce problème a été souligné il y a plus de 3 ans.
Une solution serait peut-être de modifier la fonction v.rast.stats légèrement. Si je me souviens bien les fonctions sont accessibles dans des fichiers texte. Je me rappelle d'ailleurs avoir modifié cette fonction car je ne souhaitais n'avoir que la moyenne et pas toutes les autres statistiques qui ralentissait les calculs. Ceci dit, ca fait 2 ans que je n'ai quasiment pas touché à Grass donc je peux pas beaucoup t'aider.
Pascal PLUVINET
Hors ligne
#4 Wed 17 November 2010 16:46
Re: QGIS/Grass : renseigner une grille vecteur depuis données d'un raster
Merci à tous les deux,
baobazz, la fonction v.rast.stats semble faite pour cela :
Calculates univariate statistics from a GRASS raster map based on vector polygons and uploads statistics to new attribute columns
Je vais tester ta méthode avec QGIS.
pascal, merci pour le tuyau concernant les fonctions. Comme on en avait parlé, la piste wktraster de postgis permettra de répondre à ce genre de problème. Pour l'instant, je rencontre un problème avec le chargeur python ratser2pgsql, mais ça sera l'objet d'un autre post.
Si tu est de passage par Montpellier un de ces jours...
Je viendrai dire comment je m'en suis sorti.
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#6 Fri 19 November 2010 12:32
Re: QGIS/Grass : renseigner une grille vecteur depuis données d'un raster
Il est marqué
WARNING: This module has been replaced by r.category
Il y a donc sûrement une méthode utilisant les catégories...
ce que je vois comme méthode est la suivante:
1-Donner une valeur à chaque carré de la maille vectorielle
2-Cette valeur sert à renseigner la catégorie de chaque pixel sur la base d'une jointure vecteur-raster
si pixel dans maille 1, on donne la catégorie 1
3-Ensuite, on affecte à tous les pixels d'une même catégorie la moyenne des valeurs des pixels de cette même catégorie.
Par contre, je ne vois pas trop comment faire sous GRASS, quels modules utiliser.
geodata au cerema et petits billets en géomatique
Hors ligne
#7 Fri 19 November 2010 14:30
Re: QGIS/Grass : renseigner une grille vecteur depuis données d'un raster
En fait, je pense qu'il faudrait rasteriser la grille vecteur en choisissant des valeurs différentes pour chaque carré: v.to.rast. On l'appellerait grilleVecteur
http://grass.fbk.eu/gdp/html_grass63/r.average.html
Ensuite, on utilise r.average de cette façon:
Code:
r.average [-c] base=[grilleVecteur] cover=[MNT] output=[MNTGrille]
On peut vectoriser le raster par la suite avec r.to.vect feature=area
Dernière modification par baobazz (Fri 19 November 2010 14:58)
geodata au cerema et petits billets en géomatique
Hors ligne
#8 Mon 22 November 2010 11:12
Re: QGIS/Grass : renseigner une grille vecteur depuis données d'un raster
Je viens d'effectuer un test et cela fonctionne très bien comme cela.
cf PJ
[img]http://data.imagup.com/1/1105093405.gif[/img]
geodata au cerema et petits billets en géomatique
Hors ligne
#9 Mon 22 November 2010 14:02
Re: QGIS/Grass : renseigner une grille vecteur depuis données d'un raster
Bonjour baobazz,
merci beaucoup pour tes recherches. J'ai été pris par autre chose en fin de semaine et je me remettrai sur ce problème mercredi je pense.
Je viendrai faire un retour.
Bonne après-midi,
[EDIT]le 9/12/2010 : Je n'ai pas oublié de faire un retour, mais je n'ai pas encore pu me replonger sur le sujet.[/EDIT]
Dernière modification par Mathieu BOSSAERT (Thu 09 December 2010 10:21)
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#10 Fri 10 December 2010 09:11
Re: QGIS/Grass : renseigner une grille vecteur depuis données d'un raster
Bonjour,
voici une page dédiée à la question sur le trés bon site http://datagistips.blogspot.com.
http://datagistips.blogspot.com/2010/11 … IS+tips%29
Pas encore eu le temps d'appliquer la méthode mais merci pour ces pistes et tutoriels.
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
Pages: 1
- Sujet précédent - QGIS/Grass : renseigner une grille vecteur depuis données d'un raster - Sujet suivant