999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ArcGIS ModelBuilder模型設計方法在影像解譯中的應用

2015-12-14 01:51:06張建新
測繪工程 2015年8期
關鍵詞:程序功能模型

張建新,紀 凱

(1.安徽省第四測繪院,安徽 合肥230031;2.安徽交通職業技術學院,安徽 合肥230051)

在影像解譯過程中,大量的數據分析、處理工作需要通過GIS軟件來完成。目前常用的GIS軟件有ERDAS、ArcGIS等,這些軟件提供了功能強大的分析和處理工具;其中ArcToolbox的各種工具已經被廣泛地應用于實際生產中。然而在應用過程中,需要把多種工具組合在一起,才能有效地完成某項具體的任務。另外待處理數據有著類型相同、數量龐大的特點,如果每一項操作、每一個數據都需要人工干預,勢必會降低生產效率;而且人工管理繁雜的原始資料和過渡數據更容易產生錯誤。

ModelBuilder是一種可視化編程環境,直接利用ArcGIS平臺中已有的各類工具,把幾種工具按一定的規則組合起來,前一個工具的輸出作為后一工具的輸入,最終形成一個流程化的模型程序。目前基于ArcGIS的開發研究主要集中在ArcObject和ArcEngine功能應用方面;而ModelBuilder具有可視性、快捷性、組合性等特點,非常適合實際生產中,可根據具體需求快速地構建模型程序。因此有必要深入研究ModelBuilder并推廣到生產單位中。

本文利用影像解譯研究ModelBuilder設計模型的方法以及如何有效地控制模型程序的正常運行;通過實際應用去驗證模型程序在生產中所發揮的作用;通過對比試驗,分析ArcObject和 Model-Builder各自特點及適用范圍。

1 ModelBuilder設計模型的技術與方法

1.1 ModelBuilder設計模型的方法

ModelBuilder設計模型的主要步驟如圖1所示。其中工具和腳本是模型實現具體功能的核心部分,一個模型程序由多個工具或腳本組成。ModelBuilder的優勢在于能直接使用ArcGIS提供的所有工具(包括Esri網站可供下載的工具),無需編寫大量的代碼便可實現強大功能。每一個工具需要有一定的輸入、輸出變量和參數才能正常運行。一般情況下前一個工具的輸出可作為后一工具的輸入,第一個工具的輸入和最后一個工具的輸出可作為人機交互的接口,也可作為該模型與其它模型連接的接口。

圖1 模型的設計流程

控制工具是控制整個模型有序運行的必要手段;如同其他編程語言一樣,ModelBuilder也提供了判斷分支、迭代循環、前提條件等工具或腳本。模型中所有工具、腳本、變量、參數等要按一定的順序連接起來,經過反復驗證和調試成最終的成果模型。模型程序可保存在ArcToolbox工具箱中,便于隨時使用。在設計新模型時,可將已有模型作為模型工具重復使用,不必重新設計。

1.2 模型程序的控制技術

模型的核心部分是一些ArcGIS內置的處理工具或分析工具,通過工具的功能組合實現模型的功能。ArcGIS所提供的工具基本可以滿足實際工程的需要,因此絕大多數模型的設計重點不是研究如何實現具體的功能,而是如何控制一系列工具,使其有序的運行。

ModelBuilder提供了多種迭代器,這些迭代器相當于編程語言中的循環指令(如For,While等),其作用是控制模型重復執行任務。例如:“要素類迭代器”將工作空間或數據集中的所有要素類分別提取并執行相應操作,不斷循環直至所有的要素類被處理完成。因此在模型中的適當位置放置迭代器,對于模型實現批處理功能有十分重要的意義。但ModelBuilder并不提供迭代嵌套功能,如需對每個要素類中所有要素分別提取,就不能把“要素迭代器”嵌入“要素類迭代器”中使用。經過試驗分析,通過以下方法可以解決ModelBuilder循環嵌套的問題。將“要素迭代器”所實現的功能生成一個模型工具,設置好接口參數;使用“要素類迭代器”迭代預先構建的模型。

If-then-else邏輯看似簡單,功能卻十分強大,根據不同條件執行不同的操作。然而ModelBuilder并沒有提供條件分支工具。通過分析研究,該功能可以通過編寫腳本工具或利用“計算值”工具輸出布爾值的兩種方法來實現。

以上為python腳本工具的核心代碼,判斷field_value值的兩種情況,分別設置兩個布爾型參數。應用時把腳本工具添加到模型中,通過兩個布爾型參數的“true”或“false”來控制程序的分支路線。

運用迭代器和分支腳本控制模型運行實例如圖2所示,其功能是:“要素迭代器”提取每一個線要素,判斷其字段值,確定是否應閉合,如需要則執行閉合操作。

除了常用的循環、判斷工具外,ModelBuilder還提供了一些其它的程序控制工具,如“合并分支”、“停止”等,由于使用起來比較簡單,這里就不再贅述。

圖2 迭代與分支的應用

1.3 利用python擴展模型功能

Python是一種不受局限、跨平臺的開源編程語言,它功能強大且簡單易學。Python已延伸到Arc-GIS中,成為了一種用于數據分析、數據轉換、數據管理和地圖自動化的語言。ArcPy為用戶提供了使用Python語言操作所有地理處理工具的入口,并提供了多種有用的函數種類,用于處理和詢問GIS數據。使用Python和ArcPy,可以開發出大量的用于地理處理的實用程序。

Python腳本可以不依賴ArcGIS獨立運行,可以作為腳本工具保存到工具箱中使用,也可以嵌入到模型工具中隨整個模型一起運行。下面具體分析Python腳本在ModelBuilder的應用的兩種方式。

1)Python作為腳本工具的應用。

以上部分代碼的作用是從一個工作空間中,提取各種要素類,然后判斷該要素類是否存在“NAME”字段,如存在,即把變量“intext”的值賦給該字段。如此不斷循環,直到所有的“NAME”字段都被賦值;“intext”值可以是固定值,也可以是某一個或某幾個字段計算出的值。原本非常煩瑣的字段處理過程,僅通過幾句簡潔的代碼就能輕松實現。因本示例程序需要引用到ArcPy類庫,還應在程序之前加入“import arcpy”代碼。

如果需要將上述Python程序作為腳本工具供ModelBuilder調用,還應設置好接口參數。一般利用“arcpy.GetParameterAsText()”函數來實現接口參數的設定。

2)Python嵌入內置工具的應用。在“計算字段”工具的“代碼塊(可選)”控件中填寫Python腳本,在“表達式”控件中加入變量運算式;以此實現在“代碼塊”程序的控制下,根據“表達式”計算出不同的結果,如圖3所示。

圖3 Python嵌入內置工具的應用

通過實例分析,Python腳本非常靈活地應用在ArcGIS的各個內置工具中;對于擴展ModelBuilder功能有著十分重要的意義。

2 ModelBuilder在影像解譯工程中的應用

在當前測繪生產中,普遍采用“內業定位、外業定性”生產流程,因此影像解譯對于測繪生產有著非常重要的意義。影像解譯的整個生產環節包括:柵格影像預處理、柵格影像解譯、矢量數據提取、圖形編輯、屬性錄入等;其中每一個生產環節都有各自的特點,有些環節依靠計算機自動化處理數據,有些環節依靠人工判讀和人機交互處理數據。如何減少人機交互操作量,實現自動化處理,也是現在測繪科研的一個方向。

2.1 柵格影像預處理

柵格預處理工作包括投影轉換、格式轉換、波段合成、重采樣、鑲嵌與裁剪、DEM正射校正等。柵格影像預處理工作涉及到海量影像數據;有著數據處理時間長,對計算機性能要求高的特點;但其工作流程相對單一,非常適用于計算機程序化地批量處理。利用ModelBuilder把ArcToolbox中現有的柵格處理、分析工具,按一定的方法連接起來,構成自動化處理的模型。

在影像預處理工作中,需要把一整幅影像按照一定的范圍線,裁切成多塊圖像,供后期解譯時使用,如圖4所示。

圖4 影像自動裁切的方法

模型所示:分塊工作空間中存放了多個裁切范圍面,迭代器分別提取并提供給“裁切工具”作為輸入參數,裁切工具同時收集被裁切影像等參數,然后開始執行裁切任務,最終把裁切好的影像存放在輸出工作空間中,如此循環直至裁切完成。

使用模型,避免手工重復操作,在計算機性能和存儲空間滿足要求前提下,可利用空閑時間自動化地處理數據。

矢量分割模型功能:將CAD結合表中圖號作為label點,利用裁切線自動構面,再通過ArcToolbox的“Split”空間分析工具,把整個SHP面分割成獨立裁切面,自動命名并自動存儲,如圖5所示。

圖5 自動獲取裁切面的方法

把圖4和圖5兩個模型再通過ModelBuilder組合起來形成新的模型,操作起來會更加方便、快捷。如果需要實現多幅影像批量裁切功能,還應在模型中加入“柵格迭代器”。

在柵格影像預處理中,絕大多數的處理工作都可以通過模型程序實現自動化操作。模型設計的總體方法與圖4、圖5類似。

2.2 矢量數據編輯與出圖

影像解譯后期工作主要是數據編輯、檢查修改和屬性錄入等;這些數據處理過程可以由Model-Builder為具體工作設計模型程序。例如:自動封閉線模型、面裂隙檢查模型、自動消除懸掛與偽節點模型、屬性自動錄入模型等。通過ArcToolbox中的“編輯工具”、“拓撲工具”、“分析工具“、“字段工具”等常用工具的組合,再配合控制工具及Python腳本實現上述模型功能。

在影像的矢量提取工作完成之后,還需要利用整個測區的柵格影像和矢量成果制作1∶2 000分幅調繪底圖。調繪底圖內容包括高分辯率影像、圖斑邊線、注記、界線等。具體工作包括柵格和矢量數據的裁切、屬性標注、線寬、線型修改、圖外整飾等。以上工作可以使用ModelBuilder設計出自動分幅、自動符號化、自動整飾等模型程序。

2.3 數據統計

在影像解譯工程中,除了數據處理、空間分析、地圖制圖外,統計工作也非常重要,成果中往往包括大量的統計表格。

某影像解譯項目的工作情況統計見表1,由ModelBuilder設計的模型根據成果矢量數據和任務分配表自動生成。模型中應用了“增加字段”、“空間連接”、“生成面要素”等ArcGIS內置工具和python腳本工具等。此類模型可以快速地提取信息,生成工作量統計表、元數據表、其它統計表等。

3 ArcObject與ModelBuilder的對比

ArcObject是ESRI基于微軟組件對象模型技術所構建的一系列COM組件集,用戶可以使用任何支持COM的編程語言(如VB、VC++、C#)進行開發。ArcObject提供許多ArcGIS底層的基本功能,可以把這些基本功能組合集成一個強大的ArcObject功能。ArcObject可以對ArcGIS進行底層控制且更加靈活;但ArcObject有繁多的接口、對像模型圖,讓學習ArcObject變得非常困難。另外開發ArcObject應用的人員還應具備多年程序開發經驗。

表1 某影像解譯項目工作情況統計表

ModelBuilder是基于可視化的開發工具,也是一種高度集成化的開發方法。開發人員不需要花費大量的時間去學習,也不需要花費大量時間編寫和調試程序。實踐證明只要利用幾天時間去學習ArcGIS幫助文檔,即便是非程序員也可以輕松地構建成出實用的模型程序,特別適合生產任務緊急時使用。兩種開發方法的對比見表2。

以“自動封閉線”功能作為試驗對象,使用ModelBuilder和ArcObject這兩種開發方法分別設計出程序,通過對比分析,再說明各自方法的特點。使用ModelBuilder的設計方法在圖2中已說明,這里不在贅述,以下是利用ArcObject SDK和C#編寫的核心代碼:

表2 ArcObject與ModelBuilder的對比

該程序應用了ImxDocument、IenumFeature、Ifeature、Ipolyline、IpointCollection等接口類。其核心部分是:用接口IPointCollection中的方法“AddPoint(inPoint,[,before][,after])”,為 Polyline要素增加頂點。

通過分析:ModelBuilder設計的模型有著結構清晰,操作簡單的優點。ArcObject設計程序其優點在于豐富的接口類和底層控制能力,可以實現許多ModelBuilder無法實現的功能;例如在人機交互式操作方面,ModelBuilder很難實現響應用戶隨時發出的指令和動作。

使用以上兩種方法分別處理相同的數據,以此作為各自運行效率的對比。在約150條左右的Polyline線自動封閉試驗中:使用模型程序,數據處理總花費時間約為56s;使用ArcObjects程序,數據處理總花費時間約為5s。ArcObjects程序處理數據更快是因為ArcObjects直接從底層讀取并修改數據;而模型程序每操作一個要素,都要調用模型中所有的工具。

因此ArcObjects SDK和ModelBuilder作用互補,ArcObjects可通過新的行為來擴展ArcGIS,而ModelBuilder是專為自動執行任務而設計的。

4 結束語

本文研究ModelBuilder設計模型的方法,把所設計好的模型程序應用于影像解譯的實際生產過程中,ModelBuilder無論在提高地理數據處理效率,還是在擴展ArcGIS功能方面都有著十分重要的意義。在研究過程中,本文對比分析了利用ModelBuilder構建的模型與利用ArcObjects設計的應用程序之間的差異;筆者也對如何有效地運用兩種程序方案為測繪生產服務提出了自己的觀點。

[1]任思思,張學之,張禹.地理國情普查影像解譯自動化方案研究[J].測繪與空間地理信息,2014,37(6):44-46.

[2]杜蕾.遙感影像解譯在地理國情普查中的應用[J].測繪工程,2014,24(6):46-49

[3]高燕,周成虎,蘇奮振.基于OLI影像多參數設置的SVM 分類研究[J].測繪工程,2014,24(6):1-5

[4]翁代云,楊莉.人工智能技術在遙感圖像分類中的應用[J].計算機仿真,2012(6):240-244.

[5]傅仲良.ArcObject二次開發教程[M].北京:測繪出版社,2008.

[6]牟乃夏,劉文寶,王海銀,等.ArcGIS10地理信息系統教程—從初學到精通[M].北京:測繪出版社,2012.

[7]呂偉臣,霍言,呂寶臣.Visual C#2005入門與提高[M].北京:清華大學出版社,2006.

猜你喜歡
程序功能模型
一半模型
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
關于非首都功能疏解的幾點思考
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
3D打印中的模型分割與打包
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 亚洲国内精品自在自线官| 亚洲综合国产一区二区三区| 香蕉蕉亚亚洲aav综合| 国产免费观看av大片的网站| 亚洲精品国产综合99| 国产精品亚洲片在线va| 久久一色本道亚洲| 日本影院一区| 韩国v欧美v亚洲v日本v| 久草视频一区| 国产精品三级av及在线观看| 91香蕉视频下载网站| 久久久久无码国产精品不卡| 91精品福利自产拍在线观看| 亚洲一级毛片免费观看| 91精品aⅴ无码中文字字幕蜜桃 | 精品伊人久久大香线蕉网站| 国产中文一区a级毛片视频 | 欧美a在线视频| 亚洲欧美成人网| 婷婷午夜天| 人妻精品久久无码区| 曰韩人妻一区二区三区| 亚洲综合网在线观看| 国产国语一级毛片在线视频| 精品夜恋影院亚洲欧洲| 国产成人精品亚洲77美色| 在线免费a视频| 激情无码视频在线看| 亚洲人成网站观看在线观看| 国产黑丝视频在线观看| 国产粉嫩粉嫩的18在线播放91| 国产凹凸一区在线观看视频| 亚洲aⅴ天堂| 国产高清无码麻豆精品| 无遮挡一级毛片呦女视频| 久久精品国产精品国产一区| 四虎国产在线观看| 国产在线观看第二页| 亚洲一级毛片免费观看| 蜜臀av性久久久久蜜臀aⅴ麻豆| 性喷潮久久久久久久久| 国产新AV天堂| 天天色综网| 青草精品视频| 97se亚洲综合在线天天| 狠狠色成人综合首页| 久草热视频在线| 中文字幕在线日本| 亚洲天堂在线免费| 伊人天堂网| 久久久久久国产精品mv| 国产成人精品高清不卡在线| 99久久精品视香蕉蕉| 久久亚洲国产最新网站| 九九热在线视频| 超碰aⅴ人人做人人爽欧美 | 香蕉在线视频网站| 欧洲免费精品视频在线| 女人爽到高潮免费视频大全| 91在线国内在线播放老师| 日韩黄色在线| 色久综合在线| 97在线观看视频免费| 国产在线观看第二页| 亚洲综合色婷婷| 无码啪啪精品天堂浪潮av| 国产精品永久在线| 国产亚洲欧美日韩在线一区二区三区| 亚洲色无码专线精品观看| 国产在线视频二区| 欧美精品成人| 国产精品香蕉在线| 午夜无码一区二区三区在线app| 91美女视频在线| 毛片网站在线看| 精品久久久无码专区中文字幕| 中国毛片网| 强奷白丝美女在线观看| 99免费视频观看| 久久96热在精品国产高清| 青青青国产免费线在|