Dans la documentation de gdal_calc, il est indiqué Calculatrice raster en ligne de commande avec syntaxe numpy . Plus tard, il y a quelques exemples où dans l'un d'eux:
gdal_calc.py -A input.tif --outfile = result.tif --calc = "A * (A> 0)" --NoDataValue = 0 - signifie que les valeurs définies de zéro et inférieures sont nulles
Malheureusement, il n'y a pas d'exemple sur les opérateurs logiques comme:
--calc = "A * (A> 0 et A> B)" - signifie garder A si A plus grand zéro et plus grand B et mettre le reste à null
Sur la base des fonctions logiques Numpy / Scipy, je m'attendrais à écrire des opérateurs logiques comme:
--calc = "A * logic_and (A> 0, A> B)"
J'ai essayé et cela semble fonctionner mais je voudrais être sûr que c'est correct.
De la même manière si vous voulez un minimum de A et B:
--calc = "A * (A <= B) + B * (A> B)"
Vous pouvez simplement écrire:
--calc = "minimum (A, B)"
Mon problème est que je ne trouve aucun livre de cuisine pour m'assurer de bien faire les choses. Existe-t-il un bon livre de cuisine avec des exemples avancés de ce qui est et n'est pas possible avec gdal_calc?
À la suite de la réponse de Benjamin, vous pouvez utiliser logic_or () ou logic_and (). Voir http://docs.scipy.org/doc/numpy/reference/routines.logic.html . L'exemple suivant a très bien fonctionné pour moi. Cela définit toutes les valeurs comprises entre 177 et 185 (inclus) sur 0, qui est ensuite traitée comme nodata.
la source
J'avais un raster où les valeurs variaient entre -1 et 3 où zéro est un nombre valide. J'ai eu quelques problèmes pour créer une expression gdal_calc, alors j'ai fait cette solution rapide et furieuse.
la source