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計算的技巧來一起討論。
       更多細節,請參考官網


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM