I have an NDVI-Time series (24 tiffs from one year). What I would like to calculate is one single Raster with the Maximum NDVI-value for each pixel from all 24 images. I thought about using gdalcalc but I cannot find the right syntax to calculate the maximum of a my inputfiles:
Example for 2 Layers:
shell("E:/Programme/OSGeo4W.bat; gdal_calc -A E:/IVFL/Somalia/NDVI/201401_001_NDVI_NAfill.tif -B E:/IVFL/Somalia/NDVI/201409_121_NDVI_NAfill.tif --outfile E:/IVFL/Somalia/NDVI_maximum.tif --calc=(max(A,B))")
calc=max(A,B) always gives me an error.
And in the end I even have 24 input files and not only 2. Does anyone know the syntax (numpy) to calculate the maximum?
-
For a python solution see answers here: gis.stackexchange.com/questions/221692/…user6072577– user60725772016年12月19日 11:55:50 +00:00Commented Dec 19, 2016 at 11:55
2 Answers 2
you must use maximum instead of max
--calc="maximum(A,B)"
-
Thank you so much. It's working now for 3 layers! May you also now how to do it for all 24. When I add --calc=maximum(A,B,C,D,E,F...) there are to many variables. For now I already runned a loop to to stepwise always 3 layers, but it would be interessting if there is a more straightforward approach?user83420– user834202016年12月19日 15:29:11 +00:00Commented Dec 19, 2016 at 15:29
-
for large images, I use the OTB library. You also need to write your expression with all bands, but I've done min max with 12 bands over large areas, and it should work with more because it works in streaming.radouxju– radouxju2016年12月19日 19:41:41 +00:00Commented Dec 19, 2016 at 19:41
You can combine multiple pairwise maximum(A,B) function into one long function.
--calc="maximum(maximum(maximum(A,B),maximum(C,D)),maximum(maximum(E,F),maximum(G,H)))"