ArcGIS建模工具中字符串的坑

模型構(gòu)建器中的字符串要手動(dòng)加引號(hào)??!

一、系統(tǒng)環(huán)境

  • Windows 10 64bit(OS版本:1709)
  • ArcGIS 10.2 Desktop

二、任務(wù)目標(biāo)

任務(wù)可以用如下圖表述:


0.建模任務(wù).png
  1. 有一些以Class_年份.tif格式命名的柵格圖層
  2. 需要將這些柵格圖層與斜坡單元矢量(該圖層一直保持不變)處理后,結(jié)果也按年份命名為:Zonst_年份
    很簡(jiǎn)單的一個(gè)需求

三、使用建模工具搭建流程

ArcGIS主菜單【地理處理】-【模型構(gòu)建器】,打開模型構(gòu)建器對(duì)話框。

3.1 解析路徑

(1)首先,需要將Class_2000.tif分解,將年份提取出來??梢允褂?strong>解析路徑工具。方法是:模型構(gòu)建器對(duì)話框【插入】-【僅模型工具】-【解析路徑】

解析路徑工具并不是工具箱中的工具,而僅僅是建模工具中可用的工具。

(2) 然后,創(chuàng)建一個(gè)變量,作為模型的輸入圖層。這里選擇柵格圖層,因?yàn)榇幚淼臄?shù)據(jù)是柵格圖層。

(3)打開解析路徑處理單元,選擇剛才創(chuàng)建的變量,返回值選擇name(結(jié)果是Class_2000)

過程如下圖所示:


1.解析路徑.gif

(4)解析路徑的結(jié)果是可以作為行內(nèi)變量使用的,即可以使用%變量名%的形式引用。所以,我們將解析路徑的結(jié)果重命名為Value。

3.2 計(jì)算值

這個(gè)工具,是用來對(duì)某些變量作一些計(jì)算的。解析路徑得到結(jié)果Class_2000后,其實(shí)只需要后面的:2000
所以,可以使用字符串切片功能,返回后面4個(gè)字符串。即s[-4:]
(1)模型構(gòu)建器對(duì)話框【插入】-【僅模型工具】-【計(jì)算值】
(2)打開計(jì)算值處理單元,在代碼塊中輸入:

def getYear(s):
    return s[-4:]

(3)在表達(dá)式中輸入:getYear("%Value%"), 注意,%Value%的值是Class_2000,為了轉(zhuǎn)變?yōu)樽址?,必須在它外面再加一層引?hào),坑就在這里?。。?!,字符串居然還要自己加引號(hào),我也是醉了!

(4)單擊確定。由于提取年份數(shù)值的操作是必須有解析路徑的結(jié)果,即必須現(xiàn)有Value值,才能提取后面4個(gè)字符嘛!所以,在“計(jì)算值”處理單元上右鍵單擊,【屬性】-【前提條件】,勾選“Value”值。 然后保存模型即可。


2.計(jì)算值.gif

3.3 添加地理處理工具:以表格顯示分區(qū)統(tǒng)計(jì)

剩下的事情就好辦了。添加【以表格顯示分區(qū)統(tǒng)計(jì)】到建模器,
設(shè)置相關(guān)參數(shù)。記得在輸出表中引用在【計(jì)算值】單元中得到的結(jié)果,引用方式是%變量名%。
具體操作如下:


3.地理處理.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容