日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

arcgis 字段计算器 条件赋值_ArcGIS中属性表的常用操作汇总

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 arcgis 字段计算器 条件赋值_ArcGIS中属性表的常用操作汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章將平時對arcgis屬性表的相關操作記錄下來,防止忘記。此外,在技術摸索中參考了一些gis大牛的博客和技術分享,我在博客結尾也粘貼了他們的博客地址在此表示感謝。

案例一:arcgis屬性表某個字段自動編號

例如:從1開始往后自動編號。

將下圖中數據類型為文本型的typeid字段進行自動編號,數據記錄從1開始往后遞增。

在該字段上右鍵,進入字段計算器,勾選“Python”;

在“預邏輯代碼塊”區域粘貼以下代碼;

rec=-1

def autoIncrement():

?global rec

?pStart = 1 #起始值為1,可修改

?pInterval = 1 #間隔值為1,可修改

?if (rec ==-1):?

? rec = pStart?

?else:?

? rec = rec + pInterval?

?return rec

(上述代碼含義:首先初始化rec為-1;接著定義一個autoIncrement方法,在這個方法里定義了一個局部變量rec,初始化pStart為1,它也是起始值,如果想typeid起始值為其它值可以修改pStart的值即可,pInterrval是間隔值,即依次遞增的數字之間的間隔是1,如果想依次遞增的數字之間的間隔是2或者3...等,可以修改pInterrval的值;再接著就是一個if()else語句,最后將rec進行返回。)

然后將autoIncrement()方法給typeid,最后點擊“確定”運行。

(注意將autoIncrement()方法給typeid時,autoIncrement()方法前不能有空格,否則會報錯!!!)

補充:

上述的案例是基于FID進行自動編號,如何根據其它字段進行自動編號呢?

思路:使用sort工具,基于某個字段進行編號,生成新的輸出數據,然后基于新的輸出數據使用案例1中的python代碼進行自動編號。

參考資料:http://www.cnblogs.com/liweis/p/4153333.html

//使用Python給要素添加序號

案例二:對屬性表中某一字段自動編號

例如:屬性表中的“縣級”行政單位進行自動編號,存在縣名稱重復的情況,例如:A縣有多次重復,那就按A0001、A0002、A0003自動編號,每個縣都從0001開始編號。

python代碼如下:

UniqueDict = {}

def isDuplicateIndex(inValue):

? ?UniqueDict.setdefault(inValue,0)

? ?UniqueDict[inValue] += 1

? ?return str(UniqueDict[inValue])

字段中寫:

isDuplicateIndex( !NAME! ).zfill(4)

案例三:對屬性表中某一字段進行分段

情景一:如何把一個shp文件批量均分為n個?比如:一個shp文件屬性表共有10000個行,我想分為50組,200為1組,請問除了按屬性選擇,是否有批量直接分的方法?

(1)字段計算器? int([字段]/200+1)?

(2)split-by-attributes,具體見鏈接:http://pro.arcgis.com/zh-cn/pro-app/tool-reference/analysis/split-by-attributes.htm

參考資料:http://zhihu.esrichina.com.cn/question/34781

情景二:對某一字段進行分段求和,現有一個矢量圖層,其中ACRES字段記錄了每一個面要素的面積,如何分段對該字段求和,如該字段數值在以下范圍時0-50,50-300,300-1000,>4000,其面積分別是多少?

參考資料:http://zhihu.esrichina.com.cn/article/2785

案例四:查出省級行政區劃名稱(Chinese_Ch)為山開頭,面積(Shape_Area)大于8000000的記錄。

查詢文本框輸入:

"Chinese_Ch" LIKE '山%' AND "Shape_Area" >8000000?

一般查詢過程是在字段名稱選擇區中雙擊字段名、再選運算符,建立查詢條件,并用Like、

And、Or、Not將幾個條件組合起來。在設置字段的查詢條件時,可在取值區中用鼠標選取,也可直接鍵入屬性值。

字符型字段還可使用通配符,如用“%”替代多個字符,用“_”替代一個字符。例如:

"NAME"LIKE'張%'表示查詢NAME字段,第一個字符為"張",不管后續有幾個字符。

"LANDUSE"LIKE'F_'表示查詢LANDUSE字段,第一個字符"F",第二個字符任意,但后續只能有一個。

按屬性選擇記錄會出現語法錯誤,軟件提示不能完成操作,引號、括號不匹配是常見差錯,以下是注意事項:

  • 字符型操作不能用等號代替LIKE;

  • 字段名自身帶雙引號,如"LANDUSE",字符型取值用單引號,如'C',數字型取值不帶引號;

  • 單引號、雙引號必須都用英文字符,不能用中英字符。

  • 多用鼠標,少用鍵盤,可避免語法差錯;

  • 案例五:查詢屬性表相同項

    首先數據要求是存放在個人地理數據庫(mdb)中,如果不是,需要先導入進去。這是因為個人地理數據庫對子查詢支持更好。

    如果這個字段名叫name,表名叫area,SQL可類似如下寫:

    [name] in (select [name] from area group by [name] having count([name]) > 1)

    參考資料:

    http://zhihu.esrichina.com.cn/question/6606

    文件地理數據庫對子查詢提供了有限的支持,而個人地理數據庫和 ArcSDE 地理數據庫則提供完全支持,詳情見鏈接介紹:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#/na/00s500000033000000/

    案例六:查詢屬性表中要素記錄的長度

    例如:查詢屬性表中要素記錄長度大于6的要素

    CHAR_LENGTH(string_exp)

    例如:查詢字段名為‘名稱’的長度大于6的要素

    CHAR_LENGTH( 名稱 ) >=6

    鏈接:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#/na/00s500000033000000

    文章轉載于CSDN,作者gislaozhang版權歸原作者所有,如有侵權請告知刪除

    - END -

    7.72GB ARCGIS ?ERDAS ?ENVI干貨教程網盤下載ArcGIS生成等值線圖的方法ArcGIS課程包——拓撲編輯、坐標提取、屬性數據常見操作ArcGIS網絡分析之常見問題分析、診斷匯總

    總結

    以上是生活随笔為你收集整理的arcgis 字段计算器 条件赋值_ArcGIS中属性表的常用操作汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。