Exemple #1
0
def conversion(outRaster, raster):
    name = os.path.split(raster)[1][:-4]
    # 按掩膜提取
    outExtractByMask = None
    # 常熟市溯源范围矢量文件
    inMaskData = u"E:\\常熟溯源\\矢量\\常熟边界\\常熟市溯源范围.shp"
    # 中间文件
    outCliptif = outpath + '\\' + fileslist[2] + "\\Clip_" + name + '.tif'
    # 剪裁
    try:
        # Execute ExtractByMask
        arcpy.Clip_management(outRaster, "#", outCliptif, inMaskData, "#",
                              "ClippingGeometry", "NO_MAINTAIN_EXTENT")
    except Exception as err:
        arcpy.AddMessage("------Clip_management")
        arcpy.AddMessage(err)
    # 重采样
    # resampletif=outpath+"\\"+os.path.split(raster)[1][:-4]+'_resampletif_'+getTime()+'.tif'
    # arcpy.Resample_management(outExtractByMask, resampletif, "0.0005", "BILINEAR")
    inPointFeatures = outpath + '\\' + fileslist[
        3] + "\\RasterToPoint_" + name + '.shp'
    arcpy.AddMessage("------栅格转点开始。。。")
    try:
        arcpy.RasterToPoint_conversion(outCliptif, inPointFeatures, 'VALUE')
    except:
        arcpy.AddMessage('-------' + inPointFeatures + " 已经存在。。。")
    arcpy.AddMessage("------栅格转点完成")
    # 克里金插值
    Krigingfile = os.path.join(outpath + '\\' + fileslist[4],
                               'Kriging_' + name + ".tif")
    field = "GRID_CODE"
    cellSize = 0.00055
    outVarRaster = ""
    kModel = "Spherical"
    kRadius = 20000
    # Execute Kriging
    try:
        arcpy.Kriging_3d(inPointFeatures, field, Krigingfile, kModel, cellSize,
                         kRadius, outVarRaster)
    except:
        arcpy.AddMessage('------RasterToPoint_conversion Failed')
    # 常熟市范围掩膜
    changshumask = u'E:\\常熟溯源\\矢量\\常熟边界\\常熟边界缓冲区-去水域.shp'
    outtif = os.path.join(
        outpath + '\\' + fileslist[5],
        'Changshumask_' + os.path.split(raster)[1][:-4] + ".tif")
    # 按掩膜提取
    try:
        # Execute ExtractByMask
        outMask = arcpy.sa.ExtractByMask(Krigingfile, changshumask)
        outCon = arcpy.sa.Con(arcpy.sa.IsNull(outMask), 0.0001, outMask)
        outCon.save(outtif)
    except Exception as err:
        arcpy.AddMessage("------ExtractByMask Failed")
        arcpy.AddMessage(err)
    createTraceFiles(outtif, name)
Exemple #2
0
def krig(a, b, c, CC):  #空间插值
    rows = arcpy.da.SearchCursor(a, ['FID'])
    for row in rows:
        y = row[0]
    del rows, row
    if y >= 12:
        p = "Variable %d" % (12)
    else:
        p = "Variable %d" % (y - 1)
    arcpy.Kriging_3d(a, b, c, "Spherical", CC, p)
    return b
Exemple #3
0
def Krig(inPointFeatures, zField, outRaster, in_Mask):
    if os.path.exists(outRaster):
        return
    kModel = "CIRCULAR"
    cellSize = 0.02
    total_raster = os.path.join(os.path.dirname(outRaster),
                                os.path.basename(outRaster) + "Kr")
    arcpy.CheckOutExtension("GeoStats")
    arcpy.Kriging_3d(inPointFeatures, zField, total_raster, kModel, cellSize)
    outExtractByMask = ExtractByMask(total_raster, in_Mask)
    arcpy.Delete_management(total_raster)
    outExtractByMask.save(outRaster)
    arcpy.BuildPyramids_management(outRaster)
Exemple #4
0
def conversion(outRaster,raster):
    # 按掩膜提取
    outExtractByMask=None
    # 常熟市溯源范围矢量文件
    inMaskData="F:\\20190905\\data\\changshurangle\\changshutrace.shp"
    # 中间文件
    inPointFeatures=outpath+"\\"+os.path.split(raster)[1][:-4]+'_'+getTime()+'.shp'
    try:
        # Execute ExtractByMask
        outExtractByMask = arcpy.sa.ExtractByMask(outRaster, inMaskData)
    except Exception as err:
        arcpy.AddMessage("------ExtractByMask Failed") 
        arcpy.AddMessage(err)
        return
    # 重采样
    # resampletif=outpath+"\\"+os.path.split(raster)[1][:-4]+'_resampletif_'+getTime()+'.tif'
    # arcpy.Resample_management(outExtractByMask, resampletif, "0.0005", "BILINEAR")
    arcpy.AddMessage("------栅格转点开始。。。")
    try:
        arcpy.RasterToPoint_conversion(outExtractByMask, inPointFeatures, 'VALUE')
    except :
        arcpy.AddMessage('-------'+inPointFeatures+" 已经存在。。。")
    arcpy.AddMessage("------栅格转点完成")
    # 克里金插值
    titfile=os.path.join(outpath,os.path.split(raster)[1][:-4]+".tif")
    field = "GRID_CODE"
    cellSize =0.0005
    outVarRaster = ""
    kModel = "Spherical"
    kRadius = 20000
    # Execute Kriging
    try:
        arcpy.Kriging_3d(inPointFeatures, field, titfile, kModel, cellSize, kRadius, outVarRaster)
    except :
        Arcpy.AddMessage('------RasterToPoint_conversion Failed')
    arcpy.AddMessage("------栅格转点开始。。。")
    outPointFeatures=outpath+"\\"+os.path.split(raster)[1][:-4]+'.shp'
    try:
        arcpy.RasterToPoint_conversion(titfile, outPointFeatures, 'VALUE')
    except :
        arcpy.AddMessage('-------'+inPointFeatures+" 已经存在。。。")
    arcpy.AddMessage("------栅格转点完成")
    selectByLocatin(outPointFeatures)
Exemple #5
0
def publishdayRasters():
    myname = 'publishdayRasters'

    defaultworkspace = r'C:\TrabajoFinalMasterESRI\Data\DF_Worskpace'
    rasterDefaultfolder = r'C:\TrabajoFinalMasterESRI\Data\Rasters'
    #creamos la carpeta de los rasters del dia
    now = datetime.now()
    dayfolder = now.strftime("%d%m%Y")
    rasterDefaultfolder = os.path.join(rasterDefaultfolder, dayfolder)

    if not os.path.isdir(rasterDefaultfolder):
        os.mkdir(rasterDefaultfolder)

    # Set environment settings
    env.workspace = defaultworkspace
    env.overwriteOutput = True
    # Check out the ArcGIS Spatial Analyst extension license
    arcpy.CheckOutExtension("Spatial")
    arcpy.CheckOutExtension("3D")

    listfields = ["B1", "B2", "B3", "W1", "W2", "M1"]

    for fieldname in listfields:

        try:
            logging.debug('----->' + myname)
            # Set local variables
            inFeatures = "Database Connections\[email protected]\canyons.owner.MeteoPoints"
            cellSize = 15000
            power = 2
            searchRadius = RadiusVariable(12)

            #sitios de salida de los rasters.
            outVarRaster = os.path.join(rasterDefaultfolder,
                                        fieldname + '_' + dayfolder)
            dbraster = "Database Connections\[email protected]\canyons.owner." + fieldname

            kModel = "CIRCULAR"
            cellSize = 15000
            kRadius = 20000
            # Execute Kriging
            arcpy.Kriging_3d(inFeatures, fieldname, outVarRaster, kModel,
                             cellSize, kRadius)

            #Pendiente de validar
            clip_features = "Database Connections\[email protected]\canyons.owner.Admin\canyons.owner.pais"
            #aqui harIamos el clip
            rectangle = extents(clip_features)
            arcpy.Clip_management(
                in_raster=outVarRaster,
                rectangle=rectangle,
                out_raster=dbraster,
                in_template_dataset=clip_features,
                clipping_geometry="ClippingGeometry",
                maintain_clipping_extent="NO_MAINTAIN_EXTENT")

            #Construimos las piramides de los rastsers
            arcpy.BatchBuildPyramids_management(dbraster)

            logging.debug('<-----' + myname)
        except Exception as e:
            logging.error('Error ejecutando ' + myname)
            logging.error('El raster que ha dado problemas es el ' + fieldname)
            arcpy.CreateRasterDataset_management(
                out_path="Database Connections/[email protected]",
                out_name="B1",
                cellsize="",
                pixel_type="8_BIT_UNSIGNED",
                raster_spatial_reference=
                "PROJCS['ETRS_1989_UTM_Zone_30N',GEOGCS['GCS_ETRS_1989',DATUM['D_ETRS_1989',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-3.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]]",
                number_of_bands="1",
                config_keyword="",
                pyramids="PYRAMIDS -1 NEAREST DEFAULT 75 NO_SKIP",
                tile_size="128 128",
                compression="LZ77",
                pyramid_origin="-5120763,26772284 9997963,94293634")

            logging.error(e.message)

    logging.debug(
        'Todos los rasters de los campos se han creado correctamente')
arcpy.AddMessage("Applying Symbology...")
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd, "*")[0]
newlayer = arcpy.mapping.Layer(pointsVar)
arcpy.mapping.AddLayer(df, newlayer, "TOP")
if arcpy.Exists(SymbologyPath + r"\Symbology_Template.lyr"):
    symbolLyr = SymbologyPath + r"\Symbology_Template.lyr"  #Layer file with desired symbology
    lyr = arcpy.mapping.ListLayers(mxd, outName, df)[0]
    arcpy.ApplySymbologyFromLayer_management(lyr, symbolLyr)  #Apply symbology
else:
    arcpy.AddMessage(
        "Symbology cannot be applied, Missing Symbology_Template.lyr")

#and now we Kriging
# Set environment settings
env.workspace = csvPath

# Set local variables
#inFeatures = "ca_ozone_pts.shp"
field = "OZONE"
#outRaster = "C:/output/krigoutput02"
cellSize = 2000
#outVarRaster = "C:/output/outvariance"
kModel = "Spherical"
kRadius = 20000

# Execute Kriging
#arcpy.Kriging_3d(inFeatures, field, outRaster, kModel, cellSize, kRadius, outVarRaster)
arcpy.Kriging_3d(pointsVar, "Cri_Weight", outfile + '\\' + "Krigout", kModel,
                 '', '', outfile + '\\' + "outVar")
Exemple #7
0
    inMaskData = mask_path + "newstates" + ".shp"
    arcpy.CheckOutExtension("Spatial")
    outExtractByMask = ExtractByMask(inRaster, inMaskData)
    outExtractByMask.save(out_path + "allIDW" + str(year))
    arcpy.Delete_management(out_raster)
    print "states " + str(year)

    #Build pyramid from raster
    inras = out_path + "allIDW" + str(year)
    arcpy.BuildPyramids_management(inras)
    print "Build pyramid" + str(year)

    # Execute Kriging of all monitoring sites
    outRaster = out_path + "kr" + str(year)
    kModel = "CIRCULAR"
    arcpy.Kriging_3d(inPointFeatures, zField, outRaster, kModel, cellSize)

    #Extract by mask the whole states
    inRaster = out_path + "kr" + str(year)
    inMaskData = mask_path + "newstates" + ".shp"
    arcpy.CheckOutExtension("Spatial")
    outExtractByMask = ExtractByMask(inRaster, inMaskData)
    outExtractByMask.save(out_path + "krig" + str(year))
    arcpy.Delete_management(outRaster)
    print "states " + str(year)

    #Build pyramid from raster
    inras = out_path + "krig" + str(year)
    arcpy.BuildPyramids_management(inras)
    print "Build pyramid" + str(year)
Exemple #8
0
    for j in range(0, nrows):
        gross_Q = data_all.cell_value(
            j, 3) * 100  #..............最高低气温列数修改,刘可群*100
        list.append(gross_Q)
    for row in cursor:
        l_List = list[(row[0] - 1)]
        row[1] = l_List
        #print row
        cursor.updateRow(row)

    # 执行克里金插值,prcp用try
    '''try:
        arcpy.env.extent = arcpy.Extent(376995.788286, 4835618.63483, 1393995.78829, 5934618.63483)
        arcpy.Kriging_3d(i_shp_path, "radi", o_interpolation_path, "Spherical", 1000, "number_of_points")
    except:
        print ("data in %s are all zero" % i_path)'''
    arcpy.env.extent = arcpy.Extent(376995.788286, 4835618.63483,
                                    1393995.78829, 5934618.63483)
    arcpy.Kriging_3d(i_shp_path, "radi", o_interpolation_path, "Spherical",
                     1000, "number_of_points")
    # 裁剪
    '''try:
        arcpy.Clip_management(o_interpolation_path, "377015.416108 4836032.834218 1393317.266188 5934372.606657", o_dat_path, "D:/1/my boundary/heilongjiang_123.shp", "", "ClippingGeometry")
    except:
        print ("cannot excute interpolation becasue of bad dataset prcp_%d" % doy)'''
    arcpy.Clip_management(
        o_interpolation_path,
        "377015.416108 4836032.834218 1393317.266188 5934372.606657",
        o_dat_path, "D:/1/my boundary/heilongjiang_123.shp", 0,
        "ClippingGeometry")
#Check out the ArcGIS Spatial Anapyst extension license
arcpy.CheckOutExtension("Spatial")
#Setting initial
env.workspace = "C:\Users\hero\Desktop\workspace\geodata.gdb"
fcList = arcpy.ListFeatureClasses()
for fc in fcList:
    print(fc)
    fieldList = arcpy.ListFields(env.workspace + "\\" + fc)
    print (env.workspace + "\\" + fc)
    for field in fieldList:
        if (field.type == u"Double"):
            print(field.name)
            inFeatures = fc
            print(inFeatures)

            #Output settings
            outRaster = env.workspace + "\\" + "KRe_" + field.name + fc
            outVarRaster = env.workspace + "\\" + "KVar_" + field.name + fc
            print (outRaster)
            print (outVarRaster)

            #Model setting
            kModel = "Gaussian"

            # Execute Kriging
            arcpy.Kriging_3d(inFeatures, field.name
                              , outRaster, kModel, out_variance_prediction_raster = outVarRaster)
            print(field.name + "success")

Exemple #10
0
def adf(fields):
    for field in fields:
        for i in range(24):
            names.append(field+str(i+1))
          
adf(['temp','pre','hum','wsp'])

#set environment mask
env.mask = 'C:/workspace/shps/北京边界.shp'

for i in range(1,3):
    day_count = i
    in_table = os.path.join(out_path,'day%d.shp'%(day_count))
    arcpy.DefineProjection_management(in_table, spRef)
    out_lyr = 'pp_day%d'%(day_count)
    arcpy.MakeXYEventLayer_management(in_table, 'long', 'lat', out_lyr, spRef)
    inFeatures = out_lyr
    for name in names:
        field = name
        out_raster = "r1_day%d_%s"%(day_count,name)
        kModel = 'Spherical'
        cell_size = 0.003758
        search_radius = 0.006418
        out_var = "v1_day%d_%s"%(day_count,name)
        # Execute Kriging
        try:
            arcpy.Kriging_3d(inFeatures, field, out_raster, kModel, 
                             cell_size, search_radius, out_var)
            print("success:day %d -- field %s"%(day_count,name))
        except:
            print("failed:day %d -- field %s"%(day_count,name))