Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 17 November 2010 15:02

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1220
Site web

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

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

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: LYON
Date d'inscription: 6 Aug 2007
Messages: 608

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

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1220
Site web

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

 

#5 Wed 17 November 2010 16:51

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS/Grass : renseigner une grille vecteur depuis données d'un raster

ok dans ce cas, cela me semble impossible avec QGIS...


geodata au cerema et petits billets en géomatique

Hors ligne

 

#6 Fri 19 November 2010 12:32

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

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

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

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

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

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

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1220
Site web

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

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1220
Site web

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

 

Pied de page des forums

Powered by FluxBB