一、背景及意義
在日常工作中,我們經常會需要獲取面圖層的四至點,我們能否在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的四至點數據。
到這里,我們就得到了需要的結果。
想要獲取已做好的工具請聯系博主獲取。
感謝觀看!!!