Mais

Estatísticas zonais multirrasters de código python


env.workspace = "C:  Usuários  Documentos  pythonMODIS  extract" # Definir variáveis ​​locais inZoneData = "mask.shp" zoneField = "Classes" inValueRaster = "mi1511171_clip.tif" outTable = "zonalstattblout02.dbf" # Execute ZonalStatisticsAsTable outZSaT = ZonalStatisticsAsTable (inZoneData, zoneField, inValueRaster, outTable, "NODATA", "MEAN")

Eu tenho várias imagens modis e uma máscara de camada para 3 classes de campo regionais. Eu quero iterar estatísticas zonais em todos os conjuntos de dados rasters, obter uma tabela dbf de resumo, mas mantendo cada nome de raster, média, mínimo, máximo por classe de região.

Executei uma vez para cada imagem, mas quero iterar todas as imagens juntas. Eu me pergunto se preciso definir uma lista raster no espaço de trabalho e incluí-la no outZsat

Preciso de ajuda com o código.


Você pode manter as saídas em uma lista e mesclá-las após o fato.

inRasterFolder = r "…" arcpy.env.workspace = inRasterFolder tables = [] para raster em arcpy.ListRasters (): outTable = "table_" + str (uuid.uuid4 ()). replace ("-", "") [0: 8] + ".dbf" tables.append (outTable) outZSaT = ZonalStatisticsAsTable (inZoneData, zoneField, raster, outTable, "DATA", "ALL") arcpy.Merge_management (tables, "finalDbf.dbf")

Por questões de brevidade, as importações, vars, limpeza, etc. usuais não são mostradas. Se você precisar adicionar colunas personalizadas (não estou perfeitamente claro como você deseja lidar com as diferentes classes em seu zoneField), você pode adicionar e calcular campos logo após o comando ZonalStatsAsTable.


Assista o vídeo: Estatística e Probabilidade para Investimentos com Python #1 (Outubro 2021).