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