• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ArcGIS ModelBuilder 的多時(shí)相柵格數(shù)據(jù)處理方法

      2023-01-24 04:49:58黃選威
      南方自然資源 2022年12期
      關(guān)鍵詞:柵格數(shù)據(jù)輸入輸出批量

      ◎ 黃選威

      廣西地圖院,廣西 南寧 530023

      目前,多時(shí)相柵格數(shù)據(jù)已廣泛應(yīng)用于生態(tài)環(huán)境和氣候變化領(lǐng)域。時(shí)間分辨率為小時(shí)或天的柵格數(shù)據(jù)往往需要處理成月均或年均柵格數(shù)據(jù),才能實(shí)現(xiàn)進(jìn)一步分析。對(duì)于跨度數(shù)十年的單時(shí)或日均數(shù)據(jù),單項(xiàng)數(shù)據(jù)處理的工作量大、耗時(shí)多、效率低。此次研究筆者針對(duì)IMERG全球2001 年—2020 年約7 300 幅降水量單日NetCDF 文件展開數(shù)據(jù)研究,利用ArcGIS ModelBuilder 可視化編程開發(fā)語(yǔ)言進(jìn)行集成開發(fā)處理,獲取廣西2001 年—2020 年月均降水量和年均降水量柵格數(shù)據(jù)集,從而實(shí)現(xiàn)快速獲取降水量基礎(chǔ)研究數(shù)據(jù)。

      1 方法原理

      NetCDF(Network Common Data Form)網(wǎng)絡(luò)通用數(shù)據(jù)格式是一種面向數(shù)組型并適于網(wǎng)絡(luò)共享數(shù)據(jù)的描述和編碼標(biāo)準(zhǔn)[1]。在ArcGIS 中,可以通過NetCDF 文件創(chuàng)建TIF柵格數(shù)據(jù)集,用一個(gè)維度來顯示所有柵格數(shù)據(jù)的單元值。對(duì)于具有相同屬性的多個(gè)柵格數(shù)據(jù),要合成一個(gè)更大時(shí)間分辨率的柵格數(shù)據(jù)集,通常采用鑲嵌至新柵格的方法,求取單個(gè)柵格像元上的平均值來實(shí)現(xiàn),公式可以表示為:

      式(1)中,Vmean為更大時(shí)間分辨率柵格數(shù)據(jù)集的像元值;Vij表示第i行第j列的像元位置的數(shù)值;n表示鑲嵌原始柵格的數(shù)量。

      ArcGIS ModelBuilder 是一種可視化的編程語(yǔ)言,用于構(gòu)建地理處理工作流。ArcGIS ModelBuilder 能夠?qū)⒁幌盗蠥rcToolbox 現(xiàn)有工具和ArcPy 語(yǔ)言通過輸入輸出的方式串聯(lián)起來進(jìn)行數(shù)據(jù)處理[2]。這種處理方式節(jié)省人機(jī)交互的中間過程,并且能夠迭代具有相同屬性樣式的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)化或半自動(dòng)化批量處理。趙強(qiáng)等人通過MATLAB 等程序語(yǔ)言進(jìn)行NetCDF 數(shù)據(jù)的批量讀寫操作,但該讀寫方式設(shè)計(jì)需要在特定環(huán)境下進(jìn)行,且MATLAB 可視化表達(dá)效果較為單一[3]。溫樹棟、昝建春等人基于ArcGIS ModelBuilder 單一計(jì)算和解析路徑的方式來實(shí)現(xiàn)地理數(shù)據(jù)庫(kù)按區(qū)域自動(dòng)批量的裁剪輸出,但輸入輸出位置是固定的,不具有遷移重復(fù)使用的靈活性[4-5]。

      常用的ModelBuilder 由變量、工具和連接符組成(見圖1)。

      圖1 ArcGIS ModelBuilder 工作流程示意圖

      常用的ArcGIS ModelBuilder 結(jié)構(gòu)單元主要組成部分如表1 所示。

      表1 ArcGIS ModelBuilder 結(jié)構(gòu)單元主要組成部分表

      2 實(shí)驗(yàn)數(shù)據(jù)與處理方法

      2.1 數(shù)據(jù)來源

      此次研究的數(shù)據(jù)源自2001 年1 月1 日至2020 年12 月31 日約7 300 幅全球降水量GPM IMERG 數(shù)據(jù)。通過訪問美國(guó)NASA 地球科學(xué)數(shù)據(jù)和信息服務(wù)中心(Goddard Earth Sciences Data and InformationServices Center,GES DISC)的網(wǎng)站(https://disc.gsfc.nasa.gov)可以下載到數(shù)據(jù)格式為NetCDF 的全球日均降水量數(shù)據(jù)。該數(shù)據(jù)的空間分辨率為0.1°,單個(gè)NetCDF 數(shù)據(jù)大小約30 M。

      2.2 處理方法

      筆者針對(duì)數(shù)據(jù)量巨大的NetCDF 日均降水量數(shù)據(jù),此次研究首先使用ArcGIS ModelBuilder中的柵格數(shù)據(jù)迭代器進(jìn)行循環(huán)讀取,獲得的文件名通過ArcPy 中的截取函數(shù)截取特定字段,用于創(chuàng)建特定文件夾,使用工具將NetCDF 數(shù)據(jù)轉(zhuǎn)換為TIF 數(shù)據(jù),生成的TIF 文件放入特定文件夾中。然后,將單個(gè)文件夾內(nèi)的數(shù)據(jù)以收集多值的方式作為單一數(shù)據(jù)整體輸入,在迭代循環(huán)文件夾的基礎(chǔ)上,迭代文件夾內(nèi)部的TIF數(shù)據(jù)。最后,通過鑲嵌至新柵格的方式生成某一時(shí)間段月均降水量或年均降水量柵格數(shù)據(jù)。數(shù)據(jù)處理過程如圖2 所示。

      圖2 數(shù)據(jù)處理過程示意圖

      2.3 技術(shù)難點(diǎn)

      (1)字段獲取與匹配。獲取的原始日均降水量數(shù)據(jù)的文件名稱較長(zhǎng),如3B—DAY.MS.MRG.3IMERG.20200101—S000000—E235959.V06.nc4。此次研究通過ArcPy 中的ArcPy.Split()函數(shù)進(jìn)行日期字符的獲取,再利用獲取的特定字段創(chuàng)建文件夾和TIF 數(shù)據(jù)文件名,通過“\%文件名%\%柵格數(shù)據(jù)%.tif”地址組合的方式進(jìn)行數(shù)據(jù)特定文件夾下的自動(dòng)保存。其中,“%文件名%”和“%柵格數(shù)據(jù)%”為自定義變量,通過連接的方式組合地址路徑,便于靈活選擇輸出地址。

      (2)循環(huán)迭代和嵌套。將NetCDF 文件轉(zhuǎn)化為按月保存的TIF 文件,要先迭代文件夾內(nèi)的日均柵格數(shù)據(jù)作為收集值整體輸入,再迭代該文件夾進(jìn)行多年數(shù)據(jù)處理,這里需要對(duì)文件夾和文件夾內(nèi)的數(shù)據(jù)都進(jìn)行迭代讀取。由于ModelBuilder 同一模型下不能出現(xiàn)2 個(gè)或2 個(gè)以上的迭代器,因此需要把其中一個(gè)迭代模型作為新工具嵌入到另一個(gè)模型中進(jìn)行2 次以上的迭代計(jì)算。這種模型嵌套的方式能夠有效解決多個(gè)迭代器在同一個(gè)模型進(jìn)程中共同計(jì)算的問題。

      (3)多值合一輸入輸出。由于迭代器每次只能讀取1 個(gè)數(shù)據(jù),但計(jì)算數(shù)據(jù)平均值要讀取多個(gè)數(shù)據(jù),因此需要通過迭代的方式讀取所有柵格數(shù)據(jù),直到讀完文件夾內(nèi)所有數(shù)據(jù)為止,之后將其作為一個(gè)數(shù)據(jù)整體進(jìn)行輸入。這種方式可以避免迭代一個(gè)數(shù)據(jù)就進(jìn)行鑲嵌,或者迭代未完成就計(jì)算的問題。

      (4)遷移重復(fù)使用。模型中的輸入輸出變量可分為帶固定參數(shù)變量和不帶參數(shù)變量2種。帶參數(shù)的變量通過輸入固定的路徑、數(shù)據(jù)直接進(jìn)行計(jì)算,每次計(jì)算都要重新設(shè)置新的參數(shù),不利于遷移多次使用。對(duì)于不帶參數(shù)的變量,將其設(shè)為空值,并作為開源變量,可以由使用者自行輸入,進(jìn)行參數(shù)調(diào)整。此次研究筆者將必要參數(shù)作為不帶參數(shù)的變量,均做開放處理,便于計(jì)算模型重復(fù)使用和調(diào)整。圖3 中的所有變量右上角帶p 標(biāo)志的均為不帶參數(shù)的變量。

      2.4 模型構(gòu)建

      以日均數(shù)據(jù)生成月均數(shù)據(jù)為例,模型設(shè)計(jì)主要包括按月創(chuàng)建文件夾、NetCDF 數(shù)據(jù)轉(zhuǎn)換為TIF、按月鑲嵌平均計(jì)算3 部分(見圖3)。

      (1)按月創(chuàng)建文件夾??紤]到原始數(shù)據(jù)的文件名讀取、存儲(chǔ)不方便,需要生成月份的文件夾來存儲(chǔ)對(duì)應(yīng)月份的單日數(shù)據(jù)。在圖3(a)中,“原始數(shù)據(jù)文件夾”用于輸入原始日均數(shù)據(jù)位置,“文件夾位置”用于輸出生成月份文件夾的位置。此次研究筆者使用計(jì)算值工具,利用截取函數(shù)ArcPy.Split()按照關(guān)鍵字符位置進(jìn)行讀取月份如“202001”6 位,其他字符舍去,即可生成名稱為“202001”的文件夾。

      (2)NetCDF 數(shù)據(jù)轉(zhuǎn)換為TIF。由于NetCDF數(shù)據(jù)格式不是GIS 常用數(shù)據(jù)類型,因此需要先進(jìn)行數(shù)據(jù)轉(zhuǎn)換。此次研究筆者通過ArcGIS 工具箱中的創(chuàng)建NetCDF 柵格圖層、復(fù)制柵格、按掩膜裁剪的工具進(jìn)行處理。將對(duì)應(yīng)轉(zhuǎn)換后的日均TIF 柵格數(shù)據(jù)存入到相應(yīng)月份文件夾中。在圖3(b)中,“文件夾”為原始數(shù)據(jù)位置;“通配符”和“文件擴(kuò)展名”分別對(duì)應(yīng)文件名的關(guān)鍵字和文件類型;NetCDF 數(shù)據(jù)的變量參數(shù)HQprecipitation、Lon、Lat 可以自行輸入,也可以作為默認(rèn)變量填入?yún)?shù);“裁剪矢量數(shù)據(jù)”為進(jìn)行掩膜裁剪的研究區(qū)范圍;“輸出文件位置”為月份文件夾所在的上一層文件夾。

      (3)迭代按月鑲嵌計(jì)算。將圖3(b)過程生成的TIF 柵格數(shù)據(jù)作為一個(gè)整體輸入,再進(jìn)行鑲嵌計(jì)算。需要注意的是,不能只把收集值作為一個(gè)簡(jiǎn)單的變量放入模型中,需要將其設(shè)置為帶p 標(biāo)志的參數(shù)變量,否則就會(huì)以下面這種方式進(jìn)行計(jì)算:

      式(2)顯然與式(1)的計(jì)算結(jié)果不同,這不是此次研究需要的結(jié)果。

      (4)迭代文件夾進(jìn)行月均計(jì)算。將圖3(c)的模型作為一個(gè)整體嵌套到圖3(d)中,圖3(c)是迭代循環(huán)月份文件夾中的日均TIF 柵格數(shù)據(jù),圖3(d)是迭代循環(huán)不同的文件夾,嵌套的方式可以進(jìn)行多次循環(huán)。圖3(d)中,“中間數(shù)據(jù)文件夾”為月份文件夾所在的上一層文件夾位置,“輸出位置”為生成月均數(shù)據(jù)的存放位置。

      圖3 月均降水量數(shù)據(jù)批量處理模型圖

      3 分析討論

      批量處理模型設(shè)計(jì)完成之后,選取2020 年12 個(gè)月366 份的全年NetCDF 日均數(shù)據(jù),分別通過常規(guī)人工方法和批量處理模型工具法進(jìn)行處理,比較數(shù)據(jù)處理花費(fèi)的時(shí)間(見圖4)。

      圖4 常規(guī)人工方法和批量處理模型工具法耗時(shí)對(duì)比圖

      實(shí)驗(yàn)結(jié)果表明,將日均降水量數(shù)據(jù)處理成月均降水量柵格數(shù)據(jù),批量處理模型工具法用時(shí)約為5 min/月,常規(guī)人工方法用時(shí)約為48 min/月,批量處理模型工具法在數(shù)據(jù)處理時(shí)間上較常規(guī)人工方法縮短8 了倍以上。由此可見,批量處理模型工具法能大幅提高多時(shí)相柵格數(shù)據(jù)處理的效率,能有效克服常規(guī)人工方法效率低、用時(shí)長(zhǎng)、容易出錯(cuò)等問題,并且可以使用ArcGIS 中的地理處理結(jié)果,將其作為計(jì)算包整體運(yùn)算,減少設(shè)置參數(shù)的時(shí)間。

      與MATLAB 方法相比,此次研究不需要進(jìn)行復(fù)雜的編程計(jì)算,使用模塊化的封裝工具即可實(shí)現(xiàn)搭積木式計(jì)算處理,并且ArcGIS 支持二次開發(fā),可不依靠環(huán)境進(jìn)行運(yùn)行計(jì)算,對(duì)于零基礎(chǔ)的使用者來說較為友好。通常情況下,在數(shù)據(jù)輸入輸出路徑上,很多模型工具往往都是固定的,即輸入數(shù)據(jù)的路徑也是輸出路徑,不能自行設(shè)置,不具有靈活性。此次研究筆者將輸入輸出位置作為不帶路徑參數(shù)的變量開放出來,提供給使用者自行輸入,大大增強(qiáng)了批量處理模型工具的遷徙性和提高了重復(fù)使用水平。同時(shí),批量處理模型工具法不局限于單一的裁剪計(jì)算,而是把名稱修改、數(shù)據(jù)轉(zhuǎn)換、裁剪提取、加權(quán)計(jì)算、數(shù)據(jù)生成等柵格數(shù)據(jù)處理的常見流程進(jìn)行綜合設(shè)計(jì),對(duì)于其他具有不同需求的柵格數(shù)據(jù)處理來說,具有很強(qiáng)的借鑒和指導(dǎo)意義。

      4 結(jié) 語(yǔ)

      此次研究中,筆者基于ArcGIS Model-Builder 可視化編程開發(fā)環(huán)境,集成ArcToolbox 現(xiàn)有工具和ArcPy 語(yǔ)言處理,開發(fā)實(shí)現(xiàn)多時(shí)相柵格數(shù)據(jù)批量處理模型工具。研究中,對(duì)于輸入輸出變量,采用空參數(shù)的形式,能滿足和實(shí)現(xiàn)批量處理模型工具的可遷移性和重復(fù)使用。同時(shí),使用ArcGIS 臨時(shí)數(shù)據(jù)庫(kù)ScratchGDB,避免了大量中間數(shù)據(jù)的出現(xiàn),節(jié)省了內(nèi)存。下一步,應(yīng)對(duì)不常使用的輸入輸出變量直接填充相應(yīng)參數(shù),減少批量處理模型工具使用過程中變量交互的次數(shù);擴(kuò)展模型工具的數(shù)量和模塊選項(xiàng),使用者在做修改調(diào)整后,即可對(duì)其他相似類型的柵格數(shù)據(jù)進(jìn)行批量處理。

      猜你喜歡
      柵格數(shù)據(jù)輸入輸出批量
      批量提交在配置分發(fā)中的應(yīng)用
      Camtasia Studio高清視頻輸入輸出原理及方法
      鐵路信號(hào)系統(tǒng)安全輸入輸出平臺(tái)
      輸入輸出理論在大學(xué)英語(yǔ)聽說課堂中的教學(xué)探索
      輸入輸出視角下高職英語(yǔ)教學(xué)研究
      基于GDAL的標(biāo)準(zhǔn)圖幅生成及數(shù)據(jù)批量裁剪方法*1
      基于ArcGISEngine的南水北調(diào)工程基礎(chǔ)柵格數(shù)據(jù)管理
      淺議高校網(wǎng)銀批量代發(fā)
      基于AUTOIT3和VBA的POWERPOINT操作題自動(dòng)批量批改
      考慮價(jià)差和再制造率的制造/再制造混合系統(tǒng)生產(chǎn)批量研究
      临沧市| 织金县| 凉城县| 民和| 洛南县| 元阳县| 武鸣县| 卓尼县| 九龙坡区| 德江县| 崇阳县| 贡嘎县| 通江县| 岢岚县| 建瓯市| 仁化县| 黑山县| 星子县| 台安县| 崇义县| 西丰县| 仁怀市| 大理市| 漾濞| 胶州市| 克拉玛依市| 仪陇县| 诸城市| 专栏| 逊克县| 彰武县| 包头市| 云林县| 南投市| 富民县| 宜昌市| 辽源市| 句容市| 昌江| 浦县| 灯塔市|