TransWikia.com

Filling no data in raster using focal statistics in batch in ArcMap

Geographic Information Systems Asked by Yiqian Zeng on April 19, 2021

I know how to use the below python script to fill no data in a single raster using focal statistics, but I have a series of rasters, I do not want to run the script one by one.

Can any people tell me how to do it in batch?

>>>
... import arcpy

... from arcpy import env

... from arcpy.sa import *

... env.workspace = "C:/Users/wing/Desktop/try/NDVI"

... outCon = Con(Raster("MOD13Q1.A2000049.250m_16_days_NDVI.tif")<-2000, FocalStatistics("MOD13Q1.A2000049.250m_16_days_NDVI.tif",NbrRectangle(3,3),"MEAN","NODATA"), "MOD13Q1.A2000049.250m_16_days_NDVI.tif")

... outCon.save("C:/Users/wing/Desktop/try/outcon")

One Answer

you can make a loop based on ListRasters in your repository. Note that your method is looking for "impossible NDVI values" (< -2000) but if you want to specifically manage NoData, then you should use "IsNull()". And if you have values below -2000, focal stat will not ignore them, so you should probably force those values to be NoData first. (e.g. with Con(myraster>-2000,myraster) )

rasters = arcpy.ListRasters("MOD*", "TIF")
for modNDVI in rasters:
    inraster = Raster(modNDVI) #make a raster object from iput name
    outraster = modNDVI.replace("NDVI","NDVI_filled") #set an output name
    outCon = Con(IsNull(inraster), FocalStatistics(inraster,NbrRectangle(3,3),"MEAN","NODATA"), inraster)
    outCon.save(outraster)
    

Answered by radouxju on April 19, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP