示例#1
0
    deleteme.append(f1)
    

    # f2: surface change
    arcpy.AddMessage("Surface Curvature ...")
    f2 = os.path.join(env.scratchFolder,"f2.tif")
    if debug == True: arcpy.AddMessage(str(time.strftime("Curvature: %m/%d/%Y  %H:%M:%S", time.localtime())))
    # CURVATURE
    curvature = os.path.join(scratch,"curvature")
    curveSA = sa.Curvature(elevClip)
    curveSA.save(curvature)
    deleteme.append(curvature)
    if debug == True: arcpy.AddMessage(str(time.strftime("Focal Stats: %m/%d/%Y  %H:%M:%S", time.localtime())))
    # FOCALSTATISTICS (RANGE)
    focalStats = os.path.join(scratch,"focalStats")
    window = sa.NbrCircle(3,"CELL")
    fstatsSA = sa.FocalStatistics(curvature,window,"RANGE")
    fstatsSA.save(focalStats)
    deleteme.append(focalStats)
    # F2
    maxRasStat = float(str(arcpy.GetRasterProperties_management(focalStats,"MAXIMUM")))
    fsRasStat = sa.Raster(focalStats)
    if debug == True:
        arcpy.AddMessage("maxRasStat: " + str(maxRasStat) + " - " + str(type(maxRasStat)))
        arcpy.AddMessage("fsRasStat: " + str(fsRasStat) + " - " + str(type(fsRasStat)))        
    f2Calc = (maxRasStat - fsRasStat) / maxRasStat # (max - cell/max)
    f2Calc.save(f2)
    deleteme.append(f2)
    ccmFactorList.append(f2)
    
    #TODO: Need more thorough and complete checks of inputs
示例#2
0
##--FUNCTIONS--
def msg(txt):
    print txt
    arcpy.AddMessage(txt)
    return


##--PROCESSES--
# Extract development from NLCD
msg("Extracting developed area from NLCD")
devBinary = sa.Con(nlcdRaster, 1, 0, "VALUE IN (22,23,24)")

# Compute focal mean of development
msg("Calculating focal stats")
nbrHood = sa.NbrCircle(distanceThreshold, "MAP")
focalMean = sa.FocalStatistics(devBinary, nbrHood, "MEAN")

# Compute distance decay
msg("Computing distance decayed development")
devNodata = sa.Con(nlcdRaster, 1, '', "VALUE IN (22,23,24)")
eucDist = sa.EucDistance(devNodata)
k = math.log(0.01) / distanceThreshold
devDecay = sa.Exp(eucDist * k)

# FOCAL MEAN: Compute zonal stats
msg("Computing patch threat values")
tmpTable = "in_memory/TmpTable"
sa.ZonalStatisticsAsTable(patchRaster, "VALUE", devBinary, tmpTable, '',
                          "MEAN")
GeoHATutils.RenameField(tmpTable, "MEAN", "FocalMean")