Instrução

Executar cálculo de raster usando ArcPy

Last Published: July 19, 2023

Resumo

A ferramenta Spatial Analyst pode ser executada usando o módulo Spatial Analyst ArcPy para executar análises de raster. Ao escrever um script Python, é possível arrastar e soltar uma ferramenta no console Python para gerar uma linha de código. Embora a linha de código seja gerada para a ferramenta Calculadora de Raster, a execução retorna uma saída vazia ou falha com a seguinte mensagem de erro:

Erro: AttributeError: O módulo 'arcpy.sa' não tem nenhum atributo de 'RasterCalculator'
A ferramenta Calculadora de Raster não se destina ao uso em ambientes de script e não está disponível no módulo Spatial Analyst ArcPy padrão. Ela é projetada para uso apenas no aplicativo como uma ferramenta de geoprocessamento ou no ModelBuilder. No entanto, é possível implantar o módulo Spatial Analyst Arcpy para usar com operadores da Álebra de Mapas em scripts de Python. Consulte ArcGIS Pro: Trabalhando com operadores na Álgebra de Mapas para mais informações.

Procedimento

O script de exemplo abaixo representa o fluxo de trabalho para modificar os valores de pixel usando a operação de multiplicação em todos os rasters em uma pasta.

  1. Importe o módulo necessário.
import arcpy from arcpy import env from arcpy.sa import *
  1. Especifique a área de trabalho desejada.
arcpy.env.workspace = r"<caminho_local>\<nome>.gdb" arcpy.env.scratchWorkspace = r"<caminho_local>\<nome>.gdb"
  1. Imprima a lista de arquivos raster disponíveis na pasta.
raster_list = arcpy.ListRasters("*") print (raster_list)
  1. Verifique a extensão Spatial Analyst .
try:     if arcpy.CheckExtension("Spatial") == "Available":         arcpy.CheckOutExtension("Spatial")         print ("Checked out \"Spatial\" Extension")     else:         raise LicenseError except LicenseError:     print "A licença Spatial Analyst não está disponível" except:     print arcpy.GetMessages(2)
  1. Percorra todos os arquivos raster, execute o cálculo e especifique a pasta de salvamento desejada.
for raster in raster_list:     ras = Raster(raster)     filename = str(raster)[:-3] + '<extensão do arquivo desejado>'     outraster = ras * <valor_desejado>               outraster.save(r"<caminho_local>\<nome>.gdb" + "\\" + filename)

ID do Artigo:000022418

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com suporte técnico

Baixe o Esri Support App

Ir para opções de download

Informações Relacionadas

Descubra mais sobre este tema