中文国产日韩欧美视频,午夜精品999,色综合天天综合网国产成人网,色综合视频一区二区观看,国产高清在线精品,伊人色播,色综合久久天天综合观看

如何在ArcGIS for Desktop中實現(xiàn)批量任務(wù)? -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.szmdbiao.com - 電腦資料】

    ModelBuilder 是 ArcGIS for Desktop 產(chǎn)品中最可愛的功能之一,它可以盡可能免代碼地將我們從重復(fù)勞動中解放出來,

如何在ArcGIS for Desktop中實現(xiàn)批量任務(wù)?

。使用 ModelBuilder 的過程常常被比喻為“搭積木”,我們只需要拿著 ArcGIS for Desktop 中為我們提供的“積木”去搭建滿足于自己的特定工作流模型。

    再打個比方,我們要實現(xiàn)的某個功能比作是自己做面包。首先要準(zhǔn)備食材,例如面粉、牛奶、雞蛋、黃油、糖、鹽、酵母,類比為地理數(shù)據(jù); 食材齊備了,就可以順序開始和面、發(fā)酵、烘焙,這些工作由特定的器具承擔(dān),例如各種烘焙工具、烤箱,就好比ArcGIS提供的工具,例如 ArcToolbox中的工具們; 面包制作過程中可以根據(jù)自己口味,規(guī)定發(fā)酵時間、控制糖和鹽的多少等,這就類比為工具的自定義參數(shù)。

    如果自己享受整個烘焙的過程,不厭其煩地面面俱到,那大可維持現(xiàn)狀;可是如果你覺得做面包是個體力活,你只是想吃到自家面包,而希望把做面包的過程“外包”出去,那么面包機(jī)的市場就來了。這篇blog就和大家說說如何制作“面包機(jī)”。

1 明確需求

    我們從一個簡單常見的實例開始……

    需求:現(xiàn)有一些表示各種研究對象的地理數(shù)據(jù),小明希望把所有研究數(shù)據(jù)變換到需要的坐標(biāo)系統(tǒng),并且全部裁剪至研究范圍。

    如果只有一份數(shù)據(jù),小明會不假思索的找到 ArcToolbox中的 Project和Clip工具,順序執(zhí)行即可解決問題;如果是3+份數(shù)據(jù),小明可能會想,該做個工具了。

2 構(gòu)建工作流

    從【地理處理】菜單,打開ModelBuilder,依次拖拽和連接 Project 和 Clip 兩個工具。Project 工具的輸出作為 Clip 工具的輸入。

   

    雙擊工具可以打開工具繼續(xù)填補(bǔ)工具需要的參數(shù),直至Model因參數(shù)完全而變成彩色。

   

    <喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KCjxoMSBpZD0="3-使用迭代器">3 使用迭代器

    前一步的工具已經(jīng)滿足一次任務(wù)的需要了,接著就是解決批量處理的問題。ModelBuilder提供了一些額外的自帶工具來滿足我們的一些高級需求,其中一類就是迭代器,它用來實現(xiàn)循環(huán)。

    在這個例子中,需要遍歷的對象是表示各種研究對象的要素類,因此選擇 迭代要素類 / Iterate Feature Classes,

電腦資料

如何在ArcGIS for Desktop中實現(xiàn)批量任務(wù)?》(http://www.szmdbiao.com)。當(dāng)然也可以根據(jù)自己的實際需求選擇其他迭代器。

   

    接下來就是把迭代器與工具串聯(lián)起來。首先,雙擊迭代器的六邊形為迭代器設(shè)置工作空間,即地理數(shù)據(jù)庫/GDB,或者文件夾目錄(例如shapefile所在的目錄)。這樣,迭代器會在指定的工作空間遍歷要素類。刪除現(xiàn)有Project工具的輸入數(shù)據(jù),將迭代器的輸出數(shù)據(jù)連接到Project工具。

   

   

    工具基本準(zhǔn)備完畢,但是還差了重要的一步。目前,最后的輸出數(shù)據(jù)是常量,也就是說,即使前面的工具執(zhí)行了N次,那結(jié)果都將被同名覆蓋。那么,行內(nèi)變量就顯出用武之地了。

    迭代器每次遍歷到一個要素類,會返回一個 Name,內(nèi)容是當(dāng)前要素類的名稱,這個Name就是行內(nèi)變量。引用的方法就是使用百分號括起來,即%Name%。

    輸出數(shù)據(jù)設(shè)置示例:

   

    至此我們就完成了一次批量任務(wù)。

4 復(fù)用工具

    如果我們以后想按照這個相同的需求處理數(shù)據(jù),完全可以將其做成模型工具。將輸入數(shù)據(jù)和輸出數(shù)據(jù)設(shè)置為模型變量,我們就可以在“運行”狀態(tài)下使用。

    設(shè)置方法,在需要作為參數(shù)方便后續(xù)修改的項目上右鍵,勾選 “模型參數(shù)”即可,然后項目的頭上頂了個“P”,( ̄▽ ̄)”。

   

    將模型保存至工具箱后,雙擊運行工具,F(xiàn)在就可以把它當(dāng)成“面包機(jī)”,放入食材,等面包即可。

   

5 注意事項

    下面是些有用的提示,F(xiàn)YI:

    每個模型僅可使用唯一一個迭代器。如果模型中已經(jīng)存在一個迭代器,那么用于添加迭代器的菜單就不可用了。這是限制之一。

    如果將含有迭代器的模型導(dǎo)出為 Python 腳本,則導(dǎo)出的腳本中將不會包括迭代邏輯。這是限制之二。Python中有l(wèi)ist函數(shù),也可以實現(xiàn)類似的需求,但是需要重寫。

    盡管Model可以嵌套調(diào)用,但是迭代器的嵌套循環(huán)邏輯不佳,不建議使用。如果需要實現(xiàn)嵌套循環(huán),強(qiáng)烈建議使用python腳本。例如,實現(xiàn)遍歷工作空間內(nèi)每個要素類中的每個要素(記錄)這樣的需求,可以使用 ArcPy中的函數(shù)ListFeatureClassesSearchCursor來實現(xiàn)。

最新文章