在ARCGIS属性表中增加需要的字段,并自动赋值

ARCGIS自动计算字段值
本文介绍如何在ARCGIS中通过VBA脚本自动为属性表中的字段赋值,包括点坐标X/Y、多边形周长/面积/重心坐标等几何属性的计算方法。

在ARCGIS属性表中增加需要的字段,并自动赋值

 

在ARCGIS属性表中增加需要的字段,并自动赋值

使用方法
1打开属性表,选择计算的字段,右点选择Calculate Values;2.选择“是”,进入Field Calculator;
2选择Advance选项;
3 在Pre-Logic VBA Script Code编辑框中输入VBA代码;
4在下面编辑框中输入赋值部分.


1--点坐标X
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPoint As IPoint
Set pPoint = pGeo
赋值部分:
pPoint.X

2--点坐标Y
VBA部分:
同上
赋值部分:
pPoint.Y

坐标值为文件存储的固有值,和是否使用On the Fly坐标表示无关。返回当前显示的坐标值参看8,9

3--多边形周长
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolygon As IPolygon
Set pPolygon = pGeo
赋值部分:
pPolygon.Length

4--多边形面积
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolygon As IPolygon
Set pPolygon = pGeo
Dim pArea As IArea
Set pArea = pPolygon
赋值部分:
pArea.Area

5--多边形重心X
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolygon As IPolygon
Set pPolygon = pGeo
Dim pArea As IArea
Set pArea = pPolygon
Dim pPoint As IPoint
Set pPoint = pArea.Centroid
赋值部分:
pPoint.X

6--多边形重心Y
VBA部分:
同上
赋值部分:
pPoint.Y

7--Polyline长度
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolyline As IPolyline
Set pPolyline = pGeo
Dim pCurve As IPolycurve
Set pCurve = pPolyline
赋值部分:
pCurve.Length

8--表示点坐标X
VBA部分:
Dim pDoc As IMxDocument
Set pDoc = ThisDocument
Dim pSpRef As ISpatialReference
Set pSpRef = pDoc.FocusMap.SpatialReference

Dim pClone As IClone
Set pClone = [Shape]
Dim pGeo As IGeometry
Set pGeo = pClone.Clone
Dim pPoint as IPoint
Set pPoint = pGeo

pGeo.Project pSpRef
赋值部分:
pPoint.X

9--表示点坐标Y
VBA部分:
同上
赋值部分:
pPoint.Y

坐标值为On the Fly显示的坐标,不是文件存储的固有坐标

10--连续编号
VBA部分:
Static lCount as long
lCount=lCount+1
赋值部分:
lCount (从1开始)
lCount-1 (从0开始)

来自:http://blog.myspace.cn/e/404730047.htm

ArcGIS中,给图层属性表添加字段赋值为统一数值可以通过以下两种常见方法实现: ### 使用ArcToolbox工具 1. **打开ArcToolbox**:在ArcMap或ArcGIS Pro中,通常可以在界面上找到ArcToolbox的图标打开它。 2. **添加字段**:在ArcToolbox中,找到“数据管理工具” > “字段” > “添加字段”工具。双击打开该工具,在弹出的对话框中,选择要添加字段的图层;输入新字段的名称、类型(如文本、数值等)、精度等信息;设置完成后,点击“确定”,新字段就会被添加属性表中。 3. **计算字段值**:找到“数据管理工具” > “字段” > “计算字段”工具。双击打开该工具,在对话框中选择之前添加字段的图层,选择要计算的字段(即新添加字段),在“表达式”框中输入要赋予的统一数值(如果是文本类型,需要用引号引起来),点击“确定”,该字段所有记录的值就会被设置为统一数值。 ### 使用Python脚本 在ArcGIS Pro中可以使用Python窗口或者在ArcMap中使用Python脚本工具,以下是示例代码: ```python import arcpy # 设置工作空间 arcpy.env.workspace = r"C:\your_workspace" # 要处理的图层名称 input_layer = "your_layer.shp" # 添加字段 new_field_name = "new_field" field_type = "TEXT" # 可以根据需要修改为其他类型,如 "SHORT", "LONG", "FLOAT", "DOUBLE" 等 arcpy.AddField_management(input_layer, new_field_name, field_type) # 赋值为统一数值 field_value = "your_uniform_value" # 如果是数值类型,去掉引号 with arcpy.da.UpdateCursor(input_layer, [new_field_name]) as cursor: for row in cursor: row[0] = field_value cursor.updateRow(row) ``` 以上代码首先设置了工作空间,然后指定要处理的图层,接着使用`AddField_management`函数添加字段,最后使用`UpdateCursor`遍历属性表中的每一行,将新字段的值设置为统一数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值