#1 Sat 17 December 2016 20:36
- Daniele_G
- Juste Inscrit !
- Date d'inscription: 9 Apr 2016
- Messages: 5
QGIS 2.18: bandmath d'otb ?
bonjour,
je cherche à faire un NDVI avec l'algorithm bandmath d'OTB sous QGIS.
(im1b1-im1b4)/(im1b1+im1b4),
Sous QGIS comment faire ? la division ne génére pas de résultat valide pour mon calcul
merci de votre aide
Danièle
Hors ligne
#2 Sat 17 December 2016 23:00
Re: QGIS 2.18: bandmath d'otb ?
Bonsoir,
En passant par la calculatrice Raster (Menu Raster -> Calculatrice Raster) c'est possible également.
Hors ligne
#3 Mon 19 December 2016 09:28
- Sylvain PIERRE
- Participant assidu
- Lieu: Strasbourg
- Date d'inscription: 6 Sep 2005
- Messages: 170
Re: QGIS 2.18: bandmath d'otb ?
Le problème du résultat non-valide vient peut-être du fait que les valeurs de l'indice NDVI sont normalement comprises entre -1 et 1.
Si vous ne "forcez" pas le calcul pour qu'il renvoie une valeur décimale, il renverra une valeur entière qui comprise entre -1 et 1 donnera systématiquement ...0!
Donc pour forcez le calcul d'un décimal dans le module il faut au minimum multiplier le numérateur et/ou le dénominateur par 1.0:
Code:
1.0*(im1b1-im1b4)/1.0*(im1b1+im1b4)
Sous orfeo je ne sais pas si ça marche mais dans la calculatrice raster oui.
Sinon avec les traitements (Processing)
Code:
processing.runalg('grass:r.mapcalculator',rasterIR, rasterR, None,None,None,None, "float(A-B)/(A+B)", "%f,%f,%f,%f"% (xmin, xmax, ymin, ymax), 10, output)
Un réflexion au passage: c'est vraiment impressionnant les différentes possibilités disponibles sous QGIS pour réaliser une seule tache!
Par contre celaoblige à les tester une par une pour trouver la plus efficiente. Dans mon cas le calcul d'un indice NDVI sur une scène Sentinel de 100*125 km ne passait pas du tout avec la calculatrice raster de QGIS alors que le module grass équivalant tourne très très bien.
Sylvain
Dernière modification par Sylvain PIERRE (Mon 19 December 2016 09:32)
Hors ligne