arcgis中字段自动编号的两种方法
arcgis中字段自动编号的两种方法
关于ARCGIS中字段自动编号的两种方法一、根据某一字段属性排序,并重新自动编号。
首先,打开arcgis,加入咱们要进行排序并重新编号的数据,如下图,打开Python编辑器。
然后,在Python编辑器中输入以下代码:import arcpyrows = arcpy.UpdateCursor("数据名称","","","","面积A")i=1for row in rows:row.BH=ii=i+1rows.updateRow(row)del rowsdel row其中,arcpy.UpdateCursor指调用UpdateCursor这个函数,其中包括5个参数,这里我们只需要用到第一个和第五个参数,其他参数均用“”空值代替。
第一个参数为:数据名称(前提是这个数据加入了ARCMAP中)第五个参数为:要排序的字段名称+空格+A,A指排升序这里重点说下BH,就是进行自动编号的字段,此字段名称必须为英文字符,如果为汉字,则不能识别。
如下图:最后,输入完成后,两次回车,就直接运行了。
结果如下,根据面积字段的属性,进行了重新排序,并进行了自动编号。
二、字段计算器自动编号。
首先,打开字段计算器。
使用Python计算:然后,复制这段代码到预逻辑脚本代码框中,在下面排序=框中输入px(),确定。
re=0def px():global rea = 1b = 1if (re == 0):re = aelse:re = re + breturn re如果用VB脚本自动编号:选中上面的VB脚本,直接在代码块中输入[FID]+1,确定,同样的效果。
两种自动编号的方法区别在于:一种是按照原顺序,生成一组序号。
另一种是根据其中一个字段值的属性重新排序,并重新编号。
arcgis中字段自动编号的两种方法
关于ARCGIS中字段自动编号的两种方法一、根据某一字段属性排序,并重新自动编号。
首先,打开arcgis,加入咱们要进行排序并重新编号的数据,如下图,打开Python编辑器。
然后,在Python编辑器中输入以下代码:import arcpyrows = arcpy.UpdateCursor("数据名称","","","","面积A")i=1for row in rows:row.BH=ii=i+1rows.updateRow(row)del rowsdel row其中,arcpy.UpdateCursor指调用UpdateCursor这个函数,其中包括5个参数,这里我们只需要用到第一个和第五个参数,其他参数均用“”空值代替。
第一个参数为:数据名称(前提是这个数据加入了ARCMAP中)第五个参数为:要排序的字段名称+空格+A,A指排升序这里重点说下BH,就是进行自动编号的字段,此字段名称必须为英文字符,如果为汉字,则不能识别。
如下图:最后,输入完成后,两次回车,就直接运行了。
结果如下,根据面积字段的属性,进行了重新排序,并进行了自动编号。
二、字段计算器自动编号。
首先,打开字段计算器。
使用Python计算:然后,复制这段代码到预逻辑脚本代码框中,在下面排序=框中输入px(),确定。
re=0def px():global rea = 1b = 1if (re == 0):re = aelse:re = re + breturn re如果用VB脚本自动编号:选中上面的VB脚本,直接在代码块中输入[FID]+1,确定,同样的效果。
两种自动编号的方法区别在于:一种是按照原顺序,生成一组序号。
另一种是根据其中一个字段值的属性重新排序,并重新编号。
arcgis中字段自动编号的两种方法
关于ARCGIS中字段自动编号的两种方法一、根据某一字段属性排序,并重新自动编号.首先,打开arcgis,加入咱们要进行排序并重新编号的数据,如下图,打开Python编辑器。
然后,在Python编辑器中输入以下代码:import arcpyrows = arcpy。
UpdateCursor(”数据名称","”,"”,"”,”面积A”)i=1for row in rows:row.BH=ii=i+1rows。
updateRow(row)del rowsdel row其中,arcpy。
UpdateCursor指调用UpdateCursor这个函数,其中包括5个参数, 这里我们只需要用到第一个和第五个参数,其他参数均用“"空值代替。
第一个参数为:数据名称(前提是这个数据加入了ARCMAP中)第五个参数为:要排序的字段名称+空格+A,A指排升序这里重点说下BH,就是进行自动编号的字段,此字段名称必须为英文字符,如果为汉字,则不能识别。
如下图:最后,输入完成后,两次回车,就直接运行了.结果如下,根据面积字段的属性,进行了重新排序,并进行了自动编号。
二、字段计算器自动编号。
首先,打开字段计算器。
使用Python计算:然后,复制这段代码到预逻辑脚本代码框中,在下面排序=框中输入px(),确定。
re=0def px():global rea = 1b = 1if (re == 0):re = aelse:re = re + breturn re如果用VB脚本自动编号:选中上面的VB脚本,直接在代码块中输入[FID]+1,确定,同样的效果。
两种自动编号的方法区别在于:一种是按照原顺序,生成一组序号.另一种是根据其中一个字段值的属性重新排序,并重新编号。
Arcgis使用字段计算器对同一地类图斑自动编号
Arcgis使用字段计算器对同一地类图斑自动编号使用字段计算器对同一地类图斑自动编号(标记重复记录) 问题描述:在某个表中把某个字段(如字段一)中具有相同值的记录标出来,并且按照从小到大的排序自动增加一个编号,存储在字段二中,实现如下的效果:
FID 字段1 字段2
1 001 0011
2 001 0012
3 002 0021
4 002 0022
解决方法:在ArcGIS10中实现方法如下,字段2右键调出字段计算器,选择Python脚本,在代码块中写: UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return str(inValue)+str(UniqueDict[inValue])
(无须重复标记)
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
在字段2=的语句下面写:
isDuplicateIndex( !字段1! )
即可实现问题中的要求,字段计算器是一个强大的为字段赋值的工具,支持Python和VBScript代码,并且可以在Model Builder中调用。
该代码可以按照地类对图斑进行编号,或者按某个行政区的字段对图斑进行编号。
ARCGIS小班自动编号方法和步骤
方法一:
根据小班质心坐标进行编号:
第一步:打开属性表,添加字段质心X坐标和Y坐标。
第二步:计算质心坐标,并导出属性表。
第三步:将X、Y坐标除以一个整数并取整。
第四步:对取整后的坐标值进行排序,先Y坐标降序排列,然后X坐标升序排列。
第五步:用公式IF(C3=C2,D2+1,1)(用中文表示就是:如果C3=C2,那么D3就等于D2+1,否则就D3等于1)进行编号。
(此方法无法解决跨越多个小班的一长块小班)
方法二:
根据小班左上角坐标进行编号:
第一步:打开属性表,添加字段Xmin坐标和Ymax坐标。
第二步:计算Xmin坐标和Ymax坐标,ArcGIS10.0中求多边形的四至点可以直接根据字段计算器,利用Python语句直接求得
minX=!shape.extent.xmin!
maxX=!shape.extent.xmax!
minY=!shape.extent.ymin!
maxY=!shape.extent.ymax!
第三步、第四步、第五步同方法一。
arcgis界址点编号语句
arcgis界址点编号语句
在 ArcGIS 中,你可以使用 Field Calculator 工具来批量为界址点编号。
以下是一个示例的编号语句,用于给界址点进行连续编号:
```python
def autoIncrement():
global i
i = 1
return i
i = autoIncrement()
```
在上述示例中,我们定义了一个名为`autoIncrement`的函数,它返回一个全局变量`i`,并将其初始化为 1。
然后,我们将`i`赋值给当前的界址点编号。
接下来,你可以在 Field Calculator 中使用以下表达式来更新界址点的编号字段:```python
i++
```
上述表达式将递增界址点的编号,并将结果保存到编号字段中。
你可以将该表达式应用到需要编号的界址点图层的编号字段上,以实现批量编号。
请注意,上述示例中的编号是连续的。
如果你需要按照特定的规则或序列进行编号,可以根据实际需求进行相应的修改。
此外,Field Calculator 还提供了其他函数和运算符,你可以根据具体情况进行更复杂的编号计算。
希望这个示例对你有帮助。
如果你有其他问题或需要进一步的帮助,请随时提问。
Arcgis使用字段计算器对同一地类图斑自动编号
Arcgis使用字段计算器对同一地类图斑自动编号
Arcgis使用字段计算器对同一地类图斑自动编号使用字段计算器对同一地类图斑自动编号(标记重复记录) 问题描述:在某个表中把某个字段(如字段一)中具有相同值的记录标出来,并且按照从小到大的排序自动增加一个编号,存储在字段二中,实现如下的效果:
FID 字段1 字段2
1 001 0011
2 001 0012
3 002 0021
4 002 0022
解决方法:在ArcGIS10中实现方法如下,字段2右键调出字段计算器,选择Python脚本,在代码块中写: UniqueDict = {} def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return str(inValue)+str(UniqueDict[inValue])
(无须重复标记)
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
在字段2=的语句下面写:
isDuplicateIndex( !字段1! )
即可实现问题中的要求,字段计算器是一个强大的为字段赋值的工具,支持Python和VBScript代码,并且可以在Model Builder中调用。
该代码可以按照地类对图斑进行编号,或者按某个行政区的字段对图斑进行编号。
干货‖ArcGIS‖属性表的“那些”事(字段排序、小班编号、属性多条件选择)
干货‖ArcGIS‖属性表的“那些”事(字段排序、小班编号、属性多条件选择)案例(1)我们经常在实际工作中要对字段按照由小到大的顺序进行排列,例如:1、2、3... ...步骤一:打开图层属性表,新建字段(例如:zdbh)步骤二:在新建的字段(zdbh)上面右击,选择“字段计算器”---选中 python。
(可能这时候有同学就慌了,我py不会、看不懂搞啥子嘛)莫急、莫急Ctrl+C 、Ctrl+V 应该是会得嘛!步骤三:在“预逻辑代码块”复制、粘贴以下代码就好;rec=-1def autoIncrement():global recpStart = 1 #起始值为1,可修改pInterval = 1 #间隔值为1,可修改if (rec ==-1):rec = pStartelse:rec = rec + pIntervalreturn rec(上述代码含义:首先初始化rec为-1;接着定义一个autoIncrement方法,在这个方法里定义了一个局部变量rec,初始化pStart为1,它也是起始值,如果想typeid起始值为其它值可以修改pStart的值即可,pInterrval是间隔值,即依次递增的数字之间的间隔是1,如果想依次递增的数字之间的间隔是2或者3...等,可以修改pInterrval的值;再接着就是一个if()else语句,最后将rec进行返回。
)然后将autoIncrement()方法给zdbh,最后点击“确定”运行。
(注意将autoIncrement()方法给zdbh时,autoIncrement()方法前不能有空格,否则会报错)案例(2)在我们实际工作中还会经常遇见对小班进行编号,格式要求0001、0002、0003... ....0010等这种格式。
步骤同案例(1)我们在这里就不重复说了,还是老办法Ctrl+C 、Ctrl+V需要改变的是代码如下:rec=0def autoIncrement():global recpStart = 1 #adjust start value, if req'dpInterval = 1 #adjust interval value, if req'dif (rec == 0):rec = pStartelse:rec = rec + pIntervalreturn rec然后将(str(autoIncrement())).zfill(4) 给 zdbh1 最后点确定就行这里重点要强调一下(str(autoIncrement())).zfill(4) 这个数字4,如果要变成格式为00001 00002 这种的就修改为5 就行。
arcgis字段计算器对字段重复内容自动编号的方法
arcgis字段计算器对字段重复内容自动编号的方法文章标题:探索ArcGIS字段计算器对字段重复内容的自动编号方法一、引言在日常工作中,我们经常会遇到需要对字段中的重复内容进行编号的情况。
在ArcGIS软件中,字段计算器是一个非常强大的工具,可以帮助我们实现对字段中重复内容的自动编号。
本文将重点探讨ArcGIS字段计算器对字段重复内容自动编号的方法。
二、ArcGIS字段计算器简介ArcGIS字段计算器是ArcMap软件中的一个重要工具,它可以在属性表中对字段进行计算和修改。
通过字段计算器,我们可以执行诸如数字运算、文本连接、逻辑判断等操作。
在处理字段中的重复内容时,字段计算器尤为重要,它可以帮助我们实现对重复内容的自动编号。
三、字段重复内容自动编号的方法1. 查找重复内容在使用字段计算器对重复内容进行自动编号之前,首先需要找出字段中的重复内容。
通过ArcMap软件提供的工具或者SQL查询语句,我们可以轻松地找出字段中的重复内容,并对其进行标记。
2. 使用字段计算器进行自动编号一旦找出了字段中的重复内容,接下来就可以使用字段计算器进行自动编号了。
在字段计算器中,我们可以使用Python等语言编写脚本,实现对重复内容的自动编号。
在编写脚本时,我们可以利用循环、条件判断等语句,确保每个重复内容都能被正确编号。
3. 灵活运用函数和表达式除了编写Python脚本外,字段计算器还提供了丰富的函数和表达式,可以帮助我们更高效地对重复内容进行编号。
在字段计算器中,我们可以使用字段值、条件语句、字符串函数等,灵活地实现对重复内容的自动编号。
四、个人观点和理解在实际工作中,我发现ArcGIS字段计算器对字段重复内容的自动编号非常便捷高效。
通过合理运用字段计算器提供的工具和函数,我们可以轻松地实现对重复内容的自动编号,大大提高了工作效率和数据处理的准确性。
我也意识到在使用字段计算器时,需要对字段的数据类型、特性和业务逻辑有深入了解,才能更好地实现字段的自动编号。
arcgis自动编号语句
arcgis自动编号语句
ArcGIS自动编号是一种功能强大的工具,可以帮助用户在地理信息系统中进行要素的自动编号和标记。
下面将介绍一些使用ArcGIS自动编号的语句。
1. ArcGIS自动编号可以通过定义编号字段来实现要素的自动编号和标记。
2. 在ArcGIS中,可以使用自动编号工具来生成唯一的标识码,以便对要素进行管理和查询。
3. 使用ArcGIS自动编号功能可以快速、准确地对大量要素进行编号和标记,提高工作效率。
4. 在进行ArcGIS自动编号时,可以选择不同的编号方式,如序列号、日期时间等,以满足不同需求。
5. ArcGIS自动编号功能还可以支持用户自定义编号规则,根据具体需求进行灵活设置。
6. 使用ArcGIS自动编号可以有效避免人工编号带来的错误和重复,提高数据的准确性和一致性。
7. 自动编号功能可以应用于各种要素类型,如点、线、面等,适用范围广泛。
8. 在ArcGIS中,可以通过设置编号字段的属性来控制编号的起始值、步长和格式等,满足不同需求。
9. 使用ArcGIS自动编号功能可以方便地对要素进行更新和编辑,保持编号的连续性和一致性。
10. 在ArcGIS中,自动编号的结果可以直接显示在地图上,方便用户查看和分析。
通过上述语句的描述,可以清楚地了解到ArcGIS自动编号的功能和应用。
它不仅可以提高工作效率,减少错误,还可以保持数据的一致性和准确性。
使用ArcGIS自动编号功能,用户可以轻松管理和查询大量要素,并在地图上直观地展示编号结果。
无论是对于地理信息系统的专业人员还是普通用户,ArcGIS自动编号都是一个非常有用的工具。
arcgis10.2从上到下,从左到右排序编号;字段条件赋值python语句
Arcgis从上到下,从左到右按顺序编号1、打开所要编号的图层属性表,添加字段xmin,ymax,字段类型选择双精度2、添加字段后如图:3、分别在xmin、ymax字段上单击字段计算器,按如图输入Python语句,计算每个面xmin、ymax的值4、打开工具箱arctoolbox,找到数据管理工具(Data Management)——常规——排序工具,输入要排序的图层,将字段ymax,xmin分别按下列排序方法选择,输出数据集5、打开输出图层,OBJECTID即为图层内所有图形按照从上到下,从左到右重新排序后的结果,编号可通过新建字段将OBJECTID赋值给编号字段。
6、排序前后如图所示,为展示效果,随手所画图中所示图形,无实际使用意义,仅供参考。
排序前图形编号自上而下,从左到右排序后图形编号Arcgis批量条件语句赋值以三调地类编码为例,将地类名称根据地类编码条件赋值Arcgis字段计算器Python脚本代码如下:def FZ(f):if f =="0102":return "水浇地"elif f =="0103":return "旱地"elif f =="0201":return "果园"elif f =="0204":return "其他园地"elif f =="0301":return "乔木林地"elif f =="0305":return "灌木林地"elif f =="0307":return "其他林地"elif f =="0404":return "其他草地"elif f =="05H1":return "商业服务业设施用地"elif f =="0601":return "工业用地"elif f =="0602":return "采矿用地"elif f =="0701":return "城镇住宅用地"elif f =="0702":return "农村宅基地"elif f =="0508":return "物流仓储用地"elif f =="0809":return "公园与绿地"elif f =="0810":return "公园与绿地"elif f =="0810A":return "广场用地"elif f =="08H1":return "机关团体新闻出版用地"elif f =="08H2":return "科教文卫用地"elif f =="09":return "特殊用地"elif f =="1001":return "铁路用地"elif f =="1003":return "公路用地"elif f =="1004":return "城镇村道路用地"elif f =="1005":return "交通服务场站用地"elif f =="1006":return "农村道路"elif f =="1009":return "管道运输用地"elif f =="1101":return "河流水面"elif f =="1103":return "水库水面"elif f =="1104":return "坑塘水面"elif f =="1104A":return "养殖坑塘"elif f =="1106":return "内陆滩涂"elif f =="1107":return "沟渠"elif f =="1107A":return "干渠"elif f =="1109":return "水工建筑用地"elif f =="1201":return "空闲地"elif f =="1202":return "设施农用地"elif f =="1206":return "裸土地"else:return ""调用定义函数DLMC=FZ(!DLBM!)注意:Python 强制要求将缩进作为语法的一部分,所以空格为两个或四个来定义每个逻辑级别。
arcgis编号公式
arcgis编号公式ArcGIS是一款功能强大的地理信息系统软件,它可以帮助用户处理地理空间数据,并进行地理空间分析。
在ArcGIS中,编号公式是一种非常重要的功能,它可以帮助用户对数据进行编号,并进行相应的操作和分析。
本文将介绍ArcGIS编号公式的使用方法和注意事项。
我们需要了解ArcGIS编号公式的基本语法和规则。
在ArcGIS中,编号公式使用的是Python语言,因此我们需要掌握一些Python 的基本知识。
在使用编号公式之前,我们需要先了解数据的结构和属性,以便正确地编写编号公式。
在ArcGIS中,编号公式主要用于对属性字段进行编号。
在数据表中,我们可以为每个属性字段设置一个编号,这个编号可以是数字、字母或其他字符。
通过编号公式,我们可以根据数据的特点和需求,对属性字段进行灵活的编号操作。
使用ArcGIS编号公式时,我们需要注意以下几点:1. 确定编号字段:在使用编号公式之前,我们需要确定一个适合的字段用于存储编号。
这个字段可以是已有的字段,也可以是新建的字段。
2. 编写编号公式:根据数据的特点和需求,我们可以编写相应的编号公式。
在编写公式时,我们可以使用Python的各种函数和操作符,以及ArcGIS提供的一些特殊函数和工具。
3. 测试和应用编号公式:在编写完编号公式后,我们需要对公式进行测试,并确保其能够正确地生成编号。
在测试时,我们可以使用ArcGIS提供的工具和功能,以及一些辅助的数据和方法。
除了以上注意事项,我们还需要注意以下几点:1. 数据的准确性:在使用编号公式时,我们需要确保数据的准确性。
如果数据存在错误或缺失,可能会导致编号公式生成错误的编号。
2. 编号的唯一性:在对数据进行编号时,我们需要确保编号的唯一性。
如果存在重复的编号,可能会导致数据分析和操作的错误。
3. 数据的完整性:在使用编号公式时,我们需要确保数据的完整性。
如果数据存在缺失或不完整,可能会导致编号公式无法正常生成编号。
arcgis字段计算器编号
arcgis字段计算器编号
在ArcGIS字段计算器中,编号可以使用以下方式进行计算:
1.使用字段序号:
可以使用 !OID! 计算字段的序号。
OID为对象识别(ObjectID)字段,会为每个要素生成唯一的数字。
你可以使用 !OID! 命令创建一个以1开始逐渐递增的编号。
2. 使用Python脚本:
你可以使用Python脚本来创建编号。
首先,选择Python解释器,然后编写一个脚本来生成你想要的编号。
例如,你可以使用循环语句和计数器来创建连续的编号。
3.使用自定义函数:
如果简单的编号方法不能满足你的需求,你可以自定义一个函数来生成编号。
你可以使用Python或VBScript来创建自定义函数,并在字段计算器中使用它。
无论你选择哪种方式,都需要确保你对要素的顺序有所了解,并且在计算编号之前对要素进行正确的排序。
在执行字段计算操作之前,建议先对图层进行排序,以确保要素按照你的排序方式进行编号。
arcgis中字段自动编号的两种方法
关于ARCGIS中字段自动编号的两种方法一、根据某一字段属性排序,并重新自动编号。
首先,打开arcgis,加入咱们要进行排序并重新编号的数据,如下图,打开Python编辑器。
然后,在Python编辑器中输入以下代码:import arcpyrows = arcpy.UpdateCursor("数据名称","","","","面积A")i=1for row in rows:row.BH=ii=i+1rows.updateRow(row)del rowsdel row其中,arcpy.UpdateCursor指调用UpdateCursor这个函数,其中包括5个参数,这里我们只需要用到第一个和第五个参数,其他参数均用“”空值代替。
第一个参数为:数据名称(前提是这个数据加入了ARCMAP中)第五个参数为:要排序的字段名称+空格+A,A指排升序这里重点说下BH,就是进行自动编号的字段,此字段名称必须为英文字符,如果为汉字,则不能识别。
如下图:最后,输入完成后,两次回车,就直接运行了。
结果如下,根据面积字段的属性,进行了重新排序,并进行了自动编号。
二、字段计算器自动编号。
首先,打开字段计算器。
使用Python计算:然后,复制这段代码到预逻辑脚本代码框中,在下面排序=框中输入px(),确定。
re=0def px():global rea = 1b = 1if (re == 0):re = aelse:re = re + breturn re如果用VB脚本自动编号:选中上面的VB脚本,直接在代码块中输入[FID]+1,确定,同样的效果。
两种自动编号的方法区别在于:一种是按照原顺序,生成一组序号。
另一种是根据其中一个字段值的属性重新排序,并重新编号。
arcgis字段计算器编号
在 ArcGIS 中,可以使用字段计算器来创建编号。
具体步骤如下:
1. 打开 ArcGIS 并加载需要编辑的图层。
2. 打开属性表,找到需要添加编号的字段。
3. 右键点击该字段,选择“计算字段”选项。
4. 在弹出的对话框中,输入以下代码:
```
!FID!
```
其中,FID 是要素的唯一标识符,类似于编号。
5. 点击“确定”按钮,关闭对话框。
完成上述步骤后,将在所选字段中添加与要素对应的唯一编号。
如果需要自定义编号格式或从特定数字开始编号,可以使用 Python 脚本来实现。
具体步骤如下:
1. 打开 ArcGIS 并加载需要编辑的图层。
2. 打开属性表,找到需要添加编号的字段。
3. 右键点击该字段,选择“计算字段”选项。
4. 在弹出的对话框中,选择“Python”选项卡。
5. 在代码编辑器中输入以下代码:
```python
def autoIncrement():
global rec
pStart = 1 # 初始值
pInterval = 1 # 间隔值
if (rec == 0):
rec = pStart
else:
rec = rec + pInterval
return rec
```
6. 在“表达式”文本框中输入以下代码:
```python
autoIncrement()
```
7. 点击“确定”按钮,关闭对话框。
完成上述步骤后,将在所选字段中添加自动递增的编号。
可以根据需要调整初始值和间隔值。
ArcGIS从左到右从上到下编号
7.
在更新数据对话框中,选择栅格数据作为更新数据源。
8.
在字段映射区域中,将“ROW”和“COL”字段分别映射到“行ቤተ መጻሕፍቲ ባይዱ和“列”字段。
9.
单击“确定”,开始更新栅格数据的属性表。
10.
关闭更新数据对话框,关闭编辑模式。
上述步骤将会把栅格数据中每个像元的行列号更新到属性表的“ROW”和“COL” 字段中。注意,在编辑模式下进行更新操作时,需要先保存编辑结果。
for i, row in enumerate(cursor): row[0] = (i // num_cols) + 1 # 计算行号 row[1] = (i % num_cols) + 1 # 计算列号 cursor.updateRow(row)
上述代码将会把栅格数据中每个像元的行列号更新到属性表的 ROW 和 COL 字 段中。
在 ArcGIS 中,可以使用 Python 代码或操作步骤来进行从左到右从上到下的 栅格编号。
代码实现:
import arcpy
# 设置栅格数据 in_raster = r"path\to\your\raster"
# 获取栅格的行数和列数 desc = arcpy.Describe(in_raster) num_rows = desc.height num_cols = desc.width
操作步骤:
1.
打开 ArcMap,加载需要编号的栅格数据。
2.
右键单击栅格数据,选择“属性”。
3.
在属性对话框中选择“字段”选项卡,单击“添加字段”按钮。
4.
分别添加名为“ROW”和“COL”的短整型字段。
5.
arcgis批量编号
arcgis批量编号一、背景介绍在GIS数据处理中,经常需要给数据集中的要素进行编号,以便对其进行标识、管理和查询。
而对于大量数据集的编号工作,手动逐个编号耗时耗力且容易出错。
因此,使用ArcGIS进行批量编号是一种高效且准确的方法。
二、ArcGIS批量编号的方法和步骤1. 准备工作在开始之前,需要确保已经安装了ArcGIS软件,并且已经导入了需要进行编号的数据集。
2. 打开ArcGIS软件双击桌面上的ArcGIS图标,打开软件。
3. 导入数据集点击“文件”菜单,选择“添加数据”,将需要进行编号的数据集导入到ArcGIS中。
4. 创建编号字段在数据表中,选择需要进行编号的字段,右键点击该字段的列名,选择“属性”选项,然后点击“添加字段”按钮,在弹出的对话框中填写字段名和字段类型,点击“确定”按钮创建编号字段。
5. 编号设置在数据表中,选中编号字段,右键点击该字段的列名,选择“字段计算器”选项,弹出字段计算器对话框。
6. 设置编号规则在字段计算器对话框中,选择“VBScript”作为计算语言,然后在表达式框中输入以下代码:"编号字段名" = "起始编号" + [FID]其中,"编号字段名"为之前创建的编号字段的名称,"起始编号"为起始的编号值,[FID]代表数据表中的唯一标识字段。
7. 执行批量编号点击字段计算器对话框中的“确定”按钮,执行批量编号操作。
此时,ArcGIS将根据编号规则对数据集中的要素进行批量编号。
8. 验证编号结果在数据表中查看编号字段的值,确保编号结果正确无误。
9. 保存编号结果点击“文件”菜单,选择“另存为”,将编号结果保存为新的数据集。
10. 完成批量编号至此,使用ArcGIS进行批量编号的操作已经完成。
三、注意事项1. 执行批量编号操作前,请务必备份原始数据集,以防出现意外情况。
2. 在设置编号规则时,需根据实际情况调整起始编号的值和编号字段的名称。
在ArcGIS属性表中增加需要的字段,并自动赋值
在ArcGIS属性表中增加需要的字段,并自动赋值ArcGIS属性表中,一般不会包含实体几何信息,可以采取VBA进行计算。
下面是几个简单的代码(转载自集思学院)特点:1推荐给不会使用AO的朋友2可以保存为CAL文件以备下次方便使用使用方法1打开属性表,选择计算的字段,右点选择Calculate Values;2.选择“是”,进入Field Calculator;2选择Advance选项;3 在Pre-Logic VBA Script Code编辑框中输入VBA代码;4在下面编辑框中输入赋值部分.1--点坐标XVBA部分:Dim pGeo As IGeometrySet pGeo = [Shape]Dim pPoint As IPointSet pPoint = pGeo赋值部分:pPoint.X2--点坐标YVBA部分:同上赋值部分:pPoint.Y坐标值为文件存储的固有值,和是否使用On the Fly坐标表示无关。
返回当前显示的坐标值参看8,93--多边形周长VBA部分:Dim pGeo As IGeometrySet pGeo = [Shape]Dim pPolygon As IPolygonSet pPolygon = pGeo赋值部分:pPolygon.Length4--多边形面积VBA部分:Dim pGeo As IGeometrySet pGeo = [Shape]Dim pPolygon As IPolygonSet pPolygon = pGeoDim pArea As IAreaSet pArea = pPolygon赋值部分:pArea.Area5--多边形重心XVBA部分:Dim pGeo As IGeometrySet pGeo = [Shape]Dim pPolygon As IPolygonSet pPolygon = pGeoDim pArea As IAreaSet pArea = pPolygonDim pPoint As IPointSet pPoint = pArea.Centroid赋值部分:pPoint.X6--多边形重心YVBA部分:同上赋值部分:pPoint.Y7--Polyline长度VBA部分:Dim pGeo As IGeometrySet pGeo = [Shape]Dim pPolyline As IPolylineSet pPolyline = pGeoDim pCurve As IPolycurveSet pCurve = pPolyline赋值部分:pCurve.Length8--表示点坐标XVBA部分:Dim pDoc As IMxDocumentSet pDoc = ThisDocumentDim pSpRef As ISpatialReferenceSet pSpRef = pDoc.FocusMap.SpatialReferenceDim pClone As ICloneSet pClone = [Shape]Dim pGeo As IGeometrySet pGeo = pClone.CloneDim pPoint as IPointSet pPoint = pGeopGeo.Project pSpRef赋值部分:pPoint.X9--表示点坐标YVBA部分:同上赋值部分:pPoint.Y坐标值为On the Fly显示的坐标,不是文件存储的固有坐标10--连续编号VBA部分:Static lCount as longlCount=lCount+1赋值部分:lCount (从1开始)lCount-1 (从0开始)分类: GIS。
第024篇:ArcGIS中实现要素的自动编号
第024篇:ArcGIS中实现要素的⾃动编号最近⼜⽤到这个⾃动编号功能,所以翻出来了⽼博客。
之前写的太糙了,这次找出来发现连⾃⼰都不会⽤了,这⾖腐渣⼯程鸣谢:⼀位不轻易透明姓名的⼤佬⼉使⽤场景:给shp⾥的要素重新编号。
代码实现:给Id字段从1开始以1递增⾃动编号(⼀)ArcMap中,打开Python窗⼝,输⼊以下代码并按回车运⾏rows = arcpy.UpdateCursor('D:/New_Shapefile.shp','','','','') #第⼀对双引号内写数据的绝对位置,Python 的注释要⽤#i = 0for row in rows:i = 1row.setValue('ID', i) #ID这个字段是⾃⼰提前在数据属性表中新增的,⽤于存储我们要写⼊的编号 rows.updateRow(row)print '成功连续编号!'备注:(1)'arcpy.UpdateCursor函数所需参数的各含义,可查看ArcMap帮助⽂档https:///zh-cn/pro-app/arcpy/functions/updatecursor.htm(2)如该数据已加⼊视图,可以采⽤重新添加数据的⽅法后查看代码执⾏效果。
(⼆)IDLE中新建窗⼝,写⼊代码后保存为.py⽂件按F5运⾏# -*- coding: cp936 -*-import arcpyrows = arcpy.UpdateCursor('D:/New_Shapefile.shp','','','','')i = 0for row in rows:row.setValue('ID', i) #在IDLE中要⼗分注意缩进,此处缩进⽤上⼀⾏末尾回车的办法来控制,后续保持⼀致rows.updateRow(row)print '成功连续编号!' #这⾥的print,缩进与不缩进,打印效果是不同的,可以⾃⾏尝试⼀下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于ARCGIS中字段自动编号的两种
方法
一、根据某一字段属性排序,并重新自动编号。
首先,打开arcgis,加入咱们要进行排序并重新编号的数据,如下图,打开Python编辑器。
然后,在Python编辑器中输入以下代码:
import arcpy
rows = arcpy.UpdateCursor("数据名称","","","","面积A")
i=1
for row in rows:
row.BH=i
i=i+1
rows.updateRow(row)
del rows
del row
其中,
arcpy.UpdateCursor指调用UpdateCursor这个函数,其中包括5个参数,
这里我们只需要用到第一个和第五个参数,
其他参数均用“”空值代替。
第一个参数为:数据名称(前提是这个数据加入了ARCMAP中)
第五个参数为:要排序的字段名称+空格+A,A指排升序
这里重点说下BH,就是进行自动编号的字段,此字段名称必须为英文字符,如果为汉字,则不能识别。
如下图:
最后,输入完成后,两次回车,就直接运行了。
结果如下,根据面积字段的属性,进行了重新排序,并进行了自动编号。
二、字段计算器自动编号。
首先,打开字段计算器。
使用Python计算:
然后,复制这段代码到预逻辑脚本代码框中,在下面排序=框中输入px(),确定。
re=0
def px():
global re
a = 1
b = 1
if (re == 0):
re = a
else:
re = re + b
return re
如果用VB脚本自动编号:选中上面的VB脚本,直接在代码块中输入[FID]+1,确定,同样的效果。
两种自动编号的方法区别在于:
一种是按照原顺序,生成一组序号。
另一种是根据其中一个字段值的属性重新排序,并重新编
号。