1. 程式人生 > 實用技巧 >4章程式碼

4章程式碼

4.1 ListDatasets (資料集列表)

#coding=utf8
import arcpy

import os
import sys
import math
from arcpy.sa import *

def Main():
    mypath=inWorkspace
    arcpy.env.workspace =mypath


    datasets =arcpy.ListDatasets() #arcpy.ListDatasets("", "Feature")
    for dataset in datasets:
        arcpy.AddMessage(dataset)
        arcpy.AddMessage(u
"含路徑:"+mypath+os.sep+dataset) inWorkspace=arcpy.GetParameterAsText(0) Main()

4.2 ListFeatureClasses(要素類)

#coding=utf8
import arcpy

import os
import sys
import math
from arcpy.sa import *


def Main1():
    mypath=inWorkspace
    arcpy.env.workspace =mypath

    #==============引數的型別必須必須是字串==========================
pList=[] featureclasses = arcpy.ListFeatureClasses() for fc in featureclasses: pList.append(mypath+os.sep+fc) datasets = arcpy.ListDatasets("", "Feature") for dataset in datasets: curpath=mypath+os.sep+dataset #arcpy.env.workspace =curpath fclasses = arcpy.ListFeatureClasses(feature_dataset=dataset)
for fc in fclasses: pList.append(curpath+os.sep+fc) ##arcpy.AddMessage(fc) for fc in pList: arcpy.AddMessage(fc) inWorkspace=arcpy.GetParameterAsText(0) Main1()

4.3 ListTables(表)

#coding=utf8
import arcpy

import os
import sys
import math
from arcpy.sa import *

def Main():
    mypath=inWorkspace
    arcpy.env.workspace =mypath
    tables = arcpy.ListTables()
    for table in tables:
        arcpy.AddMessage(table)
        arcpy.AddMessage(u"目錄:"+mypath+"\\"+table)
        arcpy.AddMessage(u"目錄:{}\\{}".format(mypath,table))


inWorkspace=arcpy.GetParameterAsText(0)
Main()

4.4 ListRasters(柵格)

#coding=utf8
import arcpy

import os
import sys
import math
from arcpy.sa import *

def Main():
    mypath=inWorkspace
    arcpy.env.workspace =mypath
    #==============引數的型別必須必須是字串==========================   
    rasters = arcpy.ListRasters()
    for raster in rasters:
        arcpy.AddMessage("raster:"+raster)


#inWorkspace=arcpy.GetParameter(0)
inWorkspace=arcpy.GetParameterAsText(0)
Main()

4.5 ListWorkspaces(工作空間)和批量緊縮資料庫

#coding=utf8
import arcpy

import os
import sys
import math
from arcpy.sa import *


def BatchRepair(gdb):
    arcpy.env.workspace =gdb
    featureclasses = arcpy.ListFeatureClasses()
    for fc in featureclasses:
        arcpy.AddMessage(u"修復:"+gdb+os.sep+fc)
        arcpy.RepairGeometry_management(fc)



    datasets = arcpy.ListDatasets("", "Feature")
    for dataset in datasets:
        curpath=gdb+os.sep+dataset
        arcpy.env.workspace =curpath
        fclasses = arcpy.ListFeatureClasses()
        for fc in fclasses:
            arcpy.AddMessage(u"修復:"+curpath+os.sep+fc)
            arcpy.RepairGeometry_management(fc)



def BathCompact(indir):
    arcpy.env.workspace = indir
    workspaces = arcpy.ListWorkspaces("*", "FileGDB")
    for workspace in workspaces:
        arcpy.AddMessage(u"緊縮資料庫:"+workspace)
        arcpy.Compact_management(workspace)
        BatchRepair(workspace)
    workspaces = arcpy.ListWorkspaces("*", "Access")
    for workspace in workspaces:
        arcpy.AddMessage(u"緊縮資料庫:"+workspace)
        arcpy.Compact_management(workspace)
        BatchRepair(workspace)
    workspaces = arcpy.ListWorkspaces("*", "Folder")
    for workspace in workspaces:
        arcpy.AddMessage(u"Folder:"+workspace)
        BathCompact(workspace)



def Main():
    arcpy.env.workspace = indir
    workspaces = arcpy.ListWorkspaces()
    for workspace in workspaces:
        arcpy.AddMessage("workspace:"+workspace)


indir=arcpy.GetParameterAsText(0)
Main()
BathCompact(indir)

#coding=utf8
import arcpy

import os
import sys
import math
from arcpy.sa import *

def Main():
mypath=inWorkspace
arcpy.env.workspace =mypath
#==============引數的型別必須必須是字串==========================
rasters = arcpy.ListRasters()
for raster in rasters:
arcpy.AddMessage(
"raster:"+raster)


#inWorkspace=arcpy.GetParameter(0)
inWorkspace=arcpy.GetParameterAsText(0)
Main()