Skip to content

Instantly share code, notes, and snippets.

@ljvmiranda921
Last active July 27, 2021 22:52
Show Gist options
  • Select an option

  • Save ljvmiranda921/47c82acb6d42a3ccb9c6828c786043a9 to your computer and use it in GitHub Desktop.

Select an option

Save ljvmiranda921/47c82acb6d42a3ccb9c6828c786043a9 to your computer and use it in GitHub Desktop.

Revisions

  1. ljvmiranda921 revised this gist Dec 12, 2018. 1 changed file with 6 additions and 2 deletions.
    8 changes: 6 additions & 2 deletions renderer.py
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,11 @@
    def export_as_rendered_image(layer, outfile):
    """Export a QGIS Layer as the the rendered image
    """Export a QGIS Layer as the rendered image
    Usage:
    Usage
    -----
    Use this while working inside QGIS. As of now, I'm not sure
    how to run this outside of QGIS. In addition, files are saved
    in your home directory
    ..code-block:: python
    # Get active layer, assuming it's loaded in QGIS already
  2. ljvmiranda921 created this gist Dec 12, 2018.
    46 changes: 46 additions & 0 deletions renderer.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,46 @@
    def export_as_rendered_image(layer, outfile):
    """Export a QGIS Layer as the the rendered image
    Usage:
    ..code-block:: python
    # Get active layer, assuming it's loaded in QGIS already
    layer = iface.activeLayer()
    outfile = 'rendered_image' # No file extension!
    export_as_rendered_image(layer, outfile)
    # To run on multiple layers, first get a list of layers, and
    # a list of strings for output filenames. Ensure that
    # len(layers) == len(outfiles)
    layers = iface.mapCanvas().layers()
    outfiles = [] # list of output files
    for layer, outfile in zip(layers, outfiles):
    export_as_rendered_image(layer, outfile)
    Parameters
    ----------
    layer : list of qcis._core.QgsRasterLayer
    outfile : list of str
    """
    extent = layer.extent()
    width, height = layer.width(), layer.height()
    renderer = layer.renderer()
    provider=layer.dataProvider()
    crs = layer.crs().toWkt()

    pipe = QgsRasterPipe()
    pipe.set(provider.clone())
    pipe.set(renderer.clone())

    filename = '{}.tif'.format(outfile)
    file_writer = QgsRasterFileWriter(filename)

    file_writer.writeRaster(pipe,
    width,
    height,
    extent,
    layer.crs())
    print('Exported {}'.format(filename))