亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ArcGIS ModelBuilder模型設(shè)計方法在影像解譯中的應(yīng)用

        2015-12-14 01:51:06張建新
        測繪工程 2015年8期
        關(guān)鍵詞:腳本柵格工具

        張建新,紀 凱

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

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

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

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

        1 ModelBuilder設(shè)計模型的技術(shù)與方法

        1.1 ModelBuilder設(shè)計模型的方法

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

        圖1 模型的設(shè)計流程

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

        1.2 模型程序的控制技術(shù)

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

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

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

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

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

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

        圖2 迭代與分支的應(yīng)用

        1.3 利用python擴展模型功能

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

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

        1)Python作為腳本工具的應(yīng)用。

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

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

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

        圖3 Python嵌入內(nèi)置工具的應(yīng)用

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

        2 ModelBuilder在影像解譯工程中的應(yīng)用

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

        2.1 柵格影像預處理

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

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

        圖4 影像自動裁切的方法

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

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

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

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

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

        在柵格影像預處理中,絕大多數(shù)的處理工作都可以通過模型程序?qū)崿F(xiàn)自動化操作。模型設(shè)計的總體方法與圖4、圖5類似。

        2.2 矢量數(shù)據(jù)編輯與出圖

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

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

        2.3 數(shù)據(jù)統(tǒng)計

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

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

        3 ArcObject與ModelBuilder的對比

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

        表1 某影像解譯項目工作情況統(tǒng)計表

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

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

        表2 ArcObject與ModelBuilder的對比

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

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

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

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

        4 結(jié)束語

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

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

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

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

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

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

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

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

        猜你喜歡
        腳本柵格工具
        酒駕
        基于鄰域柵格篩選的點云邊緣點提取方法*
        波比的工具
        安奇奇與小cool 龍(第二回)
        波比的工具
        數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
        電子測試(2018年14期)2018-09-26 06:04:24
        快樂假期
        中學生(2017年19期)2017-09-03 10:39:07
        “巧用”工具
        讀者(2017年18期)2017-08-29 21:22:03
        不同剖面形狀的柵格壁對柵格翼氣動特性的影響
        基于CVT排布的非周期柵格密度加權(quán)陣設(shè)計
        雷達學報(2014年4期)2014-04-23 07:43:13
        国产激情视频在线| 欧美性生交大片免费看app麻豆 | 国产高清在线精品一区app| 国产一区二区在线视频| av无码精品一区二区三区四区| mm在线精品视频| 色噜噜精品一区二区三区 | 亚州av高清不卡一区二区| 国自产拍偷拍精品啪啪一区二区| 帮老师解开蕾丝奶罩吸乳视频 | 91桃色在线播放国产| 久久熟妇少妇亚洲精品| 男女猛烈xx00免费视频试看| 天堂在线www中文| 人妻中文字幕av有码在线| 第一九区另类中文字幕| 国产精品久久久久久人妻无| 亚洲国产精品成人无码区| 国产人成精品免费视频| 无码中文字幕av免费放| 亚洲av高清在线一区二区三区| 亚洲第一女人的天堂av| 亚洲第一狼人天堂网亚洲av| 国产熟妇按摩3p高潮大叫| 不卡视频一区二区三区| 日本一区二区三本视频在线观看| 亚洲乱妇熟女爽到高潮视频高清| 成人影院yy111111在线| 久久精品国产夜色| 亚洲AV无码久久久久调教| 男女一区视频在线观看| 中文字幕一区二区三区久久网| 亚洲日韩国产一区二区三区在线 | 91青青草免费在线视频| av在线天堂国产一区| 国产成人综合亚洲看片| √天堂中文官网8在线| 亚洲欧美日韩中文v在线| 男女午夜视频一区二区三区| 日韩精品人妻系列中文字幕| 人妻 偷拍 无码 中文字幕|