• 
    

    
    

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

      林業(yè)小班數(shù)據(jù)屬性編碼轉(zhuǎn)換的實(shí)現(xiàn)技術(shù)

      2013-12-06 08:44:22馬利娟徐永龍李曉亮楊秀瓊
      測(cè)繪工程 2013年5期
      關(guān)鍵詞:字段小班編碼

      馬利娟,徐永龍,李 斌,李曉亮,楊秀瓊,李 麗

      (1.陜西天潤(rùn)科技股份有限公司,陜西 西安 710054;2.長(zhǎng)安大學(xué) 地質(zhì)工程與測(cè)繪學(xué)院,陜西 西安 710054)

      隨著“數(shù)字地球”、“數(shù)字中國(guó)”等概念的興起,國(guó)家林業(yè)局于2001年提出了“數(shù)字林業(yè)”這一概念,并將其明確為“系統(tǒng)地獲取、融合、分析和應(yīng)用數(shù)字信息來(lái)支持可持續(xù)森林經(jīng)營(yíng)管理的科學(xué)、技術(shù)和藝術(shù)”[1]。小班是進(jìn)行森林資源組織、經(jīng)營(yíng)和管理的最小單位,也是林業(yè)調(diào)查設(shè)計(jì)的基本單位,因此,小班數(shù)據(jù)既是林業(yè)野外調(diào)查工作的成果數(shù)據(jù),也是數(shù)字林業(yè)工作的基礎(chǔ)數(shù)據(jù)。作為小班數(shù)據(jù)必不可少的組成部分,與其空間位置和幾何形狀相比,其屬性信息在更大程度上體現(xiàn)了小班數(shù)據(jù)的價(jià)值,它將與小班相關(guān)的諸如地類、林種、林地所有權(quán)、土地類型等調(diào)查因子作為屬性字段,形成二維表進(jìn)行存儲(chǔ),即小班屬性表。根據(jù)林業(yè)調(diào)查類型的不同,小班屬性表的字段從幾十個(gè)到上百個(gè)不等,為了便于小班數(shù)據(jù)的采集和管理,許多字段的取值都用相應(yīng)的編碼來(lái)表示。目前,隨著各省數(shù)字林業(yè)工作的開(kāi)展,林業(yè)主管部門積累的小班數(shù)據(jù)越來(lái)越多[2],但小班屬性編碼體系存在各省編碼(即地方編碼)和國(guó)家標(biāo)準(zhǔn)編碼兩套標(biāo)準(zhǔn)(前者供小班數(shù)據(jù)采集以及基于小班數(shù)據(jù)的數(shù)字林業(yè)產(chǎn)品制作等生產(chǎn)活動(dòng)所使用,后者供小班數(shù)據(jù)成果匯總提交以及數(shù)據(jù)共享等所使用),導(dǎo)致小班數(shù)據(jù)的管理和使用存在不便。因此,將海量小班數(shù)據(jù)的屬性信息從某一編碼體系向另一編碼系統(tǒng)進(jìn)行便捷、高效的轉(zhuǎn)換,從而實(shí)現(xiàn)對(duì)已有成果的無(wú)損利用和標(biāo)準(zhǔn)化管理,是當(dāng)前數(shù)字林業(yè)工作中亟待解決的問(wèn)題之一[3]。本文從分析不同編碼體系下小班屬性表的特點(diǎn)入手,明確小班編碼轉(zhuǎn)換工作的需求,對(duì)基于關(guān)系數(shù)據(jù)庫(kù)的小班數(shù)據(jù)屬性編碼轉(zhuǎn)換的關(guān)鍵技術(shù)進(jìn)行探討。

      1 編碼轉(zhuǎn)換需求分析

      表1是地類、樹(shù)種這兩個(gè)調(diào)查因子(在小班屬性表中體現(xiàn)為字段)的編碼(部分)分別在某省地方編碼體系和國(guó)家標(biāo)準(zhǔn)編碼體系下取值對(duì)照情況;表2是按照地方編碼體系對(duì)某林區(qū)編號(hào)為1—3的小班進(jìn)行調(diào)查后所得的小班屬性表(部分字段);表3是與表2對(duì)應(yīng)的編號(hào)為1—3的小班在國(guó)家標(biāo)準(zhǔn)編碼體系下的屬性表(部分字段)。

      表1 某省林業(yè)調(diào)查因子地方編碼與國(guó)家編碼對(duì)照

      表2 參照地方編碼體系的小班屬性信息

      表3 參照國(guó)家標(biāo)準(zhǔn)編碼體系的小班屬性信息

      表2和表3僅僅列出了地類和樹(shù)種這兩個(gè)需要進(jìn)行編碼轉(zhuǎn)換的字段(以下稱編碼字段),且屬性數(shù)據(jù)表中僅有3條小班記錄,但在數(shù)字林業(yè)小班數(shù)據(jù)管理的實(shí)際工作中,編碼字段多達(dá)幾十甚至上百個(gè);在小班數(shù)據(jù)量上,即使以縣為單位,調(diào)查統(tǒng)計(jì)的小班記錄也達(dá)上萬(wàn)條。因此,將具有海量記錄的小班成果數(shù)據(jù)的屬性表從某一編碼體系安全可靠、高效率地轉(zhuǎn)換到另一編碼體系下(即表2與表3之間的轉(zhuǎn)換),是數(shù)字林業(yè)小班數(shù)據(jù)處理工作中的現(xiàn)實(shí)需求?;谝陨蠈?duì)編碼轉(zhuǎn)換的需求分析,本文探討基于數(shù)據(jù)庫(kù)技術(shù),利用計(jì)算機(jī)編程的方式,在確保數(shù)據(jù)安全的前提下,實(shí)現(xiàn)大數(shù)據(jù)量小班數(shù)據(jù)在不同編碼體系下屬性編碼的高效率轉(zhuǎn)換。

      2 編碼轉(zhuǎn)換的關(guān)鍵技術(shù)

      實(shí)現(xiàn)大數(shù)據(jù)量小班數(shù)據(jù)屬性編碼轉(zhuǎn)換的思想和技術(shù)流程為:首先,建立國(guó)家標(biāo)準(zhǔn)編碼體系與地方編碼體系之間的對(duì)應(yīng)關(guān)系,作為小班數(shù)據(jù)編碼轉(zhuǎn)換的參考基準(zhǔn);其次,針對(duì)成果小班數(shù)據(jù)大數(shù)據(jù)量的特點(diǎn),采用數(shù)據(jù)庫(kù)分頁(yè)查詢技術(shù),對(duì)小班數(shù)據(jù)屬性編碼進(jìn)行小分量、多批次轉(zhuǎn)換。同時(shí),在編碼轉(zhuǎn)換中采用數(shù)據(jù)庫(kù)事務(wù)技術(shù),以保證小班數(shù)據(jù)的安全性。以下主要對(duì)編碼對(duì)應(yīng)關(guān)系的建立、分頁(yè)查詢技術(shù)、編碼批量轉(zhuǎn)換和數(shù)據(jù)庫(kù)事務(wù)(Transaction)4個(gè)主要技術(shù)環(huán)節(jié)進(jìn)行介紹。

      2.1 建立編碼對(duì)應(yīng)關(guān)系

      編碼對(duì)應(yīng)關(guān)系是指地方編碼體系和國(guó)家標(biāo)準(zhǔn)編碼體系中表示相同意義的編碼之間的對(duì)應(yīng)關(guān)系。為了保證小班屬性編碼轉(zhuǎn)換的正確性,必須在同一調(diào)查因子的國(guó)家標(biāo)準(zhǔn)編碼和地方編碼之間建立嚴(yán)格的一一對(duì)應(yīng)關(guān)系,這種邏輯對(duì)應(yīng)關(guān)系在數(shù)據(jù)庫(kù)物理結(jié)構(gòu)中體現(xiàn)為一張二維關(guān)系表(稱之為對(duì)應(yīng)關(guān)系表)。該對(duì)應(yīng)關(guān)系表應(yīng)當(dāng)簡(jiǎn)單扼要,同時(shí),為了方便對(duì)其進(jìn)行更新和維護(hù),應(yīng)考慮對(duì)每個(gè)調(diào)查因子的編碼進(jìn)行說(shuō)明性的描述。因此,在對(duì)應(yīng)關(guān)系表結(jié)構(gòu)中設(shè)計(jì)4個(gè)字段,分別為code_name(表示調(diào)查因子名稱)、country_code(表示國(guó)家標(biāo)準(zhǔn)體系中的編碼)、local_code(表示地方編碼體系中的編碼)和code_desc(表示對(duì)該編碼的描述);以code_name和country_code作為主鍵(primary key)、以code_name和local_code作為唯一鍵(unique key),以保證同一調(diào)查因子在不同編碼體系下編碼值之間的一一對(duì)應(yīng),同時(shí)也保證對(duì)應(yīng)關(guān)系表中沒(méi)有冗余記錄。該對(duì)應(yīng)關(guān)系表結(jié)構(gòu)設(shè)計(jì)見(jiàn)表4。

      表4 國(guó)家標(biāo)準(zhǔn)編碼與地方編碼對(duì)應(yīng)關(guān)系表結(jié)構(gòu)設(shè)計(jì)

      按照上述設(shè)計(jì),將國(guó)家標(biāo)準(zhǔn)編碼體系和地方編碼體系下的各個(gè)調(diào)查因子的編碼建立成對(duì)應(yīng)關(guān)系表。以表1中的調(diào)查因子及編碼為例,建立的編碼對(duì)應(yīng)關(guān)系表如表5(前4行)所示。將該表命名為Code_Ref_Table,存放于小班屬性數(shù)據(jù)所在數(shù)據(jù)庫(kù),以備后用。對(duì)于某些調(diào)查因子有地方編碼但無(wú)對(duì)應(yīng)的國(guó)家標(biāo)準(zhǔn)編碼(如某省的稀有樹(shù)種暫缺乏國(guó)家標(biāo)準(zhǔn)編碼)的情況,一種可行的解決辦法是:為該地方編碼建立與之對(duì)應(yīng)的自定義國(guó)家編碼(如表5第5行所示),編碼轉(zhuǎn)換完成之后,再根據(jù)數(shù)據(jù)的實(shí)際應(yīng)用需求,利用數(shù)據(jù)編輯軟件對(duì)小班數(shù)據(jù)該字段的自定義編碼作統(tǒng)一處理。

      表5 小班數(shù)據(jù)屬性編碼對(duì)應(yīng)關(guān)系

      2.2 分頁(yè)查詢

      分頁(yè)查詢就是根據(jù)需要,每次查詢只返回所需要的數(shù)據(jù),而不用每次都從數(shù)據(jù)庫(kù)中把表格里的全部記錄提取出來(lái),這樣可以降低程序與數(shù)據(jù)庫(kù)之間的數(shù)據(jù)傳送量,并且還可以提高程序的性能[4]。如前所述,小班數(shù)據(jù)的數(shù)據(jù)量一般較大,以縣(區(qū))為單位進(jìn)行處理通常有上萬(wàn)條記錄,為此,在進(jìn)行其屬性編碼轉(zhuǎn)換時(shí)必須采用分頁(yè)查詢,實(shí)現(xiàn)小分量、多批次轉(zhuǎn)換,以保證編碼轉(zhuǎn)換工作的效率和穩(wěn)定性。

      文中對(duì)數(shù)據(jù)庫(kù)的操作均采用SQL(Structured Query Language,即結(jié)構(gòu)化查詢語(yǔ)言)命令來(lái)實(shí)現(xiàn),關(guān)系數(shù)據(jù)庫(kù)以O(shè)racle為例。在分頁(yè)查詢中,決定返回查詢結(jié)果集的參數(shù)有兩個(gè),即當(dāng)前要查詢的頁(yè)數(shù)page-Index(即第幾頁(yè))和每頁(yè)的記錄條數(shù)pageSize。本文采用“頂層排除法”對(duì)小班屬性數(shù)據(jù)表進(jìn)行分頁(yè)查詢,即從前1至N頁(yè)記錄中排除小班編號(hào)(xiaoban_ID)在前1至N-1頁(yè)中存在的記錄,其中xiaoban_ID是小班屬性數(shù)據(jù)表的主鍵(Primary Key)。此處進(jìn)行分頁(yè)查詢的SQL命令為“Select top pageSize*from xiaoban where xiaoban_ID not in(select top(pageIndex-1)*pageSize xiaoban_ID from xiaoban)”,其中xiaoban為小班屬性數(shù)據(jù)表名。

      值得注意的是,在數(shù)據(jù)庫(kù)分頁(yè)查詢中,分頁(yè)的具體方法有很多,在性能上也各有差異,本文不作詳述。在選用分頁(yè)算法的時(shí)候應(yīng)充分考慮其在處理大數(shù)據(jù)量時(shí)的性能,同時(shí),每頁(yè)的記錄數(shù)pageSize不宜偏小或過(guò)大。本文采用的“頂層排除法”,每頁(yè)記錄數(shù)pageSize設(shè)計(jì)為1萬(wàn),經(jīng)測(cè)試,該方法在對(duì)數(shù)據(jù)量較大的表格進(jìn)行分頁(yè)時(shí),可以有效地保證分頁(yè)的效率。

      2.3 編碼批量轉(zhuǎn)換

      編碼批量轉(zhuǎn)換是指把某一編碼體系下的小班屬性數(shù)據(jù)表中所有需要進(jìn)行編碼轉(zhuǎn)換的字段(即調(diào)查因子)的取值更改為另一編碼體系下與其對(duì)應(yīng)的編碼值,它是整個(gè)編碼轉(zhuǎn)換工作的核心內(nèi)容。該過(guò)程本質(zhì)上是對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行關(guān)聯(lián)查詢,具體而言,就是利用對(duì)小班屬性編碼對(duì)應(yīng)關(guān)系表Code_Ref_Table的查詢結(jié)果更新(即Update操作)小班屬性數(shù)據(jù)表中字段的取值。因此,首先利用分頁(yè)查詢技術(shù)實(shí)現(xiàn)對(duì)單一字段的代碼分頁(yè)轉(zhuǎn)換,在此基礎(chǔ)上再遍歷所需轉(zhuǎn)換的字段集合,從而實(shí)現(xiàn)所有字段的編碼批量分頁(yè)轉(zhuǎn)換。其技術(shù)流程如圖1所示。

      圖1 批量分頁(yè)編碼轉(zhuǎn)換流程

      從圖1可以看出,單一字段分頁(yè)編碼轉(zhuǎn)換是實(shí)現(xiàn)編碼批量轉(zhuǎn)換的關(guān)鍵步驟。為直觀起見(jiàn),以表2、表6分別作為小班屬性數(shù)據(jù)表和小班屬性編碼對(duì)應(yīng)關(guān)系表,重點(diǎn)對(duì)該步驟進(jìn)行闡述。首先進(jìn)行單一字段單頁(yè)面編碼轉(zhuǎn)換。假設(shè)分頁(yè)查詢中每頁(yè)為2條記錄(即分頁(yè)查詢中的pageSize),將表2中第一頁(yè)(即前2條記錄)的地類字段取值轉(zhuǎn)換為國(guó)家編碼體系中地類字段取值的轉(zhuǎn)換過(guò)程可用SQL命令表示為:“Update表2set地類=(select country_code from表6where表6.code_name=’地類’and表6.local_code=表2.地類)where小班編號(hào)in(select top 2小班編號(hào)from表2where小班編號(hào)not in(select top 0小班編號(hào)from表2))”。其中,“select country_code from表6where表6.code_name=’地類’and表6.local_code=表2.地類”表示從表6中查詢與表2中地類字段的地方編碼對(duì)應(yīng)的國(guó)家代碼,“where小班編號(hào)in(select top 2小班編號(hào)from表2where小班編號(hào)not in(select top 0小班編號(hào)from表2))”是分頁(yè)查詢條件子句,表示只對(duì)第一頁(yè)記錄中的地類字段編碼進(jìn)行轉(zhuǎn)換。然后再按分頁(yè)的頁(yè)碼數(shù)進(jìn)行遍歷,可把表2中每一行地類字段的取值轉(zhuǎn)換為表4中地類的取值,即實(shí)現(xiàn)單一字段的分頁(yè)編碼轉(zhuǎn)換。

      2.4 數(shù)據(jù)庫(kù)事務(wù)

      數(shù)據(jù)庫(kù)事務(wù)是DBMS(即數(shù)據(jù)庫(kù)管理系統(tǒng))執(zhí)行過(guò)程中的一個(gè)邏輯單位,由一個(gè)有限的數(shù)據(jù)庫(kù)操作序列構(gòu)成。只有在這些操作序列都執(zhí)行成功的情況下,DBMS才會(huì)提交事務(wù)操作對(duì)數(shù)據(jù)庫(kù)的更新,一旦某個(gè)操作不成功,數(shù)據(jù)庫(kù)將會(huì)回退,以保持更新前的狀態(tài)??梢?jiàn),數(shù)據(jù)庫(kù)事務(wù)能夠有效地保證數(shù)據(jù)的一致性。

      小班屬性數(shù)據(jù)的編碼轉(zhuǎn)換需要直接在數(shù)據(jù)庫(kù)中對(duì)小班數(shù)據(jù)進(jìn)行更新,為確保小班數(shù)據(jù)的一致性,本文將編碼轉(zhuǎn)換操作作為數(shù)據(jù)庫(kù)事務(wù)進(jìn)行處理。若轉(zhuǎn)換過(guò)程順利進(jìn)行,則提交事務(wù),完成編碼轉(zhuǎn)換;若編碼轉(zhuǎn)換過(guò)程中某一環(huán)節(jié)出現(xiàn)錯(cuò)誤,則回退事務(wù),此時(shí)小班數(shù)據(jù)可以回退到編碼轉(zhuǎn)換前的原始狀態(tài)。以CJHJ語(yǔ)言操作Oracle數(shù)據(jù)庫(kù)為例,在數(shù)據(jù)庫(kù)事務(wù)中進(jìn)行編碼轉(zhuǎn)換的主要代碼示例如下:

      public void ConvertCodeInTransaction(){

      OracleConnection conn=new OracleConnection

      ("數(shù)據(jù)庫(kù)連接字符串");

      conn.Open();//打開(kāi)數(shù)據(jù)庫(kù)連接

      OracleTransaction convertProcess =conn.BeginTransaction();//開(kāi)始事務(wù)

      try{

      ConvertCode();//執(zhí)行編碼轉(zhuǎn)換

      convertProcess.Commit();//成功,提交事務(wù)

      catch(){

      convertProcess.Rollback();//若失敗,回滾事務(wù)

      finally{

      conn.Close();//斷開(kāi)數(shù)據(jù)庫(kù)連接

      3 編碼轉(zhuǎn)換的程序?qū)崿F(xiàn)與應(yīng)用

      在對(duì)上述關(guān)鍵技術(shù)進(jìn)行研究的基礎(chǔ)上,筆者采用CJHJ編程語(yǔ)言,運(yùn)用組件式開(kāi)發(fā)技術(shù)對(duì)基于Oracle數(shù)據(jù)庫(kù)的小班數(shù)據(jù)屬性編碼轉(zhuǎn)換進(jìn)行編程實(shí)現(xiàn)。其中,利用.NET開(kāi)發(fā)平臺(tái)中的OracleClient組件實(shí)現(xiàn)對(duì)Oracle數(shù)據(jù)庫(kù)的操作。利用某省3個(gè)縣的小班數(shù)據(jù)對(duì)程序的效率進(jìn)行測(cè)試,結(jié)果如表6所示。從測(cè)試結(jié)果可以看出,該程序?qū)?0個(gè)編碼字段的1萬(wàn)條小班數(shù)據(jù)進(jìn)行編碼轉(zhuǎn)換的平均耗時(shí)為2s,因此,在運(yùn)行效率方面可以很好地滿足應(yīng)用需求。目前,小班數(shù)據(jù)屬性編碼轉(zhuǎn)換功能已經(jīng)成功集成并應(yīng)用于某省級(jí)數(shù)字林業(yè)數(shù)據(jù)管理系統(tǒng)中,有效地提升了數(shù)字林業(yè)小班數(shù)據(jù)處理的工作效率。

      表6 小班數(shù)據(jù)屬性編碼轉(zhuǎn)換程序效率測(cè)試結(jié)果

      4 結(jié)束語(yǔ)

      隨著數(shù)字林業(yè)工作的深入推進(jìn),林業(yè)部門的小班數(shù)據(jù)不斷增多,為適應(yīng)不同用途而制定的小班屬性編碼體系給小班成果數(shù)據(jù)的無(wú)損利用和標(biāo)準(zhǔn)化管理工作帶來(lái)不便。本文從分析林業(yè)小班數(shù)據(jù)屬性編碼轉(zhuǎn)換的現(xiàn)實(shí)需求入手,對(duì)小班屬性數(shù)據(jù)在不同編碼系統(tǒng)之間無(wú)損、高效轉(zhuǎn)換的實(shí)現(xiàn)技術(shù)進(jìn)行了深入研究,在此基礎(chǔ)上,利用計(jì)算機(jī)編程對(duì)其進(jìn)行了實(shí)現(xiàn),并通過(guò)實(shí)驗(yàn)證實(shí)了編碼轉(zhuǎn)換程序在效率上的可行性。該研究在數(shù)字林業(yè)數(shù)據(jù)管理系統(tǒng)中的成功應(yīng)用,實(shí)現(xiàn)了小班數(shù)據(jù)屬性編碼的高效率、批量自動(dòng)轉(zhuǎn)換,為數(shù)字林業(yè)小班數(shù)據(jù)管理工作提供了有效的技術(shù)支撐。

      [1]宋麗華,沈明霞,何瑞銀,等.基于ArcGIS的林業(yè)GIS空間數(shù)據(jù)庫(kù)建設(shè)的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(19):5117-5122.

      [2]何政偉,黃潤(rùn)秋,陳兵,等.林業(yè)信息系統(tǒng)體系構(gòu)建分析[J].成都理工大學(xué)學(xué)報(bào):自然科學(xué)版,2004,31(1):81-86.

      [3]陳圣東.淺談黑龍江省數(shù)字林業(yè)建設(shè)[J].林業(yè)科技情報(bào),2008,40(1):25-26.

      [4]夏明偉,林云,胡鐵.用ORACLE的SQL語(yǔ)句實(shí)現(xiàn)多欄分頁(yè)輸出[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2004(9):63-65.

      [5]王紅明,尹康銀,彭思勇.CJHJ語(yǔ)言與Oracle數(shù)據(jù)庫(kù)的接口[J].信息通信,2009(3):36-39.

      [6]楊海明.基于ArcGIS Engine的仁壽縣森林資源信息管理系統(tǒng)的研究與實(shí)現(xiàn)[D].重慶:西南大學(xué),2007.

      [7]吳文靜,王霓虹.三維可視化技術(shù)在數(shù)字林業(yè)中的應(yīng)用研究[J].智能計(jì)算機(jī)與應(yīng)用,2011,1(3):31-34.

      猜你喜歡
      字段小班編碼
      圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
      基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
      小班教學(xué) 有效交流
      《全元詩(shī)》未編碼疑難字考辨十五則
      子帶編碼在圖像壓縮編碼中的應(yīng)用
      電子制作(2019年22期)2020-01-14 03:16:24
      Genome and healthcare
      CNMARC304字段和314字段責(zé)任附注方式解析
      無(wú)正題名文獻(xiàn)著錄方法評(píng)述
      關(guān)于CNMARC的3--字段改革的必要性與可行性研究
      分成三等份
      利津县| 和田县| 伊宁县| 衡山县| 甘肃省| 南木林县| 卫辉市| 嘉祥县| 广宁县| 周口市| 时尚| 新源县| 云浮市| 巴青县| 九龙城区| 吕梁市| 曲沃县| 湘潭县| 石景山区| 婺源县| 岳池县| 靖边县| 清水河县| 松溪县| 玉田县| 黄骅市| 青州市| 新郑市| 新巴尔虎左旗| 阳原县| 张北县| 南召县| 松桃| 吉林市| 陵川县| 二连浩特市| 晋州市| 成武县| 西畴县| 陵水| 武鸣县|