參賽單元:傳統GIS資料處理
作者:王奇彪
機關:安徽中彙規劃勘測設計研究院股份有限公司
一、概述
近些年來,随着我國省市縣“多規合一”及空間規劃的編制實施,規劃編制技術日益成熟,GIS技術在實際工作中得到了較好的發展,很多規劃編制機關甚至要求規劃設計人員熟練掌握GIS軟體。這在一定程度上推進了GIS技術在規劃編制的應用,特别是對過去CAD規劃制圖技術人員的要求更高,不僅要懂得CAD檔案、更要學會運用GIS軟體。盡管如此,但對于規劃設計人員來說,在實際工作當中還是遇到了許多的問題,比如資料格式的轉換、坐标系統的轉換、甚至是操作習慣的轉變等等。
年輕的規劃設計人員學習軟體的速度普遍較好,而對于工作五年以上甚至是十年以上的規劃人員來說,則相對較為困難,他們還是習慣傳統的CAD制圖,同時對于甲方特别是規劃主管部門而言,要求在送出成果的時候必須包含CAD檔案,這對于目前“多規合一”及空間規劃的編制成果要求來說,就面臨着三個方面的現實需求:
第一、甲方要求。規劃主管部門或者甲方機關在合同中明确規定了送出成果中必須包含CAD檔案成果;
第二、規劃編制機關項目負責人要求。對于項目負責人而言,還是習慣于CAD檔案的浏覽方式,GIS資料隻是更友善設計人員使用。
第三、規劃設計人員。主要是包括工作年限超過五年或者十年以上的人員,他們普遍采用CAD軟體制圖,對于GIS軟體并不熟悉甚至沒有使用過,造成GIS資料與CAD檔案之間在習慣和應用上存在沖突。
是以,本文提出:借助FME強大的資料轉換功能,将GIS資料檔案轉化成CAD檔案并制作圖框和圖例,友善兩者能夠很好的銜接,在實際工作當中更好的運用各自優勢,完成相關的規劃編制任務。
最終達到的成果:将某一區域範圍内的用地布局SHP資料動态的轉換為具有可操作的CAD檔案,同時還可具有圖框、圖名、圖例等相關資訊,完成資料格式轉換。
二、總體思路
基于城市總體規劃或者控制型詳細規劃的用地布局資料(SHP格式),利用FME強大的空間資料轉換功能,借助不同轉換器之間的緊密銜接和優化配合,達到将SHP格式的GIS檔案資料轉換為具有可操作可使用的CAD用地布局檔案。

三、具體過程
以某一規劃項目範圍及用地布局為例,主要分為以下幾個部分:
1、FME制作圖框
1.1、FME制作非标準圖框
利用Creator轉換器,使用提供的參數生成要素,并将這些要素發送到工作空間中進行處理。這裡選擇方框選項,建立三種不同的圖框:正方形、豎向矩形及橫向矩形圖框。
1.2、FME制作标準圖框
根據《城市規劃制圖示準(CJJT97-2003)》中圖幅規格的具體要求可知,直接使用0号、1号、2号、3号、4号規格幅面繪制的圖紙為規格幅面圖紙(也稱為基本圖幅或者标準圖幅或圖框)。
利用Creator轉換器,使用提供的參數生成要素,并将這些要素發送到工作空間中進行處理。這裡選擇圖号為A3的幅面為例,制作不帶裝訂邊的标準圖紙幅面。
2、FME制作圖名
2.1、FME制作橫向圖名
首先利用Creator轉換器建立一個橫向矩形框,圖框大小可以任意設定,保證矩形為橫向即可。然後借助TextAdder轉換器将矩形框設定為以點的形式替代的文本要素,并把矩形框的中心點位置作為文本的标注位置,然後利用BoundsExtractor轉換器在不改變文本要素的幾何形狀下,提取其外接矩形(外接矩形要素并不真實顯示)坐标的最大、最小值,并儲存到新屬性中,最後借助Offsetter轉換器将文本要素标注的位置向左下方偏移,最終得到了一個居中标注的圖名要素資訊。
2.2、FME制作豎向圖名
相比較橫向圖名來說,豎向圖名的建立則有一點困難,主要是因為對其進行标注時,其文字一般是一組漢字為一個整體,是以需要對其進行換行處理,這樣才能很好的保證豎向為一列。制作豎向圖名可以選用兩種辦法,一種是直接對其文本字元串進行換行處理,使用轉換器數量與制作橫向圖名一緻,但缺點是如果文本字元串較多,且一旦其出現變化,手動調整較為繁瑣;一種是根據字元串長度和内容進行自動調整,使用轉換器較多,但對字元串調整較為友善快捷。
第一種方法。與橫向圖名的其它步驟一緻,唯一的差別在于TextAdder轉換器的文本字元串需要進行換行設定,具體如下:
第二種方法。
具體步驟如下:
(1)利用Creator轉換器建立一個豎向矩形框,圖框大小可以任意設定,保證矩形為豎向即可。
(2)借助AttributeCreator建立一個新的屬性,命名為圖名,屬性值即為圖名内容,在此設定為某某城市總體規劃用地布局。
(3)接着分兩步走:
第一步建立圖名轉向,即将橫向的圖名轉變為豎向的圖名,且文字保持不變。利用TextAdder轉換器将矩形框設定為以點的形式替代的文本要素,并把矩形框的中心點位置作為文本的标注位置;利用StringSearcher将圖名中的字元串利用指定表達式與正規表達式比對進行處理,然後接着ListExploder 轉換器将清單中的所有屬性暴露出來。
第二步建立與圖名字元串長度一緻的多個矩形框。StringLengthCalculator計算圖名的字元串長度值;利用Tiler将輸入要素切成一系列瓦片,其中豎向瓦片不變,橫向瓦片個數與圖名的字元串長度值保持一緻;Counter為橫向瓦片編号,編号順序為自上而下,同時也為圖名自左向右進行屬性挂接做準備。
(4)利用FeatureMerger轉換器将圖名内容與橫向瓦片進行比對,同時保證橫向瓦片自上而下與圖名内容自左向右進行比對。
(5)利用TextAdder将比對之後的單個字元用以點的形式替代的文本要素,利用BoundsExtractor轉換器提取其外接矩形(外接矩形要素并不真實顯示)坐标的最大、最小值,并儲存到新屬性中,最後借助Offsetter轉換器将文本要素标注的位置向左下方偏移,最終得到了一個居中标注的圖名要素資訊。
3、FME制作圖例
3.1、FME制作橫向圖例(面狀)
(1)總體設計
(2)詳細步驟如下:
- 建立橫向矩形圖框
利用Creator轉換器建立一個矩形圖框,其目的有三:一是作為圖例填充和圖例标注的轉換輔助;二是建立圖例文本、三為圖例外框。圖框方向為橫向。
- 建立圖例文本及文本外框
建立圖例外框需要對新建立的橫向矩形圖框進行分割,是以利用Tiler轉換器建立一個兩行十列的矩形小框,其屬性包括_column和_row,然後利用Tester轉換器篩選_column屬性值為0的小矩形框,然後分三步進行操作:
第一步:利用TextAdder建立圖例文本标注,需要對其進行豎向設定,即如果_row為0則建立圖示注;若_row為1則建立例标注,否則不建立。利用BoundsExtractor轉換器提取其标注外接矩形(外接矩形要素并不真實顯示)坐标的最大、最小值,并儲存到新屬性中,最後借助Offsetter轉換器将文本要素标注的位置向左下方偏移,最終得到了一個居中标注的圖例标注資訊。
第二步:利用Dissolver,對Tester轉換器篩選_column屬性值為0的小矩形框進行融合,制作圖例标注的外接圖框。
第三步:利用Tester轉換器篩選_column屬性值不為0的小矩形框,進行下一過程的具體操作。
- 建立圖例圖框及圖例标注
首先對篩選_column屬性值不為0的小矩形框進行融合(Dissolver)出來, 利用Scaler操作進行相應比例縮放,此步驟為圖例建立過程中協調圖例所示内容,利用2DGridAccumulator分割融合之後的矩形框,其屬性包括_column1和_row1,再次利用Scaler對分割後的小圖框進行縮放,以達到圖例規範要求。
利用StringSearcher對分割後的小圖框進行篩選,對_column1利用正則表達^\d*[02468]$,選擇出偶數列,這樣做的好處在于對應圖例表達樣式;Counter_對其進行編号,起始數為1,計數範圍選擇本地,這樣就能夠保證水準方向相鄰近的兩兩矩形小框計數一緻。
AttributeValueMapper設定映射對象,對Counter_計數映射為城市總體規劃用地代碼大類(該過程僅作為測試使用);Tester對矩形圖框進行篩選,分為兩部分,一部分為填充色塊,一部分為标注屬性。是以。
接着分為兩步,第一步篩選出來的填充色塊,利用FeatureColorSetter設定顔色;
第二步剩下的則可以利用AttributeValueMapper轉換器映射标注,然後标注相對應的色塊填充資訊。
3.2、FME制作豎向圖例(面狀)
制作豎向圖例(面狀)原理與橫向圖例(面狀)的制作大同小異,僅僅對其進行稍作調整即可,本節略。
3.3、FME制作橫向圖例(線狀)
制作橫向圖例前需要思考的問題主要是,線狀圖例是用線表示還是用面來表達,不同的表達方式,制作過程不同,結果也不相同,是以需要對兩種不同的方式進行制作。
(一)第一種用面狀形式表達線狀圖例。
1、總體思路
2、具體過程:
①利用Creator轉換器建立橫向矩形框;
② 利用Tiler對矩形框進行切分,使其變成兩列三行的小矩形,屬性添加_column與_row;其中,_column值為0表示第一豎列,值為1表示第二豎列(如切分列數大于2時,以此類推)。
③利用Tester将上一步驟的兩列分布篩選出來,篩選第一豎列,設定_column值為0即可,然後分兩步,第一步利用Dissolver将其融合為線狀圖例的外框,并對其縱向進行适當縮放(Scaler)確定圖例表達适中;
第二步再次Tester,篩選第一豎列中間的小圖框,設定_row值為1即可,并對其縱向進行适當縮放(Scaler)。
④接着上一步驟基礎上,繼續篩選第二豎列中間的小圖框,隻需設定_row值為1即可,然後利用TextAdder添加圖例标注資訊并設定文字大小,借助BoundsExtractor提取标注資訊的四至坐标,然後通過Offsetter對标注的文本資訊進行偏移,将其移至該小圖框中間位置。
(二)第二種用面狀形式表達線狀圖例。
1、總體思路
2、具體過程:
①②兩步參照第一種方法;
③ 利用BoundsExtractor轉換器提取矩形圖框的四個拐點坐标,然後利用VertexCreator求取矩形圖框的橫向中心線兩端的坐标點,LineBuilder将這兩個坐标點進行連接配接,建立線狀圖例樣式,并借助FeatureColorSetter對其進行設定顔色。
④利用TextAdder添加圖例标注資訊(如規劃範圍)并設定文字大小,借助BoundsExtractor提取标注資訊的四至坐标,然後通過Offsetter對标注的文本資訊進行偏移,将其移至中間位置。
3.4、FME制作豎向圖例(線狀)
制作豎向圖例(線狀)與制作橫向圖例原理基本上大緻相同,就不做重複之前的制作過程了。(本節略)
3.5、FME制作點狀圖例
制作點狀圖例相對較為簡單,隻需要根據不同的表達進行建立即可,本節略。
4、資料格式轉換
針對城市總體規劃及控制性詳細規劃中的用地布局資料,通常來說都是将建立的CAD檔案轉換成GIS資料(SHP檔案),但由于CAD檔案自身缺陷,使得在規劃方案調整階段轉換較為繁瑣,且效率極其低下,是以,包括資料處理、資料管理以及資料後期的更新等等都在GIS軟體完成,這樣就造成GIS資料需要轉化成CAD檔案進行實際應用。以某規劃項目的用地布局資料為例,結合實際情況,運用FME将GIS用地布局資料轉換成具有色塊填充與用地代碼及圖層相對應的CAD檔案。
4.1、總體思路
主要是借助AttributeCreator轉換器以及寫子產品的參數設定,同時利用模闆檔案對其進行資料轉換。
4.2、制作過程
其實針對于CAD檔案面狀資料而言,主要是具有可識别其用地代碼及用地屬性的色塊填充,而線狀資料則是不建立色塊填充,其用地布局具有閉合的線狀檔案。其制作相關步驟及過程已在第三部分詳細說明,不再重複。
(1)SHP轉CAD(面狀資料)
該模闆制作過程主要分為以下幾個過程:
j 利用2DForcer轉換器,移除所有的高程(Z)坐标;
k 借助AttributeCreator轉換器,設定新的屬性值。經過對CAD檔案進行分析可知,僅需要建立autocad_layer(圖層)、autocad_entity(實體)、autocad_color(顔色)三個屬性值即可;并對其進行分别指派:autocad_layer(圖層)的屬性值為[email protected](YDDM)或YDDM;autocad_entity(實體)屬性值為autocad_hatch;autocad_color(顔色)屬性值為bylayer。這樣就可以保證SHP檔案轉換為CAD檔案了。
l寫子產品設定:層 名稱設定為autocad_layer(圖層);同時需要對輸出的CAD檔案格式進行模闆設定,模闆檔案可為标準的CAD用地布局檔案(可為色塊填充與圖層名稱一一對應的CAD檔案)。
(2)SHP轉CAD(線狀資料)
具體步驟與上述SHP轉CAD(面狀資料)設定基本一緻,唯一的不同在于AttributeCreator轉換器對 autocad_entity(實體)的屬性設定,在此需要将autocad_entity(實體)屬性值為autocad_polygon即可。
四、關鍵技術
1、利用研究範圍制作動态圖框
根據不同的研究範圍可以将其分為三種情況:橫向圖框、豎向圖框或者橫向與豎向圖框均可。然後借助其外接矩形框的長寬值大小來判斷(BoundingBoxReplacer或者BoundsExtractor)研究範圍的外接圖框是橫向、豎向還是兩者皆可,如果外接矩形框的長度值大于其寬度,則可采用豎向圖框;如果外接矩形框的長度值小于其寬度,則易采用橫向圖框,否則兩者都可。選擇好外接矩形框後,就可以根據不同的情況制作相對應的圖名與圖例位置。最終的所要達到的目的就是利用研究範圍來動态制作圖框、圖名及圖例内容。
2、利用網格切分制作動态圖例
動态圖例主要是針對圖框的選項而言的,其根據切割技巧對一個完整的矩形框進行分割,然後根據切分後的矩形小圖框與相應的用地分類代碼及用地名稱相對應,制作動态的圖例。
矩形圖框制作完成後,就可以确定圖例所在的位置了。圖例位置确定後,可以對其進行适當的縮放,然後利用2DGridAccumulator或者Tiler對其進行橫向或者豎向切分,切分前需要注意的是是否加上圖例二字,如果有圖例二字,則需要對其進行二次切分;對切分之後的小圖框進行排序和編号(Sorter和Counter),然後與相對應的圖例名稱進行屬性連接配接,并一一對應,制作相對應的動态圖例,這樣就可以保證即使布局的用地種類數量變了,圖例也相應的進行動态變化。
3、利用模闆檔案制作圖例和轉換檔案
借助于城市規劃用地分類标準和相對應的圖例内容資訊,對其進行轉換。在進行該操作之前,需要對用地分類進行制作一個标準的CAD檔案,按照不同的用地分類,對其進行包括圖層、顔色、線型等進行标準設定,同時需要注意的是圖層名稱與用地分類代碼、用地名稱、所使用的用地顔色要一一對應才可使用。
4、過程整合及技術融合完成檔案轉換
本部分是整個過程最為困難的地方,不僅僅是将各過程的簡單合并,更為重要的是需要考慮實際運用,完成技術上的融合。如果可以将其更加流程化,其轉換的優勢自然就展現出來。
五、思考與不足
其實,本人接觸FME已經有三年多的時間了,但是起初并沒有太在意其在城市規劃中的應用,更沒有感觸到其在資料處理的強大。但随着參與項目的增加、接觸的資料及格式越來越多以及運用FME越來越熟練的情況下,逐漸感覺到了FME是實實在在的資料轉換界的瑞士軍刀。本次運用FME解決城市規劃中的問題,也是本人一直在思考的問題,如何能快速的對GIS檔案(SHP格式資料)進行轉換,并制作帶有圖框、圖名、圖例的CAD檔案,總結下來,雖然感覺能做到,由于個人水準所限制,很多過程重複、轉換器使用過多等等。
但同時本人深刻的意識到,FME不管是在“多規合一”、空間規劃、土地利用規劃(三調)或者在即将開展的國土空間規劃中都可以發揮其不可替代的作用。希望有更多的FMEers提供更多的相關經驗分享,也祝福FME China的實力更加強大,繼續提升自己的FME水準,更上一層。
最後,個人能力及水準所限,文中難免出現錯誤,敬請諒解。