#1 Wed 21 November 2018 18:29
- PaulWertz
- Participant occasionnel
- Lieu: Ernzen - GD Luxembourg
- Date d'inscription: 21 Nov 2018
- Messages: 18
QGIS: calculatrice raster-emprise-nodata
Bonjour,
Après plusieurs recherches infructueuses, je fais appel à la communauté pour le problème suivant : je travaille pour un projet en carrière et je fais des modélisations de terrain en fonction de projet d'extraction.
j'ai deux raster MNT qui ont la même emprise. Le premier correspond au MNT pour l'ensemble de la zone (obtenu par survol de drone).
Le deuxième correspond à une zone localisée (fossé) et résulte déjà d'un calcul raster : soustraction entre une extraction du MNT du terrain originel après application d'un masque correspondant à l'extension de ce fossé et le MNT du fossé (même extension que le masque) --> ce raster calculé donne donc l'épaisseur entre les deux surfaces ( --> volume qui devra être retiré).
Je désirerais ensuite soustraire ce raster "épaisseur" du raster terrain originel pour obtenir un nouveau MNT, modèle du site après extraction.
Problème : je n'obtiens un résultat que sur la surface du fossé et pas sur celle du terrain global (alors que les deux rasters ont la même emprise = la plus grande, celle du terrain global)... Est-ce lié aux valeurs nodata ? faut-il écrire la commande de soustraction entre les deux rasters en tenant compte de l'absence de valeur en dehors du polygone du masque pour le raster "épaisseur", et si oui comment ? J'ai un peu du mal avec la syntaxe de la calculatrice raster et la doc est très parcimonieuse sur ce sujet plutôt vaste ...
D'avance merci pour tout retour, suggestion ou ... solution
Paul
Hors ligne
#2 Thu 22 November 2018 00:19
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: calculatrice raster-emprise-nodata
Bonjour,
Oui un calcul arithmétique qui implique du nodata donne du nodata, ce qui est plutôt logique. Dans votre cas il faudrait que ces valeurs soient à zéro (pas de différence avec le mnt original).
Hors ligne
#3 Thu 22 November 2018 07:32
- PaulWertz
- Participant occasionnel
- Lieu: Ernzen - GD Luxembourg
- Date d'inscription: 21 Nov 2018
- Messages: 18
Re: QGIS: calculatrice raster-emprise-nodata
Bonjour,
Merci pour la réponse : c'est en effet ce que j'imaginais --> étape suivante : comment transformer dans le raster du MNE "fossé" les valeurs NoData en valeurs numériques, à savoir des 0 pour toute l'étendu du raster correspondant à la surface en dehors du fossé c'est à dire là où l'épaisseur est nulle ?
Excellente journée à tous
Paul
Hors ligne
#4 Thu 22 November 2018 10:12
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: calculatrice raster-emprise-nodata
Le plus simple est d'utiliser l'outil de reclassification raster dispo depuis la version 3.2 car la calculatrice raster de QGIS n'intègre pas encore d'expression conditionnelle (bien qu'il soit possible d'y arriver par des moyens détournés mais la syntaxe est très peu intuitive).
https://qgis.org/en/site/forusers/visua … algorithms
Par ailleurs, il est possible d'utiliser d'autres calculatrices raster par l'intermédiaire de QGIS : GDAL, SAGA, GRASS et OTB en proposent avec des syntaxes conditionnelles.
Hors ligne
#5 Thu 22 November 2018 10:40
- PaulWertz
- Participant occasionnel
- Lieu: Ernzen - GD Luxembourg
- Date d'inscription: 21 Nov 2018
- Messages: 18
Re: QGIS: calculatrice raster-emprise-nodata
Re-bonjour,
Gasp : je tourne encore avec la version 2.18 ... j'ai téléchargé et installé la 3.2 mais n'ai pas encore pris le temps de faire le saut : trop de boulot --> pas pu prendre le temps de la paramétrer comme ma version 2.18, et de comprendre et maîtriser les nouveautés ... bon, ce sera une bonne motivation pour changer de version ... Merci aussi pour le lien sur l'info concernant l'outil en question.
Existe-t-il aussi des liens ou des tutos un peu élaborés concernant la syntaxe de la calculatrice raster, qui me paraît en effet assez peu "classique" et intuitive ... quels sont les instructions conditionnelles dispo, leurs syntaxes, comment faire appel aux données des différents raster (uniquement double-clic dans la liste ?? ), ... ?
idem pour GDAL et SAGA, par exemple : il existe de la doc sur leurs syntaxes ?? Question d'optimiser un peu l'utilisation de ces super outils ...
Grand merci déjà en tout pour toutes ces informations ...
Excellente journée
Paul
Hors ligne
#6 Thu 22 November 2018 12:52
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS: calculatrice raster-emprise-nodata
Pour ma part la calculatrice raster de QGIS fonctionne de façon tout à fait similaire à d'autres outils concurrent, en revanche il est vrai qu'elle est pauvre en fonction. Je n'ai pas connaissance d'une documentation ou d'un tutoriel très détaillé. Ici une explication du hack pour reproduire une fonction conditionnelle : https://issues.qgis.org/issues/4476
Pour les autres outils :
- GDAL : https://www.gdal.org/gdal_calc.html
Il s'agit en fait d'un script Python auquel on peut du coup passer des fonction Numpy. Numpy est très bien documenté et riche en fonctionnalités, on utilise par exemple la fonction wherepour des opérations conditionnelles. J'aime bien cette solution, mais il est préférable d'avoir un peu de background Python pour en profiter pleinement.
-SAGA : http://www.saga-gis.org/saga_tool_doc/2 … lus_1.html
La documentation est succincte mais on voit l'écriture de la fonction ifelse
- GRASS : https://grass.osgeo.org/grass77/manuals/r.mapcalc.html
Certainement la solution la plus complète et la plus robuste, la documentation est toujours un point fort des outils GRASS
Hors ligne