ArcMap中屬性字段計算器(Field Calculator)的使用技巧


很多時候,我們在使用ArcGIS進行屬性數據編輯時,需要批量修改某些字段值,這時候ArcGIS提供的屬性字段計算器(Field Calculator)就是一把利器。下面我就Field Calculator實際使用的經驗跟大家來分享,希望對大家的使用能夠起到一定的幫助。
       我遇到的問題是需要添加一個字段根據已有的字段(ID)來設置該字段的內容信息。ID是從1開始自增的字段,需要添加的是該ID對應的視頻流訪問地址(如:“assets/video/M2U00430.flv”),由於測試數據目前的視頻只能提供(M2U00430-M2U00455)的數據。也就是說我需要把ID字段計算後與字符串拼合。
       Field Calculator使用有兩種方式:A.簡單模式;B.高級模式;
       首先,使用簡單方式來做,思路就是對ID字段進行取餘數據計算,也就是將ID除以26,就可以得到0-25的數據,然後累加30,再進行數值到字符的轉換,最後拼接。
       操作如下:新建url字段,類型爲文本類型,簡單模式下選擇Python腳本,然後輸入表達式:"assets/video/M2U004"+str(int( !ID! %26+30))+".flv",其中%爲取餘;int爲取整;str爲數值轉字符。
       
 
       對於簡單的計算,簡單模式就可以完成,不需要高級模式,但是爲了便於大家掌握Field Calculator的使用,下來我們來看下如何在高級模式下來完成相應的操作。
   高級模式的操作界面如下圖:
        所謂高級模式,就是在簡單模式的對話框上勾選中間的顯示代碼塊(Show Codeblock),然後就可以添加比較複雜的處理腳本,需要指出的Python腳本參數,大家注意下面調用函數的參數是字段名稱加!!
 
      當然,因爲是高級模式就可以引入其他的庫,如random,那麼我的函數也可以這麼寫:
      引用random函數庫, x=random.randint(30,55)  result="assets/video/M2U004"+str(x)+".flv",這樣更加方便。
      通過以上對比,大家也不難發現高級模式與簡單模式的區別。還有很多朋友都有增加一個自增字段的需要,那麼在高級模式下,就非常簡單,添加腳本如下:
base=0
def idAdd():
    global base
    pStart=1
    pInterval=1
    if(base==0):
        base=pStart
    else:
        base=base+pInterval
    return base
       在這還需要提醒大家的是Python腳本的語法格式,很多朋友複製網頁的腳本,執行時經常會出現錯誤,基本都是縮進問題。另外,需要注意字段的數據類型以及計算結果的類型要對應。
       以上就是本人對於Field Calculator使用的一些心得,希望能對大家有所幫助,也歡迎大家就Field Calculator計算的技巧來一起討論。
       更多細節,請參考官網
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章