ArcGIS中批量获取输入面图层A中各要素的四至点的实现方法
一、背景及意义
在日常工作中,我们经常会需要获取面图层的四至点,我们能否在ArcGIS中直接获取面图层的四至点呢?答案是肯定的,请继续往下看。
二、大体思路
使用字段计算器计算输入面图层A中各面要素的XY的最大值和最小值,使用折点转点功能将图层A中各面要素转为点,选择XY与之前面的XY最大值、最小值相同的对应XY值,这些点就是需要的四至点。
三、具体步骤
1、将输入面图层A使用“复制要素”工具复制到临时gdb;
2、对1中结果使用“添加字段”添加名为“WYBS11”(别名“面唯一标识”,字段类型为“长整型”)的字段,并使用“计算字段器”给“WYBS11”赋唯一编号;
3、对2中结果使用“添加字段”添加名为“East_X”(别名“东至点X”,字段类型为“双精度”)的字段;
4、对3中结果的“East_X”字段使用“字段计算器”,表达式类型选择“PYTHON_9.3”,表达式为“!shape.extent.xmax!”;
5、对4中结果使用“添加字段”添加名为“East_Y”(别名“东至点Y”,字段类型为“双精度”)的字段;
6、对5中结果使用“添加字段”添加名为“West_X”(别名“西至点X”,字段类型为“双精度”)的字段;
7、对6中结果使用“添加字段”添加名为“West_Y”(别名“西至点Y”,字段类型为“双精度”)的字段;
8、对7中结果的“West_X”字段使用“字段计算器”,表达式类型选择“PYTHON_9.3”,表达式为“!shape.extent.xmin!”;
9、对8中结果使用“添加字段”添加名为“South_X”(别名“南至点X”,字段类型为“双精度”)的字段;
10、对9中结果使用“添加字段”添加名为“South_Y”(别名“南至点Y”,字段类型为“双精度”)的字段;
11、对10中结果的“South_Y”字段使用“字段计算器”,表达式类型选择“PYTHON_9.3”,表达式为“!shape.extent.ymin!”;
12、对11中结果使用“添加字段”添加名为“North_X”(别名“北至点X”,字段类型为“双精度”)的字段;
13、对12中结果使用“添加字段”添加名为“North_Y”(别名“北至点Y”,字段类型为“双精度”)的字段;
14、对13中结果的“North_Y”字段使用“字段计算器”,表达式类型选择“PYTHON_9.3”,表达式为“!shape.extent.ymax!”;
15、对14中结果使用“要素折点转点”工具转为点;
16、对15中结果使用“添加XY坐标”;
17、对16中结果添加名为“East_Xpd”(别名为“东至点X判断”,字段类型为“文本型”)字段;
18、对17中结果的“East_Xpd”字段使用“字段计算器”,表达式类型为“PYTHON_9.3”,表达式为“!POINT_X! == !East_X!”;
19、对18中结果添加名为“West_Xpd”(别名为“西至点X判断”,字段类型为“文本型”)字段;
20、对19中结果的“West_Xpd”字段使用“字段计算器”,表达式类型为“PYTHON_9.3”,表达式为“!POINT_X! == !West_X!”;
21、对20中结果添加名为“SouthYpd”(别名为“南至点Y判断”,字段类型为“文本型”)字段;
22、对21中结果的“SouthYpd”字段使用“字段计算器”,表达式类型为“PYTHON_9.3”,表达式为“!POINT_Y! == !South_Y!”;
23、对22中结果添加名为“NorthYpd”(别名为“北至点判断”,字段类型为“文本型”)字段;
24、对23中结果的“NorthYpd”字段使用“字段计算器”,表达式类型为“PYTHON_9.3”,表达式为“!POINT_Y! == !North_Y!”;
25、对24中结果使用“按属性选择图层”工具进行选择,表达式为“East_Xpd = ‘1’”;
26、对25中结果的“East_Y”字段使用“字段计算器”,表达式类型为“VB”,表达式为“[POINT_Y]”;
27、对26中结果使用“按属性选择图层”工具,选择类型选择“CLEAR_SELECTION”;
28、对27中结果使用“按属性选择图层”工具进行选择,表达式为“West_Xpd = ‘1’”;
29、对28中结果的“West_Y”字段使用“字段计算器”,表达式类型为“VB”,表达式为“[POINT_Y]”;
30、对29中结果使用“按属性选择图层”工具,选择类型选择“CLEAR_SELECTION”;
31、对30中结果使用“按属性选择图层”工具进行选择,表达式为“SouthYpd = ‘1’”;
32、对31中结果的“South_X”字段使用“字段计算器”,表达式类型为“VB”,表达式为“[POINT_X]”;
33、对32中结果使用“按属性选择图层”工具,选择类型选择“CLEAR_SELECTION”;
34、对33中结果使用“按属性选择图层”工具进行选择,表达式为“NorthYpd = ‘1’”;
35、对34中结果的“North_X”字段使用“字段计算器”,表达式类型为“VB”,表达式为“[POINT_X]”;
36、对35中结果使用“按属性选择图层”工具,选择类型选择“CLEAR_SELECTION”;
37、对36中结果使用“按属性选择图层”工具进行选择,表达式为“East_Y IS NULL”;
38、对37中结果的“East_Xpd”字段使用“字段计算器”,表达式类型为“VB”,表达式为“NULL”;
39、对38中结果使用“按属性选择图层”工具,选择类型选择“CLEAR_SELECTION”;
40、对39中结果使用“按属性选择图层”工具进行选择,表达式为“West_Y IS NULL”;
41、对40中结果的“West_Xpd”字段使用“字段计算器”,表达式类型为“VB”,表达式为“NULL”;
42、对41中结果使用“按属性选择图层”工具,选择类型选择“CLEAR_SELECTION”;
43、对42中结果使用“按属性选择图层”工具进行选择,表达式为“South_X IS NULL”;
44、对43中结果的“South_Y”字段使用“字段计算器”,表达式类型为“VB”,表达式为“NULL”;
45、对44中结果使用“按属性选择图层”工具,选择类型选择“CLEAR_SELECTION”;
46、对45中结果使用“按属性选择图层”工具进行选择,表达式为“North_X IS NULL”;
47、对46中结果的“North_Y”字段使用“字段计算器”,表达式类型为“VB”,表达式为“NULL”;
48、对47中结果使用“按属性选择图层”工具,选择类型选择“CLEAR_SELECTION”;
49、对48中结果使用“按属性选择图层”工具进行选择,表达式为“East_X IS NOT NULL AND East_Y IS NOT NULL OR West_X IS NOT NULL AND West_Y IS NOT NULL OR South_X IS NOT NULL AND South_Y IS NOT NULL OR North_X IS NOT NULL AND North_Y IS NOT NULL ”;
50、对49中结果使用“删除字段”工具,勾选“East_Xpd、West_Xpd、South_Y、North_Y”;
51、50中结果即为我们需要的输入面图层A的四至点数据。
到这里,我们就得到了需要的结果。
想要获取已做好的工具请联系博主获取。
感谢观看!!!