實現這個project,十進制度、漁網工具、Excel if/Text函數、掛接Excel表、空間連接、投影這些知識是必須的。看懂本篇博文也就意味着大概掌握了以上知識。
坐標數據設置與編號標准依據《國家基本比例尺地形圖分幅和編號》GB/T 13989-2012。
有人問起,網絡未尋得現成方法,自行根據GB/T 13989-2012試制,歡迎指正各種錯誤。
推薦本文相關內容》》》》》ArcGis Python腳本——根據接圖表批量裁切分幅影像
一、數據確定
區域范圍:目的是做一個覆蓋海南島的1:5000比例尺標准分幅圖。根據1:1000000地形圖編號標准,海南島主體所在圖幅的編號應該是E49,其維度范圍為16°N-20°N,其經度范圍為108°E-114°E。
比例尺代碼:1:5000比例尺代碼為H
經差:1′52.5″,即1.875′,亦即0.03125°
緯差:1′15″,即1.25′,亦即0.02083333……°
划分行列:192行*192列
二、漁網工具繪制分幅網格
1.打開漁網工具,其位置在ArcToolbox\數據管理工具(data management tools)\要素類(feature class )\創建漁網(create fishnet)
2.設置參數
①設置輸出要素類的輸出路徑、名稱;
②設置漁網的初始坐標(采用十進制度,下同),使用左下角坐標108,16;
③設置y軸坐標,這是一個容易迷惑人的參數,它的作用是指引一個漁網從初始坐標開始行進創建的方向,這里設置為108,20,x值不變y值正方向增加,那么創建漁網時行列均向正方向增加;
④網格寬、網格高,寬是經差,高是緯差;
⑤行數、列數,均為192;
⑥創建點標記,標記每一個網格的中心點(生成一個點層,其屬性包含點的xy坐標信息);
⑦幾何要素的類型,這里用面polygon;
⑧-1環境environment參數設置,下續→
⑧-2 輸出坐標系設置為“使用下述坐標系(as specified below)”,坐標系統選大地2000,注意是地理坐標系!
3.創建完漁網生成一個面層與一個點層,面要素類的左上角坐標應該是108,20。
三、Excel編號
1.編號方式在上圖中給出了示例
2.導出點label要素的屬性表為Excel(97-03.xls格式)進行編號,導出前先增加一個長整型(long integer)字段ID,將FID的值計算過來,以便掛接回表格。
ps:FID是Object類型,Excel表回掛市不能作為連接標准字段。
3.Excel編行、列號
①根據上面的示例以及GB標准,可以知道x方向編號應為升序列,y方向編號應為降序列;
②將x所在列升序排序,新添加一列進行編號,函數式如下圖,請注意第一行的單元格要空着,具體自行理解;然后將生成的序號使用Text函數嵌套一下,使之為3位;
③具體嵌套起來的樣子如下圖,由於太簡單了,不多啰嗦,操作完后選中整列,復制—黏貼值,x序值命名為xOrder,y序值命名為yOrder;
四、掛接Excel
1.掛接回Excel數據到label,使用圖層右鍵連接與關聯(joins and relates)\連接(join)或者屬性表選項下的同名功能;
依據是導出前創建的ID字段,掛接表是Excel的對應表,連接依據是Excel表的ID列
2.label點要素類屬性表新建xOrder與yOrder字段,分別計算過掛接Excel表的對應字段;
五、組合圖幅編號
編號應為“E49H”+行+列,即"E49H"+ [yOrder]+ [xOrder]
六、空間連接
通過空間連接將點層數據匹配給所在的面層。
1.工具位置在ArcToolbox\分析工具(analysis tools)\空間連接(spatial join)
2.設置如下
① 目標要素,當然是面層(網格);
②連接要素,是點層;
③輸出要素類的路徑及名稱;
④匹配選項,contains,即包含
七、投影
該分幅圖目前是地理坐標系,投影為投影坐標系隨處可查,不講。