Salvando rasters como no processo em lote
Sep 15 2020
Eu encontrei algumas perguntas semelhantes, mas acho que a minha é muito mais simples.
Eu gostaria de executar: Export -> Save Ascomo um comando em lote.
Eu tenho 1 camada que tem 9595 DEM raster sobreposto e gostaria de salvar a 1 camada abaixo, recortada nas extensões de cada arquivo DEM.
Isso é possível?
Respostas
BERA Sep 15 2020 at 13:39
Você pode usar o pyqgis para listar todos os rasters, encontrar a extensão de cada um e então Clip raster by extent:
import os
outfolder = r'C:\GIS\data\testdata\out_clip' #Change
raster_to_clip = r"C:\GIS\data\Bakgrundskartor_LMV\sve_1milj_Sweref_99_TM_geotiff\sverigekartan\s1milj.tif" #Change to the layer you want to clip. Dont add this to QGIS!
rasterlayers = [layer for layer in QgsProject.instance().mapLayers().values() if isinstance(layer, qgis._core.QgsRasterLayer)] #List all raster layers added to the map
for rlyr in rasterlayers: #For each rasterlayer
e = rlyr.extent() #Find extent
xmax, xmin, ymax, ymin = e.xMaximum(), e.xMinimum(), e.yMaximum(), e.yMinimum()
processing.run("gdal:cliprasterbyextent",
{'INPUT':raster_to_clip,
'PROJWIN':'{0}, {1}, {2}, {3} []'.format(xmin,xmax,ymin,ymax),
'NODATA':None,
'OPTIONS':'',
'DATA_TYPE':0,
'EXTRA':'',
'OUTPUT':os.path.join(outfolder, os.path.basename(raster_to_clip[:-4])+'_{}.tif'.format(rlyr.name()))}
)
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas