呂品
摘要:隨著地理國(guó)情普查工作的開(kāi)展,如何把FME強(qiáng)大的空間數(shù)據(jù)處理能力更好的用于地理國(guó)情普查工作海量的數(shù)據(jù)處理成為一個(gè)重要課題。雖然相關(guān)問(wèn)題在現(xiàn)有的地理國(guó)情普查軟件,如地理國(guó)情普查內(nèi)外業(yè)一體化軟件中已有解決,但是這并不妨礙作者采用新的方法對(duì)其進(jìn)行研究。文章結(jié)合廣元元壩區(qū)的部分?jǐn)?shù)據(jù),介紹了利用FME結(jié)合Python編程語(yǔ)言,采用動(dòng)態(tài)輸出的辦法,以達(dá)到實(shí)現(xiàn)空表生成并批量裁剪扇出分幅數(shù)據(jù)庫(kù)的目的。
關(guān)鍵詞:FME地理國(guó)情動(dòng)態(tài)輸出Python空表生成
中圖分類號(hào):P208文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)06-0000-00
加拿大Safe軟件公司的FME是國(guó)際領(lǐng)先的空間數(shù)據(jù)解決方案,其對(duì)矢量數(shù)據(jù)的處理有獨(dú)特的優(yōu)勢(shì)。而如何把FME用于海量的地理國(guó)情數(shù)據(jù)的處理無(wú)疑將成為一個(gè)重要課題。
在地理國(guó)情普查工作的外業(yè)調(diào)查階段,通常要求把數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)分幅并包含有標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的所有表以方便外業(yè)調(diào)查。但是按照FME正常的工作流,沒(méi)有數(shù)據(jù)便不會(huì)有表的生成,因此,研究如何在FME中生成一個(gè)空表的問(wèn)題便變得很重要了。
1 數(shù)據(jù)
1.1 數(shù)據(jù)的數(shù)學(xué)基礎(chǔ)
數(shù)據(jù)平面坐標(biāo)系采用2000國(guó)家大地坐標(biāo)系,高斯克呂格投影,六度分帶方式,使用地理坐標(biāo),單位為“度”,用雙精度浮點(diǎn)數(shù)表示。其高程采用1985國(guó)家高程基準(zhǔn),高程系統(tǒng)為正常高,單位為“米”。
1.2 圖幅結(jié)合表
圖幅接合表簡(jiǎn)稱接圖表。是標(biāo)明某一地區(qū)的多幅地圖或分幅地圖的相鄰圖幅的相關(guān)位置的略圖。在程序中,圖幅結(jié)合表是FME對(duì)數(shù)據(jù)進(jìn)行裁剪的依據(jù),不但要求其有正確的坐標(biāo)系統(tǒng),而且其每個(gè)要素的標(biāo)準(zhǔn)圖幅號(hào)(字段名TF)都必須具備。這里的圖幅號(hào)是后面數(shù)據(jù)扇出時(shí)分幅數(shù)據(jù)庫(kù)的命名來(lái)源。
1.3 數(shù)據(jù)庫(kù)模板
數(shù)據(jù)庫(kù)模板是包含了所有表及其所有標(biāo)準(zhǔn)字段的空數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)模板將用于數(shù)據(jù)庫(kù)的復(fù)制、寫(xiě)入、更新等操作。
2 數(shù)據(jù)裁剪
數(shù)據(jù)裁剪主要使用到FME的一個(gè)轉(zhuǎn)換器——Clipper。Clipper轉(zhuǎn)換器可以實(shí)現(xiàn)多個(gè)裁剪要素對(duì)單個(gè)被裁剪要素的裁剪,并通過(guò)參數(shù)設(shè)置把裁剪要素的屬性賦予被裁剪要素。經(jīng)此步驟,在每一個(gè)被裁剪要素中都多了一個(gè)名為clipper_TF的字段,這個(gè)字段將成為要素扇出的依據(jù)。
3 空表生成
FME本身不能生成空的數(shù)據(jù)庫(kù)表,如需產(chǎn)生空數(shù)據(jù)庫(kù)表就需要結(jié)合使用Python編程語(yǔ)言。Python是一種面向?qū)ο?、解釋型?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由Guido van Rossum于1989年發(fā)明。Python語(yǔ)法簡(jiǎn)潔清晰,有別于C及C++等其他面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,Python強(qiáng)制用空白符作為語(yǔ)句縮進(jìn)。同時(shí),Python具有強(qiáng)大的類庫(kù),其中shutil模塊一種是高層次的文件操作工具,其強(qiáng)大之處在于對(duì)文件的復(fù)制刪除都有較好的支持。
4 數(shù)據(jù)寫(xiě)入
在FME中,數(shù)據(jù)的寫(xiě)入一般有兩種方式,一種為靜態(tài)模式,一種為動(dòng)態(tài)模式。靜態(tài)模式需要充分定義數(shù)據(jù)集的結(jié)構(gòu),并且需要緊密綁定該結(jié)構(gòu),而動(dòng)態(tài)模式則沒(méi)有這些束縛,同時(shí),動(dòng)態(tài)模式可以用于數(shù)據(jù)的更新操作而不破壞數(shù)據(jù)本身的結(jié)構(gòu)。所以在本程序中將使用動(dòng)態(tài)模式作為數(shù)據(jù)的寫(xiě)入方式。如下圖1所示為以廣元元壩區(qū)的行政界線為例所做的標(biāo)準(zhǔn)分幅,可以看到XZJX層的字段是沒(méi)有變化的,并且每個(gè)分幅數(shù)據(jù)庫(kù)包含了所有的數(shù)據(jù)庫(kù)表。經(jīng)過(guò)對(duì)生成數(shù)據(jù)的檢查,數(shù)據(jù)符合地理國(guó)情外業(yè)工作的相關(guān)規(guī)定,達(dá)到了預(yù)期的目的。
5 結(jié)語(yǔ)
地理國(guó)情普查是一項(xiàng)很重要的工作,同時(shí)也是一個(gè)數(shù)據(jù)量非常大的工作,有的工作不能完全靠人工來(lái)完成,F(xiàn)ME的合理應(yīng)用能極大的提高工作效率,促進(jìn)項(xiàng)目的進(jìn)展。當(dāng)然,本文也只是FME在地理國(guó)情普查工作中的一個(gè)小小的應(yīng)用,而更多的技巧還需要我們不斷的努力與探索。
參考文獻(xiàn)
[1] 專著——Magnus Lie Hetland.Python基礎(chǔ)教程[M].第二版.人民郵電出版社.2014.