def arcResampleRasters (FileList=["file1.tif","file2.tif"], inPath=None, outPath=None, scale="templateRaster.tif"): import arcpy import os if inPath==None: inPath==os.getcwd() if inPath==None: inPath==os.getcwd() inFileList = for f in FileList: inPath + "scaled"+str(scale)+f) inFileString = if len(inFileList>1): ';'.join(map(str, inFileList)) else str(inFileList) outFileList = for f in FileList: outPath + "scaled"+str(scale)+f) outFileString = ';'.join(map(str, outFileList) #Rescale Function Call arcpy.Rescale_management(inFileString, outFileString, resolution,"CUBIC") print("completed rescale, output file location:", outPath) return()
def shift_and_rescale(image, mask_arr): basename = os.path.splitext(os.path.basename(image))[0] image = arcpy.sa.Raster(image) mask = arcpy.NumPyArrayToRaster(mask_arr.astype(np.uint8) * 255) arcpy.env.outputCoordinateSystem = image os.makedirs(resources.temp_shifted, exist_ok=True) shifted = os.path.join(resources.temp_shifted, "{}.tif".format(basename)) arcpy.Shift_management(mask, shifted, image.extent.XMin - mask.extent.XMin, image.extent.YMin - mask.extent.YMin, in_snap_raster=image) # match LIDAR resolution os.makedirs(resources.temp_rescaled, exist_ok=True) rescaled = os.path.join(resources.temp_rescaled, "{}.tif".format(basename)) arcpy.Rescale_management(shifted, rescaled, image.meanCellWidth, image.meanCellHeight) return rescaled
columnsAco = columnsAcoResult.getOutput(0) print rowsAco print type(columnsAco) #Chooses appropriate raster to apply landsat cell size to, scales raster up while considering possible row/column number mismatch #between acolite and original cellSizeXFlt = float(cellSizeX) cellSizeYFlt = float(cellSizeY) rowsOriginalFlt = float(rowsOriginal) columnsOriginalFlt = float(columnsOriginal) rowsAcoFlt = float(rowsAco) columnsAcoFlt = float(columnsAco) if removeborderYN == 'true': arcpy.Rescale_management( "intermedClipped", "intermedScale", cellSizeXFlt / (columnsAcoFlt / columnsOriginalFlt), cellSizeYFlt / (rowsAcoFlt / rowsOriginalFlt)) else: if flipYN == 'true': arcpy.Rescale_management( "intermedMir", "intermedScale", cellSizeXFlt / (columnsAcoFlt / columnsOriginalFlt), cellSizeYFlt / (rowsAcoFlt / rowsOriginalFlt)) else: if rotateYN == 'true': arcpy.Rescale_management( "intermedRot", "intermedScale", cellSizeXFlt / (columnsAcoFlt / columnsOriginalFlt), cellSizeYFlt / (rowsAcoFlt / rowsOriginalFlt)) else: arcpy.Rescale_management(
#flips acolite image if appropriate if flipYN == 'true': if rotateYN == 'true': arcpy.Mirror_management("intermedRot", "intermedMir") else: arcpy.Mirror_management(acoRaster, "intermedMir") #rescales acolite image cellSizeXResult = arcpy.GetRasterProperties_management(pathLandsat, "CELLSIZEX") cellSizeYResult = arcpy.GetRasterProperties_management(pathLandsat, "CELLSIZEY") cellSizeX = cellSizeXResult.getOutput(0) cellSizeY = cellSizeYResult.getOutput(0) #Chooses appropriate raster to apply landsat cell size to if flipYN == 'true': arcpy.Rescale_management("intermedMir", "intermedScale", cellSizeX, cellSizeY) else: if rotateYN == 'true': arcpy.Rescale_management("intermedRot", "intermedScale", cellSizeX, cellSizeY) else: arcpy.Rescale_management(acoRaster, "intermedScale", cellSizeX, cellSizeY) #Reclassify and clip corrected acolite image to get rid of nodata border myRemapRange = RemapRange([[-1,1,1]]) # Execute Reclassify outReclassify = arcpy.sa.Reclassify("intermedScale", "VALUE",myRemapRange,'NODATA')
##==================================== ## arcpy_RescaleRaster ##Rescale ##Usage: Usage: Rescale_management in_raster out_raster x_scale y_scale import arcpy arcpy.env.workspace = r"C:/Workspace" ##Rescale a TIFF image by a factor of 4 in both directions arcpy.Rescale_management("image.tif", "rescale.tif", "4", "4")