I am looking for ArcGIS's dynamic range adjustment (DRA) analouge in QGIS for raster data sets. And I have found such button:
But I have to click it every time I move raster's extent.
There is any way to automate manual clicking the button?
I am looking for ArcGIS's dynamic range adjustment (DRA) analouge in QGIS for raster data sets. And I have found such button:
But I have to click it every time I move raster's extent.
There is any way to automate manual clicking the button?
Unfortunately, this feature is not available without some python scripting, but will be available in 3.0.
See https://github.com/qgis/QGIS-Documentation/issues/1583
@QGIS-feature-tracker QGIS-feature-tracker added this to the QGIS 3.0 milestone on Dec 16, 2016
Nice find by @RoVo! There is also an alternative.
We could use a little bit of Python where each time the extent of the canvas changes, we connect the signal that is emitted to a function which triggers the button you mentioned.
So you could use something like the following in the Python Console:
from PyQt4.QtGui import QAction
def stretch_raster():
try:
layer = iface.activeLayer()
if layer.type() == QgsMapLayer.RasterLayer:
iface.mainWindow().findChild( QAction, 'mActionLocalCumulativeCutStretch' ).trigger()
except AttributeError:
pass
iface.mapCanvas().extentsChanged.connect(stretch_raster)
Note that the button will only be triggered if a raster layer is selected from the Layers Panel. When you want to disconnect the signal from the function, you can use:
iface.mapCanvas().extentsChanged.disconnect(stretch_raster)