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

        ?

        基于模型構(gòu)建器與AE的衛(wèi)片執(zhí)法自動(dòng)化套合圖研究與應(yīng)用

        2021-11-10 06:00:44張笑涵
        城市勘測 2021年5期
        關(guān)鍵詞:衛(wèi)片圖斑工具

        張笑涵

        (沈陽市勘察測繪研究院有限公司,遼寧 沈陽 110004)

        1 引 言

        模型構(gòu)建器是ArcGIS內(nèi)部包含的可視化編程工具。它以工作流的方式呈現(xiàn),幾乎無須編程語言,即可實(shí)現(xiàn)工具自動(dòng)化的功能,其各個(gè)分項(xiàng)工具可修改其參數(shù),內(nèi)置的迭代器,可對(duì)要素、行、字段值、多值、數(shù)據(jù)集、要素類、文件、柵格、表、工作空間進(jìn)行迭代,還可用編程思維的For循環(huán),While循環(huán)進(jìn)行批處理。模型構(gòu)建器的基本單位為變量和方法,變量可任意從ArcMap中拖拽(相對(duì)路徑),也可從ArcCatalog中加載(絕對(duì)路徑)。方法即為ArcGIS工具箱(俗稱紅盒子)中的任意工具,其參數(shù)可自定義,可關(guān)聯(lián)迭代結(jié)果,可互為前提條件。整個(gè)模型構(gòu)建器應(yīng)用起來可實(shí)現(xiàn)較為復(fù)雜的數(shù)據(jù)處理任務(wù),如將變量設(shè)為模型參數(shù),整個(gè)程序打包后可供他人使用,還可將多個(gè)模型構(gòu)建器串聯(lián),實(shí)現(xiàn)更為復(fù)雜的功能。

        ArcGIS Engine是用于構(gòu)建定制應(yīng)用的一個(gè)完整的嵌入式的GIS組件庫,使用ArcEngine可以創(chuàng)建獨(dú)立界面版本(stand-alone)的應(yīng)用程序,或者對(duì)現(xiàn)有的應(yīng)用程序進(jìn)行擴(kuò)展,為GIS和非GIS用戶提供專門的空間解決方案。

        本文通過將上述兩種快速解決問題的工具相結(jié)合,各取所長,形成一套自動(dòng)化的成果輸出程序,不僅將工作效率提高,也為日后的相關(guān)項(xiàng)目提供了經(jīng)驗(yàn)。

        2 需求分析

        為適應(yīng)數(shù)字城市建設(shè)的需求,滿足經(jīng)濟(jì)社會(huì)和人民生活的需要,推動(dòng)城市規(guī)劃、設(shè)計(jì)、管理及建設(shè)的需要,本市近些年加大了衛(wèi)星遙感監(jiān)控?cái)?shù)據(jù)處理與應(yīng)用服務(wù)項(xiàng)目的重視程度,對(duì)監(jiān)測圖斑中涉及違法建設(shè)、違法破壞耕種層等行為,也加大了監(jiān)察和執(zhí)法力度。

        本次數(shù)據(jù)成果中,內(nèi)業(yè)數(shù)據(jù)包括前期處理及后期成果建檔,數(shù)據(jù)處理包括根據(jù)測量坐標(biāo)值,影像底圖數(shù)據(jù),進(jìn)行監(jiān)測變更宗地圖繪制,求取違法用地面積或指定區(qū)域范圍面積,制作違法影像宗地圖、照片成果圖、測繪報(bào)告編制、衛(wèi)片檔案圖冊(cè)制作等。后期提交成果包括以縣區(qū)行政區(qū)域?yàn)閱挝坏倪b感圖斑衛(wèi)片影像及相關(guān)矢量數(shù)據(jù)、圖斑核查表、衛(wèi)片檔案及監(jiān)控分析報(bào)告,圖斑核查表包括圖斑明細(xì)、中心點(diǎn)坐標(biāo)(x軸、y軸坐標(biāo)),圖斑號(hào)、圖斑面積等內(nèi)容。

        其中衛(wèi)片檔案圖冊(cè)等相關(guān)圖件包含大量圖形坐標(biāo),并涉及矢量數(shù)據(jù)配圖等工作,因需滿足宗地圖制作的相關(guān)規(guī)范,如圖廓,圖例,指北針,起始坐標(biāo)為左上角等,若人工干預(yù),工作量巨大,因此考慮自動(dòng)化成圖,樣圖如圖1所示:

        3 模型構(gòu)建器部分的應(yīng)用

        源數(shù)據(jù)為國家下發(fā)監(jiān)測圖斑,即為矢量面狀shp數(shù)據(jù),要提取其各拐點(diǎn)坐標(biāo),需使用“要素折點(diǎn)轉(zhuǎn)點(diǎn)”工具,并使用“添加XY坐標(biāo)”工具添加其坐標(biāo),添加若干文本及雙精度字段供后期AE程序使用,其中關(guān)鍵字段為POINT_Y與POINT_X之間的差值,根據(jù)差值的大小,可判斷出其相對(duì)左上方的ID號(hào)。

        圖1 衛(wèi)片執(zhí)法套合圖(樣例)

        處理后,可通過“刪除相同的”工具,對(duì)點(diǎn)狀數(shù)據(jù)進(jìn)行處理,如面狀數(shù)據(jù)有重復(fù)拐點(diǎn),可在這一步中將其刪除,需要注意的是,處理后的數(shù)據(jù)因ID號(hào)不連貫,可將數(shù)據(jù)進(jìn)行“要素類至要素類”工具處理,重新生成ID索引(為后期數(shù)據(jù)連貫讀取做準(zhǔn)備)。

        整套流程可集成于一個(gè)模型構(gòu)建器中,輸入端可設(shè)為模型參數(shù)供用戶選擇,盡量將參數(shù)設(shè)置為1個(gè)~2個(gè),方便用戶操作。本文主要強(qiáng)調(diào)解決問題的快速性,讀者可自行擴(kuò)展,如將C#結(jié)合AE,在其GP組件中將上述命令得以實(shí)現(xiàn)?;蜻\(yùn)用ArcPy,用打包性更完善的python語言編譯。

        4 AE代碼塊中的應(yīng)用

        利用ArcGIS Engine開發(fā)者能將ArcGIS功能集成到一些應(yīng)用軟件。包括核心ArcObjects的功能,是對(duì)AO中的大部分接口、類等進(jìn)行封裝所構(gòu)成的嵌入式組件,其接口、方法、屬性與AO是相同的。不同之處在于開發(fā)環(huán)境,ArcObjects必須依賴ArcGIS Desktop桌面平臺(tái),即購買安裝了ArcGIS Desktop的同時(shí),安裝ArcObjects,才能利用AO進(jìn)行開發(fā);ArcEngine是獨(dú)立的嵌入式組件,不依賴ArcGIS Desktop桌面平臺(tái),直接安裝ArcEngine Runtime和DeveloperKit后,即可利用其在不同開發(fā)語言環(huán)境下開發(fā)。

        本次程序?qū)O相關(guān)組件集成于winform中,并加載Microsoft.Office.Interop.Excel,itextsharp等相關(guān)組件,通過游標(biāo)IFeatureCursor對(duì)mxd中的已加載圖層Layer進(jìn)行字段逐行遍歷,后用feature.get_Value方法將所需字段進(jìn)行提取,用GetMaxValue(list)方法對(duì)坐標(biāo)差值進(jìn)行篩選,取最大值ID暫定為左上角J1起始點(diǎn)。

        界址點(diǎn)成果表核心代碼如下:

        //獲取J1關(guān)鍵id

        queryFilter.WhereClause = "jian = '" + GetMaxValue(list1).ToString() + "'" + " AND ORIG_FID =" + hao;

        IFeatureCursor featureCursor3 = QSZD2.Search(queryFilter,false);

        IFeature feature3 = featureCursor3.NextFeature();

        int guanjianid = Convert.ToInt32(feature3.get_Value(feature3.Fields.FindField(suoyin)).ToString());

        //j賦值

        queryFilter.WhereClause = "ORIG_FID = " + hao;

        IFeatureCursor featureCursor4 = QSZD2.Search(queryFilter,false);

        IFeature feature4 = featureCursor4.NextFeature();

        //excel

        Microsoft.Office.Interop.Excel.Workbook workbook = excel.Application.Workbooks.Open("D:\界址點(diǎn)坐標(biāo)成果表模板.xls",missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);

        Microsoft.Office.Interop.Excel.Worksheet newWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets.get_Item(1);

        for (int i = 1;i <= numall;i++)

        {

        string jhao = "J" + i.ToString();

        queryFilter.WhereClause = "ORIG_FID = " + hao + " AND j ='" + jhao + "'";

        IFeatureCursor featureCursor5 = QSZD2.Search(queryFilter,false);

        IFeature feature5 = featureCursor5.NextFeature();

        double qux = Convert.ToDouble(feature5.get_Value(feature5.Fields.FindField("POINT_X")));

        double quy = Convert.ToDouble(feature5.get_Value(feature5.Fields.FindField("POINT_Y")));

        newWorksheet.Cells[i - 2 + 5,1] = jhao;

        newWorksheet.Cells[i - 2 + 5,2] = qux.ToString("0.000");

        newWorksheet.Cells[i - 2 + 5,3] = quy.ToString("0.000");

        }

        對(duì)于套合圖配圖部分,其主要思路為,通過IFeatureLayerDefinition接口,將指定圖件的ID號(hào)鎖定(也可為其他,但必須唯一值),運(yùn)用IEnvelope接口將目標(biāo)要素縮放,可通過envelope.Expand方法調(diào)節(jié)縮放比例。m_MapDcument.PageLayout as IActiveView方法可將窗口調(diào)整為頁面布局。IFontDisp接口可提供字體調(diào)整方案,包括字體,字號(hào),是否加重等相關(guān)屬性,通過ESRI.ArcGIS.Carto.ITextElement接口將標(biāo)題添加到布局視圖中,位置可事先隨意加載,并調(diào)整到合適位置,在ArcMap中查看其中心點(diǎn)坐標(biāo)。

        成果輸出可將模板另存為mxd格式,也可直接利用圖件輸出接口ESRI.ArcGIS.Output.IExport及相應(yīng)代碼生成pdf圖件。

        套合圖配圖核心代碼如下:

        string zongdicaotupath = @"D:*.mxd";

        IMapDocument m_MapDcument;

        m_MapDcument = new MapDocumentClass();

        m_MapDcument.Open(zongdicaotupath,"");

        int num = 1;

        IFeatureLayer QSZDLayer1 = m_MapDcument.Map[0].get_Layer(1) as IFeatureLayer;

        IFeatureLayer QSZDLayer = m_MapDcument.Map[0].get_Layer(0) as IFeatureLayer;

        IFeatureClass QSZD = QSZDLayer1.FeatureClass;

        IFeatureCursor featureCursor1 = QSZD.Search(null,false);

        IFeature feature = featureCursor1.NextFeature();

        while (feature != null)

        {

        string hao = feature.get_Value(feature.Fields.FindField("OBJECTID")).ToString();

        string hao2 = feature.get_Value(feature.Fields.FindField("JCBH")).ToString();

        string hao3 = feature.get_Value(feature.Fields.FindField("值")).ToString();

        string hao4 = feature.get_Value(feature.Fields.FindField("XMC")).ToString();

        //mxd

        IActiveView activeaaa = m_MapDcument.ActiveView.FocusMap as IActiveView;

        IFeatureLayerDefinition fea_c = QSZDLayer as IFeatureLayerDefinition;

        fea_c.DefinitionExpression = "土地證號(hào) in(" + hao3+")";

        IFeatureLayerDefinition fea_c2 = QSZDLayer1 as IFeatureLayerDefinition;

        fea_c2.DefinitionExpression = "OBJECTID =" + hao;

        activeaaa.Extent = feature.Extent;

        IEnvelope envelope = new EnvelopeClass();

        envelope = activeaaa.Extent;

        envelope.Expand(2,2,true);

        activeaaa.Extent = envelope;

        activeaaa = m_MapDcument.PageLayout as IActiveView;

        }

        5 程序與數(shù)據(jù)的結(jié)合及部署

        程序整合后,要對(duì)其與數(shù)據(jù)庫進(jìn)行關(guān)聯(lián),實(shí)際應(yīng)用過程中可以有兩種方式,不同的方式都有各自不同的效果和優(yōu)點(diǎn)。

        方法一是定義絕對(duì)路徑,即設(shè)置為數(shù)據(jù)源存于C盤或D盤的根目錄(實(shí)際生產(chǎn)中此方法最為常用)。這樣用戶使用時(shí),可將整個(gè)程序包按使用說明置于相應(yīng)盤符下,直接運(yùn)行程序時(shí),軟件會(huì)自動(dòng)讀取絕對(duì)路徑下的數(shù)據(jù)庫,遍歷其中的要素類及要素,得到的分析結(jié)果也會(huì)存于絕對(duì)路徑下的數(shù)據(jù)庫中,方便讀取,查詢。此方法可將一些程序變?yōu)橐绘I式或者導(dǎo)航式的界面,用戶體驗(yàn)簡單,可操作性強(qiáng)。

        方法二是將輸入的要素及過程中的參數(shù)在模型構(gòu)建器中設(shè)置為“模型參數(shù)”,此方法可將程序各項(xiàng)參數(shù)激活,靈活性更高,用戶可以根據(jù)自己的計(jì)算機(jī)容量,數(shù)據(jù)存放路徑等個(gè)人實(shí)際條件,自主選擇相應(yīng)的數(shù)據(jù)來源,使用起來更加人性化。但菜單界面中下拉式菜單,文本框,和文件選擇按鈕較多,可能會(huì)使界面略微復(fù)雜化。

        AE部分的部署,因在winform窗體中編譯,其exe可直接應(yīng)用,用戶自帶ArcGIS環(huán)境即可使用,本文不再贅述。

        6 全流程中注意事項(xiàng)及要點(diǎn)

        (1)模型構(gòu)建器的強(qiáng)大,是建立于要提前熟悉將要使用的具體ArcTools的功能,才能快速組合出工作流。

        (2)如果你已經(jīng)可以熟練使用一些ArcToolbox中的工具,此時(shí)剛開始嘗試模型構(gòu)建器的話,首先應(yīng)該花時(shí)間了解行內(nèi)變量這個(gè)重要概念,并熟悉其語法。

        (3)變量引用依靠圖形中標(biāo)注的名稱,所以最好規(guī)范化,方便后續(xù)通過行內(nèi)變量的方式引用。

        (4)可以通過設(shè)定一個(gè)模型內(nèi)通用的數(shù)據(jù)庫,方便查看中間數(shù)據(jù)以及結(jié)果。在模型中添加一個(gè)孤立的數(shù)據(jù)庫變量就行了,然后通過行內(nèi)變量的方式來引用。

        (5)要十分注意待使用工具的輸入輸出數(shù)據(jù)的格式,由于AecToolbox的包容性比較強(qiáng),可能某一步輸出了一種和預(yù)想不同的數(shù)據(jù)類型(比如你設(shè)計(jì)在某個(gè)gdb數(shù)據(jù)庫中輸出要素類,實(shí)際工具輸出的是shp,但由于gdb數(shù)據(jù)庫的包容性,這一步程序一切正常),且后續(xù)幾步都無異常,但最終卻可能影響結(jié)果。

        (6)迭代是使用模型構(gòu)建器的重要原因之一,一個(gè)模型中只能存在一個(gè)迭代器,但是模型中可以嵌套另一個(gè)存在迭代器的模型,這樣可以實(shí)現(xiàn)迭代的嵌套。

        (7)嵌套模型的要點(diǎn)是,讓存在外循環(huán)的模型的輸出數(shù)據(jù)成為模型參數(shù)(右鍵點(diǎn)擊圖形,設(shè)置模型變量),此時(shí)從Catalog中拖拽該模型到內(nèi)循環(huán)所在模型中的時(shí)候,輸出數(shù)據(jù)可以暴露出來。

        (8)如果模型中的工具需要多個(gè)輸入變量,好像只允許其中一個(gè)變量是通過迭代而來。比如筆者要實(shí)現(xiàn)以下功能,A.gdb和B.gdb兩個(gè)數(shù)據(jù)庫中分別放了a1、a2和b1、b2兩個(gè)要素類,希望通過裁切功能實(shí)現(xiàn)b1和b2分布裁切A.gdb,最終得到A_B1.gdb以及A_B2.gdb。

        (9)由于模型構(gòu)建器中是依靠主流向執(zhí)行的,分支中如果有中間數(shù)據(jù)需要在主流向的后續(xù)工具中使用的話,需要將支線的執(zhí)行優(yōu)先級(jí)提高到后續(xù)工具以上,也就需要用到所謂的“前提條件”連接符。

        (10)路徑解析工具配合行內(nèi)變量可以提高模型的自動(dòng)化程度。

        (11)行內(nèi)變量在一條路徑中只能出現(xiàn)一次。

        (12)textelement等元素添加后需及時(shí)刪除,否則迭代后將積存于頁面布局中。

        (13)圖形索引有時(shí)會(huì)出現(xiàn)OBJECTID_12等情況,需注意調(diào)整。

        7 結(jié) 論

        利用ArcGIS的模型構(gòu)建器(Model Builder)可以方便、高效地實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)化處理。結(jié)合強(qiáng)大的C#+AE語言代碼塊,可以對(duì)各類數(shù)據(jù)進(jìn)行數(shù)據(jù)分析、統(tǒng)計(jì)及批量化處理。能在短時(shí)間內(nèi)為各個(gè)項(xiàng)目提供高效的解決方案。同時(shí),操作人員只需簡單的編程基礎(chǔ),就能利用模型構(gòu)建器輔助編程,獲得底層開發(fā)同等的功效。這不僅能為測繪一線生產(chǎn)提高效率,也能在尋求更快的解決方案,更多元的處理手段上,提供了更廣泛的思路。

        猜你喜歡
        衛(wèi)片圖斑工具
        地理國情監(jiān)測中異形圖斑的處理方法
        北京測繪(2022年9期)2022-10-11 12:25:14
        基于C#編程的按位置及屬性值自動(dòng)合并圖斑方法探究
        綠色科技(2021年5期)2021-11-28 14:57:37
        波比的工具
        波比的工具
        土地利用圖斑自動(dòng)檢測算法研究
        衛(wèi)片執(zhí)法系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        “巧用”工具
        讀者(2017年18期)2017-08-29 21:22:03
        “甜酸苦辣”話衛(wèi)片
        基于ArcGIS 10的土地利用總體規(guī)劃圖斑自動(dòng)化綜合
        遙感圖像結(jié)合MapGIS在省級(jí)礦山衛(wèi)片執(zhí)法檢查中的應(yīng)用
        中文字幕亚洲综合久久| 美腿丝袜一区二区三区| 免费人成网站在线观看| 国产三级视频不卡在线观看 | 国产成人一区二区三区乱| 内射人妻视频国内| 久草热8精品视频在线观看| 亚洲高清中文字幕精品不卡 | 免费人成黄页网站在线观看国产| 一区五码在线| 国语自产啪在线观看对白| 精品国产一区二区三区久久狼 | 五十路丰满中年熟女中出| 一本大道香蕉视频在线观看| 青青草国内视频在线观看| av手机在线观看不卡| 国产啪亚洲国产精品无码| 久99久热只有精品国产男同| 亚洲日本人妻中文字幕| 日本免费一区二区在线视频播放| 国产又大又黑又粗免费视频| 最近中文字幕视频高清| 天天射色综合| 日本少妇熟女一区二区| 性做久久久久久久| 熟妇人妻AV中文字幕老熟妇| 亚洲福利av一区二区| 青青草大香蕉视频在线观看| 国产精品无码午夜福利| 亚洲国产香蕉视频欧美| 精品一区二区三区国产av| 国产亚洲美女精品久久久2020 | 婷婷色综合视频在线观看| 日本高清色倩视频在线观看| 亚洲欧洲日产国码无码| 少妇人妻无奈的跪趴翘起| 午夜理论片yy44880影院| 天天综合久久| 国产一区二区三区porn| 久久久久久av无码免费网站下载 | 女人扒开屁股爽桶30分钟|