Montei este código com ajuda do ChatGpt, mas está dando erro, alguém pode me ajudar? Minha versão Qgis é 3.44.1
Obrigado
>>> import os
from qgis.core import QgsMessageLog, Qgis
from osgeo import gdal
# ============= CONFIGURAÇÕES =============
# Altere os caminhos conforme necessário
pasta_indices = "D:/pasta_indices" # Rasters de índices (NDVI, NDRE, etc.)
pasta_lavouras = "D:/pasta_lavouras" # Shapes das lavouras
pasta_saida = "C:/pasta_recortes" # Saída para os rasters recortados
# ========================================
# Criar pasta de saída se não existir
os.makedirs(pasta_saida, exist_ok=True)
# 1. Listar arquivos de índices (.tif)
arquivos_indices = [
f for f in os.listdir(pasta_indices)
if f.upper().endswith('.TIF') and any(index in f.upper() for index in ['NDVI', 'NDRE'])
]
QgsMessageLog.logMessage(
f"Encontrados {len(arquivos_indices)} arquivos de índices",
'MeuPlugin', Qgis.Info
)
# 2. Listar shapes das lavouras (.shp)
arquivos_lavouras = [
f for f in os.listdir(pasta_lavouras)
if f.upper().endswith('.SHP') and not f.startswith('~')
]
QgsMessageLog.logMessage(
f"Encontrados {len(arquivos_lavouras)} shapes de lavouras",
'MeuPlugin', Qgis.Info
)
# 3. Processar cada combinação índice x lavoura
total_processados = 0
if not arquivos_indices:
QgsMessageLog.logMessage("Nenhum índice encontrado!", 'MeuPlugin', Qgis.Warning)
if not arquivos_lavouras:
QgsMessageLog.logMessage("Nenhum shapefile de lavoura encontrado!", 'MeuPlugin', Qgis.Warning)
for idx in arquivos_indices:
for lav in arquivos_lavouras:
caminho_indice = os.path.join(pasta_indices, idx)
caminho_lavouras = os.path.join(pasta_lavouras, lav)
# Nome de saída
nome_base = f"{os.path.splitext(idx)[0]}_{os.path.splitext(lav)[0]}"
caminho_saida = os.path.join(pasta_saida, f"{nome_base}.tif")
# Configurar opções de recorte
opts = gdal.WarpOptions(
cutlineDSName=caminho_lavouras,
cropToCutline=True,
dstNodata=-9999,
creationOptions=['COMPRESS=DEFLATE']
)
try:
# Executar recorte
ds = gdal.Warp(caminho_saida, [caminho_indice], options=opts)
if ds is None:
raise RuntimeError("Falha no GDAL Warp")
ds.FlushCache()
del ds
QgsMessageLog.logMessage(f"Sucesso: {nome_base}", 'MeuPlugin', Qgis.Info)
total_processados += 1
except Exception as e:
QgsMessageLog.logMessage(
f"Erro ao processar {idx} com {lav}: {str(e)}",
'MeuPlugin', Qgis.Warning
)
# Resultado final
QgsMessageLog.logMessage(
f"Processamento concluído! {total_processados} arquivos gerados em {pasta_saida}",
'MeuPlugin', Qgis.Success
)
print(f"Processamento concluído! {total_processados} arquivos gerados em {pasta_saida}")
File "<input>", line 1
import os
^
SyntaxError: multiple statements found while compiling a single statement