ArcGIS—自定義腳本工具之Validation

ArcGIS—自定義腳本工具之Validation


本專題主要介紹我們在ArcGIS中自定義ArcToolbox的腳本工具時,Properties中的Validation的簡單使用方法以及一些比較高大上一點的腳本工具界面設計。
Validation可以使得你的腳本工具界面更具靈活性,確保輸入參數的準確性,甚至可以對初始輸入參數進行預判,報出提示信息等。



1. 引出問題

在ArcGIS自帶的ArcToolbox工具箱中,有很多已經做好的工具,打開即可運行。如很多時候,我們需要在ArcGIS中自定義工具,滿足自己的數據處理需求。但是往往自己做的工具樣式好像都特別單一,只有一條條地輸入輸出,例如下面這個工具:
簡單自定義腳本工具

然而在ArcGIS中就比較多花樣了,如:

  • 自帶灰色界面
    ArcGIS自帶灰色界面腳本工具
  • 按鈕或者滾動條
    ArcGIS自帶按鈕或者滾動條
  • 參數目錄
    ArcGIS自帶參數目錄

那麼像上面這種我們能否做出呢?答案是可以!如何做,看下面詳細步驟。

2. 創建選擇框

創建工具不用多說了,假設現我已創建了一個名稱爲“測試”腳本工具,然後打開其屬性,只需要在創建參數時將參數屬性設置爲Boolean型即可。

  1. 在腳本工具屬性Properties中設置參數爲Boolean類型,例如有一個名稱爲“測試”的腳本工具,設置其參數。
    設置參數類型
  2. 雙擊打開創建的腳本工具,將會出現選擇框。
    選擇框

3. 創建滾動條

  1. 同樣打開“測試”腳本工具的屬性,將創建的參數類型設置爲Long型,然後再下方“Parameter Properites”中設置Filter屬性爲Range將彈出對話框,設置此參數的數值範圍即可。
    設置滾動條參數
  2. 雙擊打開工具界面,將會出現數值滾動條。
    滾動條效果

參數目錄、灰色輸入框等的創建並不能在腳本工具的屬性下的Parameters中設置,而需要修改其Validation,什麼是腳本工具的Validation呢?ArcGIS官方文檔解釋如下:

可以爲腳本工具對話框提供自定義行爲,如啓用和禁用參數、提供默認值和更新字符串關鍵字等。

也就是說,我們們可以通過Vallidation僅僅在工具界面來實現參數之間的交互。

4. 創建灰色輸入框

例如我想要當“這是一個選擇框”被勾選時,“這是一個數值滾動條”參數才能設置,否則將不能設置,此參數變爲灰色。具體代碼和操作如下:

  1. 打開“測試”腳本工具的屬性,切換至Validation欄,選擇其右下角“Edit”,將默認以記事本形式打開Validation中的腳本(當然如果你覺得記事本查看不方便,可以將此文檔另存爲.py格式文件,以其它代碼查看器查看),這裏我另存之後用idle打開查看的。
    創建灰色輸入框
  2. 修改 def updateParameter(self) 方法。
    修改def方法
  3. 將上述代碼複製至Validation中,即可實現。
    查看效果1
  4. 嘗試一下效果。
    查看效果2

6. 創建參數目錄

參數目錄可以使得參數存放在一個目錄下進行收展,例如,我現在需要將我的第一個參數和第二參數都放在一個參數目錄下面,然後將目錄收起來,打開工具時可以點擊然後展開查看。

  1. 在Validation中的def updateParameter(self)方法
    修改def方法
  2. 將上述代碼複製至Validation中,即可實現
    查看效果

7. Tips

ArcGIS中有些工具是可以挖掘的!!!ArcGIS的工具主要分爲Tool類和Script類,我們要學會查看ArcGIS自帶的工具的Properties 。

  • Tool就是一個錘子形狀的工具
    Tool
    這種工具你查看它屬性時只有General和Help,像Source、Parameters和Validation是沒有的,已經被封裝的:
    Tool的Properties
  • Scripts類型的工具是通過腳本添加來實現的:
    Scripts
    是可以查看它的完整屬性的,可以從這裏面觀察和學習:
    Scripts的Properties
    那麼問題來了,在Scripts類型中的工具我們並不能真正查看裏面的參數設置之類的,因爲它是灰色的。
    Scripts屬性灰色
    怎麼辦呢?敲黑板!!!我們可以選擇把腳本重新拷貝一份到另外一個自己建立的工具箱下面,就可以了。
    Scripts屬性正常
    然後就可以解鎖多種工具樣式新姿勢!…

    –未經作者允許禁止轉載。–

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章