ArcGIS Python学习
描述(Describe)信息获得
2.1 Describe 对象基本属性
Describe 函数返回的 Describe 对象包含多个属性,如数据类型、字段、索引以及许多其他属性。该对象的属性是动态的,这意味着根据所描述的数据类型,会有不同的描述属性可供使用。
Describe 属性被组织成一系列属性组。任何特定数据集都将至少获取其中一个组的属性。例如,如果要描述一个地理数据库要素类,您可访问 GDB 要素类、 要素类、 表和 数据集属性组中的属性。所有数据,不管是哪种数据类型,总会获取通用的 Describe 对象属性。
例如输入C:\hh.gdb\dltb_10,属性和返回值见表2-1所示。
表2-1 Describe 属性
属性 | 含义 | 返回类型和内容 |
baseName(只读) | 基本名字,不含扩展名 | 字符串:dltb_10 |
catalogPath (只读) | 数据源的路径 | 字符串:C:\hh.gdb\dltb_10 |
dataElementType (只读) | 元素的元素类型 | 字符串:DEFeatureClass |
dataType (只读) | 数据类型 | 字符串:FeatureLayer |
extension (只读) | 扩展名,shp、tif文件等有扩展名,其他没有 | 字符串:无 |
file (只读) | 文件名 | 字符串:dltb_10 |
dataType类型如表2-2所示:
表2-2 dataType类型
类型英文 | 类型含义 | 类型英文 | 类型含义 |
FeatureDataset | 要素数据集 | Style | 样式文件 |
LasDataset | 激光las数据集 | Table | 表 |
Layer | 图层 | Terrain | 地形 |
FeatureLayer | 要素 | TextFile | 文本文件 |
Map | 地图 | Tin | 三角网数据 |
MosaicDataset | 镶嵌数据集 | Tool | 工具 |
RasterBand | 栅格波段 | Toolbox | 工具箱 |
RasterCatalog | 栅格目录 | Topology | 拓扑 |
RasterDataset | 栅格数据集 | FeatureClass | 要素类 |
获得描述基本属性主源代码如下
#获得基本描述
def getdescinfo():
desc = arcpy.Describe(inFeature)
if desc.childrenExpanded:
for child in desc.children:
arcpy.AddMessage("\t%s = %s" % (child.name, child.dataType))
arcpy.AddMessage("baseName="+desc.baseName)
arcpy.AddMessage("catalogPath="+desc.catalogPath)
arcpy.AddMessage("dataElementType="+desc.dataElementType)
arcpy.AddMessage("dataType="+desc.dataType)
if desc.dataType=="FeatureLayer":
arcpy.AddMessage(inFeature+"是图层")
getFLayerinfo() #
elif desc.dataType=="FeatureClass":
getFeatureInfo()
arcpy.AddMessage(inFeature+"是要素类")
elif desc.dataType=="RasterDataset":
arcpy.AddMessage(inFeature+"是栅格数据集")
getRasterDataset()
elif desc.dataType=="TableView":
getTableView()
elif desc.dataType=="Workspace":
getWorkspace()
elif desc.dataType=="Topology":
getTopology()
arcpy.AddMessage("extension="+desc.extension)
arcpy.AddMessage("file="+desc.file)
arcpy.AddMessage("name="+desc.name)
arcpy.AddMessage("path="+desc.path)
arcpy.AddMessage("fullPropsRetrieved="+str(desc.fullPropsRetrieved))
arcpy.AddMessage("metadataRetrieved="+str(desc.metadataRetrieved))
2.2 要素类
要素类的描述属性,如2-3表所示。
表2-3 要素类的属性
属性 | 说明 | 数据类型 |
featureType (只读) | 要素类的要素类型。 Simple —面、折线和点,表示具有面积的对象或地点(如水体);线状对象(如河流)以及局部位置(如房屋或采样位点)。 SimpleJunction —几何网络中表示点对象的简单交汇点要素,例如,保险丝、供水点或者电话线杆。 SimpleEdge —几何网络中表示折线对象的简单边要素,例如,主要高架装置或次要高架装置。 Annotation —地点或对象名称/标识符,例如,街道名称、消火栓 ID 号、土地价值或高程。 Dimension —测量值,例如,距离、长度、宽度和深度。 •RasterCatalogItem —栅格目录中含有轮廓线、名称、元数据和其他用户定义属性等信息的栅格数据集。 | String |
hasM (只读) | 指示几何是否启用 m 值。 | Boolean |
hasZ (只读) | 指示几何是否启用 z 值。 | Boolean |
hasSpatialIndex (只读) | 指示要素类是否具有空间索引。 | Boolean |
shapeFieldName (只读) | Shape 字段的名称。 | String |
shapeType (只读) | 几何形状类型 l面 l折线 l点 l多点 l多面体 | String |
def getFeatureInfo():
desc = arcpy.Describe(inFeature)
ptype = desc.shapeType #获得类型
if ptype=="Point":
arcpy.AddMessage(u""+inFeature+"是点")
elif ptype=="Multipoint":
arcpy.AddMessage(u""+inFeature+"是多点")
elif ptype=="Polyline":
arcpy.AddMessage(u""+inFeature+"是线")
elif ptype=="Polygon":
arcpy.AddMessage(u""+inFeature+"是面")
arcpy.AddMessage(u"类型:"+ptype) #点,线,面 "Point", "Multipoint", "Polyline", "Polygon"
arcpy.AddMessage(u"要素类型:"+desc.featureType) #"Simple", "Annotation", "Dimension
if desc.featureType=="Annotation":
arcpy.AddMessage(u""+inFeature+"是注记")
if desc.hasZ==True:
arcpy.AddMessage(u""+inFeature+"是3d")
else:
arcpy.AddMessage(u""+inFeature+"是2d")
运行“2Describe\工具箱.tbx\要素信息”,界面如图2-1所示。
图2-1要素信息属性获得
结果信息:
消息
执行: 要素信息 F:\2020book\原始资料\data\2Describe\hh.gdb\dltb_1
baseName=dltb_1
catalogPath=F:\2020book\原始资料\data\2Describe\hh.gdb\dltb_1
dataElementType=DEFeatureClass
dataType=FeatureClass
inFeature是要素类
extension=
file=dltb_1
name=dltb_1
path=F:\2020book\原始资料\data\2Describe\hh.gdb
fullPropsRetrieved=True
metadataRetrieved=False
F:\2020book\原始资料\data\2Describe\hh.gdb\dltb_1是面
类型:Polygon
要素类型:Simple
F:\2020book\原始资料\data\2Describe\hh.gdb\dltb_1是2d
2.3 图层属性
图层属性如表2-4所示:
表2-4 图层属性
属性 | 说明 | 数据类型 |
featureClass (只读) | 与要素图层相关的要素类的 Describe 对象。 | Describe |
FIDSet (只读) | 用分号分隔的所选要素 ID 字符串(记录编号) | String |
fieldInfo (只读) | 图层的 FieldInfo 对象(属性集)。 | FieldInfo |
layer (只读) | .lyr 文件对应图层的 Describe 对象。 | Describe |
nameString (只读) | 图层的名称。 | String |
table (只读) | 图层对应表的 Describe 对象。 | Describe |
whereClause (只读) | 图层的定义查询 where 子句。 | String |
def getFLayerinfo():
desc = arcpy.Describe(inFeature)
arcpy.AddMessage("{0:<20s}{1}".format("nameString: ",desc.nameString))
arcpy.AddMessage("{0:<20s}{1}".format("Where Clause: " , desc.whereClause))
arcpy.AddMessage("{0:<20s}{1}".format("Feature class type: " , desc.featureClass.featureType))
if hasattr(desc, "FIDSet"):
arcpy.AddMessage("{0:<20s}{1}".format("FIDSet: " , desc.FIDSet))
2.4 数据集和坐标系信息
数据集的属性如表2-5所示。
表2-5 数据集的属性
属性 | 说明 | 数据类型 |
DSID (只读) | 数据集的 ID | Integer |
extent (只读) | Extent 对象 | Extent |
spatialReference (只读) | 返回数据集的 SpatialReference 对象 | SpatialReference |
ZExtent (只读) | 以空格分隔的字符串 (ZMin ZMax) | String |
范围extent属性如表2-6所示
表2-6 范围extent的属性
属性 | 含义 | 类型 |
XMax (只读) | 范围 XMax 值。 | Double |
XMin (只读) | 范围 XMin 值。 | Double |
YMax (只读) | 范围 YMax 值。 | Double |
YMin (只读) | 范围 YMin 值。 | Double |
ZMax (只读) | 范围 ZMax 值。如果无 Z 值,则为“无”。 | Double |
ZMin (只读) | 范围 ZMin 值。如果无 Z 值,则为“无”。 | Double |
depth (只读) | 范围深度值。如果无深度,则为“无”。 | Double |
height (只读) | 范围高度值。 | Double |
lowerLeft (只读) | 左下角属性:将返回点对象。 | Point |
lowerRight (只读) | 右下角属性:将返回点对象。 | Point |
polygon (只读) | 以多边形对象的形式返回范围。 | Polygon |
spatialReference (只读) | 范围的空间参考。 | SpatialReference |
upperLeft (只读) | 左上角属性:返回点对象。 | Point |
upperRight (只读) | 右上角属性:返回点对象 | Point |
坐标系信息如表2-7所示
表2-7 坐标系的属性
属性 | 含义 | 类型 |
GCS (只读) | 投影坐标系将针对其基于的地理坐标系返回 SpatialReference 对象。地理坐标系将返回相同的 SpatialReference。10.2才有的 | SpatialReference |
XYTolerance (可读写) | xy 容差。 | Double |
factoryCode (可读写) | 空间参考的工厂代码或常用ID (WKID)。如CGCS2000_3_Degree_GK_Zone_34的WKID是4522 | Integer |
type (可读写) | 空间参考的类型。 lGeographic - 地理坐标系 lProjected - 投影坐标系。 | String |
projectionName (可读写) | 投影名称。1 | String |
GCSName (可读写) | 地理坐标系名称 | String:如GCS_China_Geodetic_Coordinate_System_200 |
semiMajorAxis (可读写) | 此椭球体的半长轴长度。2 | Double 对地理有,投影没有 |
semiMinorAxis (可读写) | 此椭球体的半短轴长度 | Double |
获得数据集信息源代码的如下:
def getDatasetInfo():
desc = arcpy.Describe(inFeature)
arcpy.AddMessage(u"Dataset Type: {0}".format(desc.datasetType))
arcpy.AddMessage(u"canVersion: {0}".format(desc.canVersion))
if hasattr(desc,"isArchived"):
arcpy.AddMessage(u"isArchived: {0}".format(desc.isArchived))
arcpy.AddMessage(u"ZExtent: {0}".format(desc.ZExtent))
pextent=desc.extent
#范围信息
arcpy.AddMessage("Extent:\n XMin: {0}, XMax: {1}, YMin: {2}, YMax: {3}".format(
pextent.XMin, pextent.XMax, pextent.YMin, pextent.YMax))
#坐标系信息
sr=desc.spatialReference
if hasattr(sr,"GCS"):
arcpy.AddMessage(u"sr.GCS.name: {0}".format(sr.GCS.name))
arcpy.AddMessage(u"sr.XYTolerance: {0}".format(sr.XYTolerance))
arcpy.AddMessage(u"sr.abbreviation: {0}".format(sr.abbreviation))
arcpy.AddMessage(u"sr.alias: {0}".format(sr.alias))
arcpy.AddMessage(u"sr.domain: {0}".format(sr.domain))
arcpy.AddMessage(u"sr.factoryCode: {0}".format(sr.factoryCode))
arcpy.AddMessage(u"sr.name: {0}".format(sr.name))
arcpy.AddMessage(u"sr.remarks: {0}".format(sr.remarks))
arcpy.AddMessage(u"sr.remarks: {0}".format(sr.remarks))
arcpy.AddMessage(u"sr.type: {0}".format(sr.type))
arcpy.AddMessage(u"sr.PCSCode: {0}".format(sr.PCSCode))
arcpy.AddMessage(u"sr.PCSName: {0}".format(sr.PCSName))
arcpy.AddMessage(u"sr.centralMeridian: {0}".format(sr.centralMeridian))
arcpy.AddMessage(u"sr.centralParallel: {0}".format(sr.centralParallel))
arcpy.AddMessage(u"sr.projectionCode: {0}".format(sr.projectionCode))
arcpy.AddMessage(u"sr.projectionName: {0}".format(sr.projectionName))
arcpy.AddMessage(u"sr.datumCode: {0}".format(sr.datumCode))
arcpy.AddMessage(u"sr.datumName: {0}".format(sr.datumName))
arcpy.AddMessage(u"sr.semiMajorAxis: {0}".format(sr.semiMajorAxis))
arcpy.AddMessage(u"sr.semiMinorAxis: {0}".format(sr.semiMinorAxis))
arcpy.AddMessage(u"sr.spheroidCode: {0}".format(sr.spheroidCode))
arcpy.AddMessage(u"sr.spheroidName: {0}".format(sr.spheroidName)
2.5 栅格数据集属性信息
栅格波段RasterBand属性信息如表2-8所示。
表2-8 栅格波段的属性
属性 | 含义 | 类型 |
height (只读) | 行数 | Integer |
isInteger (只读) | 表明栅格波段是否具有整型 | Boolean |
meanCellHeight (只读) | y 方向上的像元大小 | Double |
meanCellWidth (只读) | x 方向上的像元大小 | Double |
noDataValue (只读) | 栅格波段的 NoData 值 | String |
pixelType (只读) | 像素类型 U1 —1 位 U2 —2 位 U4 —4 位 U8 —8 位无符号整型 S8 —8 位整型 U16 —16 位无符号整型 S16 —16 位整型 U32 —32 位无符号整型 S32 —32 位整型 F32 —单精度浮点型 F64 —双精度浮点型 | String |
tableType (只读) | 表的类名称 Value —表中的值仅用作值,而不用于索引。 Index —表中的值用作栅格表中的索引。 Invalid —值无效。 | String |
width (只读) | 列数 | Integer |
程序源代码如下:
def getbandinfo(band1):desc = arcpy.Describe(band1)
arcpy.AddMessage("Height: %d" % desc.height)
arcpy.AddMessage("Width: %d" % desc.width)
arcpy.AddMessage("Integer Raster: %s" % desc.isInteger)
arcpy.AddMessage("noDataValue: %s" % desc.noDataValue)
arcpy.AddMessage(u"Y方向分辨率: %s" % desc.meanCellHeight)
arcpy.AddMessage(u"X方向分辨率: %s" % desc.meanCellWidth)
arcpy.AddMessage("pixelType: %s" % desc.pixelType)
arcpy.AddMessage("primaryField: %d" % desc.primaryField)
arcpy.AddMessage("tableType: %s" % desc.tableType)
#获得栅格数据集的信息
def getRasterDataset():
desc = arcpy.Describe(inFeature)
arcpy.AddMessage("Band Count: %d" % desc.bandCount)
arcpy.AddMessage("Compression Type: %s" % desc.compressionType)
arcpy.AddMessage("Raster Format: %s" % desc.format)
arcpy.AddMessage("Raster sensorType: %s" % desc.sensorType)
arcpy.AddMessage("Raster permanent: " + str(desc.permanent))
band1=inFeature+os.sep+"Band_1"
getbandinfo(band1)
inFeature=arcpy.GetParameterAsText(0)
getRasterDataset()
2.6 表和字段信息
TableView表视图属性如表2-9所示。
表2-9 表视图的属性
属性 | 含义 | 类型 |
table (只读) | 与表视图相关联的表的 Describe 对象 | Describe |
FIDSet(只读) | 用分号分隔的所选要素 ID 字符串(记录编号) | String |
fieldInfo (只读) | 表的 FieldInfo 对象(属性集) | FieldInfo |
whereClause(只读) | 表视图选择 where 子句 | String |
nameString (只读) | 表视图的名称 | String |
def getTableView():
desc = arcpy.Describe(inFeature)
arcpy.AddMessage("Table View Name: " + desc.nameString)
arcpy.AddMessage("Where Clause: " + desc.whereClause)
arcpy.AddMessage("Table Name: " + desc.name)
字段属性如表2-10所示
表2-10 字段属性
属性 | 含义 | 类型 |
aliasName (读写) | 字段的别名。 | String |
baseName (读写) | 非限定字段名称。 | String |
domain (读写) | 关联属性域的名称。 | String |
editable (读写) | 可编辑状态:字段可编辑时为真。 | Boolean |
isNullable (读写) | 可为空状态:字段允许空值时为 True。 | Boolean |
length (读写) | 字段的长度。 | Integer |
name (读写) | 字段的名称。 | String |
precision (读写) | 字段精度。 | Integer |
required (读写) | 必填状态:字段必须包含值时为 True。 | Boolean |
scale (读写) | 字段的小数位数。 | |
type | 字段类型。 Blob —Blob Date —日期类型 Double —双精度类型 Geometry —几何 GlobalID —全局 ID Guid —Guid Integer —整型(长整数类型) OID —对象 ID Raster —栅格 Single —单精度(浮点类型) SmallInteger —短整数类型(短整数类型) String —字符串(文本) |
ListIndexes索引属性如表2-11所示
表2-11 索引属性
属性 | 含义 | 类型 |
fields (只读) | 索引字段对象的 Python 列表。 | Field |
isAscending(只读) | isAscending 状态:索引按升序排序时为真。 | Boolean |
isUnique (只读) | isUnique 状态:索引唯一时为真。 | Boolean |
name (只读) | 索引的名称。 | String |
源代码如下
def getTableinfo():desc = arcpy.Describe(inFeature)
if hasattr(desc,"hasOID"):
arcpy.AddMessage(u"hasOID: {0}".format(desc.hasOID))
if desc.hasOID:
arcpy.AddMessage(u"OIDFieldName: {0}".format(desc.OIDFieldName))
for field in desc.fields:
arcpy.AddMessage("name=%-22s aliasName=%s baseName=%s type=%s length=%d precision=%d scale=%d" % (field.name,
field.aliasName, field.baseName, field.type,field.length,field.precision,field.scale))
indexes = arcpy.ListIndexes(inFeature)
# Iterate through the list of indexes
for index in indexes:
# Print index properties
arcpy.AddMessage("Name: {0}".format(index.name))
arcpy.AddMessage("\tType : {0}".format(index.isAscending))
arcpy.AddMessage("\tScale : {0}".format(index.isUnique))
arcpy.AddMessage("\tNumber of fields: {0} {1}".format(len(index.fields),index.fields[0].name))
for field in index.fields:
arcpy.AddMessage("idx==================name=%-22s aliasName=%s baseName=%s type=%s length=%d precision=%d scale=%d" % (field.name,
field.aliasName, field.baseName, field.type,field.length,field.precision,field.scale))
2.7 工作空间属性
工作空间(WorkSpace)属性如表2-12所列。
表2-12 工作空间属性
属性 | 含义 | 类型 |
connectionString (只读) | 与企业级数据库类型结合使用的连接字符串。对于其他任何工作空间类型,将返回空字符串。 | String |
currentRelease (只读) | 对于地理数据库工作空间,地理数据库版本为当前版本时将返回 True。currentRelease 用于评估地理数据库是否可升级。 | Boolean |
domains (只读) | 包含地理数据库属性域名称的列表。要使用这些属性域名称,可使用属性域工具集中的工具。 | String |
release (只读) | 对于地理数据库工作空间,将返回地理数据库版本值。地理数据库版本值与 ArcGIS 版本号之间的映射如下所示。 1.2.0ArcGIS 9.2 2.3.0 ArcGIS 9.3和ArcGIS 9.3.1 3.0.0 ArcGIS10.0到10.5 ArcGIS Pro 1.0-1.4 | String |
workspaceFactoryProgID (只读) | ID 是一个字符串。与 workspaceType 相比,此 ID 能以更细的粒度区分特定工作空间类型。例如,workspaceFactoryProgID 可区分文件地理数据库和个人地理数据库。而 workspaceType 则不能进行以上区分。 以下是针对常用工作空间类型返回的 workspaceFactoryProgID 字符串: esriDataSourcesGDB.AccessWorkspaceFactory.1 —个人地理数据库 esriDataSourcesGDB.FileGDBWorkspaceFactory.1 —文件地理数据库 esriDataSourcesGDB.InMemoryWorkspaceFactory.1 —in_memory 工作空间 esriDataSourcesGDB.SdeWorkspaceFactory.1 —企业级地理数据库 (empty string) —其他(shapefile、coverage、CAD、VPF 等) | String |
workspaceType (只读) | 工作空间类型。 FileSystem —基于文件(coverage、shapefile 等)的工作空间以及 in_memory 工作空间 LocalDatabase —本地地理数据库(文件或个人地理数据库) RemoteDatabase —远程连接的地理数据库(企业级、OLE DB 等) | String |
获得工作空间属性代码如下:
def getWorkspace():desc = arcpy.Describe(inFeature)
arcpy.AddMessage("%-24s %s" % ("Connection String:", desc.connectionString))
arcpy.AddMessage("%-24s %s" % ("release:", desc.release))
arcpy.AddMessage("%-24s %s" % ("currentRelease:", desc.currentRelease))
arcpy.AddMessage("%-24s %s" % ("WorkspaceFactoryProgID:", desc.workspaceFactoryProgID))
arcpy.AddMessage("%-24s %s" % ("Workspace Type:", desc.workspaceType))
# Print Connection properties
#
cp = desc.connectionProperties
if cp!=None:
if hasattr(cp,"server"):
arcpy.AddMessage("\nDatabase Connection Properties:")
arcpy.AddMessage("%-12s %s" % (" Server:", cp.server))
arcpy.AddMessage( "%-12s %s" % (" Instance:", cp.instance))
arcpy.AddMessage( "%-12s %s" % (" Database:", cp.database))
arcpy.AddMessage("%-12s %s" % (" User:", cp.user))
arcpy.AddMessage( "%-12s %s" % (" Version:", cp.version))
# Print workspace domain names"
#
domains = desc.domains
for domain in domains:
arcpy.AddMessage( "\t" + domain)
arcpy.AddMessage( "\nDomains:")
domains =arcpy.da.ListDomains(inFeature)
for domain in domains:
arcpy.AddMessage( "\t" + domain.name)
if domain.domainType == 'CodedValue':
coded_values = domain.codedValues
for val, desc in coded_values.iteritems():
arcpy.AddMessage('{0} : {1}'.format(val, desc))
elif domain.domainType == 'Range':
arcpy.AddMessage('Min: {0}'.format(domain.range[0]))
arcpy.AddMessage('Max: {0}'.format(domain.range[1]))
2.8 综合例子字段属性和属性域设置
读取Excel数据,excel数据作为一个字段的属性域,分别使用了工具“表转属性域(TableToDomain)”,注意地理数据库(shp文件不能)才可以设置属性域,如果存在删除原有的属性域,删除方法使用“删除属性域(DeleteDomain)”,删除属性域,先找到字段引用的属性域,使用“移除字段的属性域(RemoveDomainFromField)”移除,最后添加字段属性域“指定字段的属性域(AssignDomainToField)”,具体操作过程,扫码上面的二维码,运行界面如2-2所示。
图2-2 设置字段的属性域运行界面
#coding=utf8import arcpy
import os
import sys
import math
#删除属性域
def deldomains(inFeature,domainname):
fields = arcpy.ListFields(inFeature)
for field in fields:
if field.domain.upper()==domainname.upper():
arcpy.RemoveDomainFromField_management(inFeature,field.name)
#获得一个数据的工作空间
def getWorkspace(inFeature):
desc = arcpy.Describe(inFeature)
path=desc.path.lower()
if path.endswith(".mdb") or path.endswith(".gdb"):
return path
if os.path.isdir(path):#shp
return path
outPath, outFC = os.path.split(path)
return outPath
def getdomainsList(inWorkspace):
desc = arcpy.Describe(inWorkspace)
return desc.domains
def Main():
inWorkspace=getWorkspace(inFeature)
arcpy.AddMessage("inWorkspace="+inWorkspace)
desc = arcpy.Describe(inWorkspace)
if desc.workspaceType!="LocalDatabase":
arcpy.AddMessage("inWorkspace="+inWorkspace+"不是数据库的数据")
return
domainsList=getdomainsList(inWorkspace)
arcpy.AddMessage("codeField=type"+str(type(codeField)))
#code=codeField #decode('unicode_escape').decode('utf-8') #decode('unicode_escape') .encode('utf-8')
if domainsList:
idx=domainsList.index(codeField)
if idx>-1:
deldomains(inFeature,codeField)
arcpy.DeleteDomain_management(inWorkspace, codeField)
arcpy.TableToDomain_management(byTable,codeField,nameField,inWorkspace,codeField,nameField,update_option="APPEND")
arcpy.AssignDomainToField_management(inFeature,inField,codeField)
inFeature=arcpy.GetParameterAsText(0)
inField=arcpy.GetParameterAsText(1)
byTable=arcpy.GetParameterAsText(2)
codeField=arcpy.GetParameterAsText(3)
arcpy.AddMessage("codeField="+codeField)
nameField=arcpy.GetParameterAsText(4)
arcpy.AddMessage("nameField="+nameField)
Main()
文章授权转载:GISAI
- END -
ArcGIS中加载各种在线地图
ArcGIS Pro调用ArcMap的符号库
全球矢量任意下载!路网、建筑、水系...
CC、Pix4D、大疆智图、M3D...国内外常用实景三维建模软件电脑配置推荐
使用ArcPy批量导出PNG格式的图片