將位圖導入為ArcGIS面要素


本文根據筆者經驗,介紹一種從位圖圖像導入ArcGIS稱為要素的方法。這種方法適用於從現有出版物圖片中獲取地理信息的情況。

首先要說明的是,從位圖導入要素是非常非常不精確的方式,如果有其它數據來源,那么就不應該采用此方法。

另外,如果位圖包含的內容相對簡單,區域結構緊湊不零散,則可以考慮ArcMap繪制地圖,而不用此方法。

為讓表述更直觀,筆者從百度衛星地圖截取了 遼寧省康平縣 西泡子水庫附近的區域,作為操作的說明。

00_orign

1. 制作灰度圖

為便於在ArcMap中處理,將原始圖像的色彩變為單一通道的灰度圖,這樣可以根據灰度數值對區域進行識別。

筆者使用Photoshop完成這一工作。

1.1 使用容差填充

這個過程包括去除圖像中的干擾元素,例如區域的邊界線,在之后轉換的時候,只需要保留面要素的區域。當然,如果邊界線較粗,可能會在區域之間留下較大的空白,這是不可避免的信息損失,因為原始圖像本身就沒有這部分信息。

采取容差填充,是為了避免壓縮圖像在色彩邊界處的雜色影響。容差值應根據實際情況試探調節,以能夠將同一區域包含,又能區別不同區域為基准。在清晰度較低的時候,個別圖塊會形成過渡色的效果,此時就需要酌情處理。

例如,當有大塊相同相近顏色的區域時,可以將容差設置到20左右,如果不同類型區域顏色相近,或者相同類型區域內色差較大,可以設置容差為5,逐個填充相近顏色。

如果同一類型區域(屬於同一圖例表達)是分散的,那么填充時應取消“連續”勾選框。

局部個別色塊(如市區中的零散地表)不宜用填充方法,可以使用畫筆塗抹。經過處理后,衛星圖片變成了這個樣子:

01_fill

1.2 去色

這一步是將圖片轉換為灰度圖片。在執行去色操作之前,可以將灰度級別相近的區域用相差較大的顏色重新填充。這一次由於之前的容差填充,相同類型的區域顏色已經基本一致,因此可將容差設置為0。

這里,我們假設我們要將整個地圖分為 水域、林地、農用地、生活工業用地 4種,采用從黑到白的4個灰度表示,重新填充后圖片如下:

02_gray

隨后使用“圖像 - 調整 - 去色”,去除殘留的雜色。

1.3 整理

對原始圖像本身的最后處理,包括填充空白(比如邊界線、挖掉的水印等等),和裁切(除掉透明邊緣、原始圖像的邊框等)。

2. 坐標定義

為了將圖片插入到ArcMap現有地圖的相應位置,需要確定圖片的坐標。如果你不需要為圖片定位,僅僅要對要素的參數進行度量,可略過此節。

筆者使用 ArcGIS online 的 ChinaOnlineCommunity 作為地圖底圖,需要注意該底圖的准確性實際上很低。

2.1 加載圖片拖放拾取參數

ArcMap中加入底圖后,首先將地圖移動/縮放到目標位置附近(康平西泡子水庫),使用 Insert - Picture... 將 02_gray 圖片插入到底圖上。

通過縮放圖片(通過鼠標或設置屬性),將圖片調整到合適比例尺的大小:

注意觀察插入的圖片(即我們后續要使用的柵格圖)與底圖相應地標(湖泊)大小相近。這里必須要說明,這種方式的位置精確度不高,但原始圖像本身可能就存在變形,而且就像一開始提到的,整個過程本身就是非精確的。

移動縮放圖片,不斷調整,直到圖片和底圖的內容基本重合。

此時雙擊圖像對象或右鍵選擇 properties,打開圖像對話框,切換到 size and position 選項卡。在 position 分組框中,調整 anchor point,記錄下圖片 4 個邊緣的坐標值。

本例中為

  • E 13,738,512.5631 m
  • N 5,286,043.8744 m
  • W 13,710,444.7021 m
  • S 5,254,060.7501 m

2.2 定義坐標&偏移

位圖圖像的每個像素即為柵格的單元,由於示例圖像為 w552 * h629 大小,因此每個像素代表的坐標長度為 50.84757。

由於底圖的坐標為 WGS 1984 Web Mercator Auxiliary Sphere 投影坐標系,因此單位為 m。

在得到了坐標信息后,將插入的圖像從地圖上移除,在 Catalog 中添加圖片(即柵格數據)所在文件夾位置,並通過在02_gray上右鍵->properties... 打開柵格屬性對話框。

在對話框的 General 選項卡的 Spatial Reference 處,點擊 Edit 進行編輯,選擇與底圖相同的坐標系,在此例中為:

Projected Coordinate Systems - World - WGS 1984 Web Mercator (auxiliary sphere)

選擇之后雙擊坐標系條目,進入坐標系屬性編輯,並根據已經掌握的信息,修改 假東、假北 以及線性單位的值。

對於此例,

  1. 在線性單位為Meter情況下,設置假東值為 2.1中 W的負值,假北為 N的負值;
  2. 線性單位從下拉框中選擇<custom>,輸入像素代表的距離 50.84757 (此時假東假北會自動相應轉換)

應用修改並確定。

2.3 加入圖層

坐標系和偏移位置定義完畢,將柵格拖到地圖上,生成柵格圖層。

柵格包含4個通道的值,Band1~Band3 分別為 R G B 通道,由於我們之前的灰度處理,每個像素內這 3 個通道的值相等;Band4 為png的alfa通道,表示透明度(此例無用)。

修改圖層的Symbology為Stretched(選擇Band1~Band3均可),即可看到灰度顯示的圖層。

3. 柵格處理

基本的圖像處理已經完成,下面對柵格圖層進行處理,生成要素。

3.1 重分類

柵格的值域是連續的,雖然我們進行過填充和去色,仍然可能包含圖例外的灰度值,要轉換成要素,需要依據圖例數量(本例為 4 ,分別為 水域、林地、農用地、生活工業用地)重分類。

使用 Spatial Analyst Tools - Reclass - Reclassify 工具,按照等分4級方式定義分類。分類后數值從0~255變為1、2、3、4,調整顏色如下。

3.2 轉為要素

基於重分類結果圖層Reclass_png1,進行要素轉換。

使用 Conversion Tools - From Raster - To Polygon 執行轉換,生成面要素圖層,

設置屬性 symbology,采用 categories - unique values 方案,選擇 grid_code 作為取值字段,並為每個值設置符號

4. 制圖

制圖部分僅簡要介紹,因為此部分屬於常規操作,具體步驟可參考教材或其他在線資料。

4.1 編輯要素,設置grid_code

如果你處理的圖例較多,可能還需要手動將一些碎片的grid_code設置為想要的值。使用 (i) 編輯要素即可。

4.2 增加分類字段

要將要素圖層作為地圖的一部分,應按照需要定義domain(在數據集)並增加保存圖例信息的字段(field,在要素類)。

4.3 填充分類字段

使用 DataManagementTools - Fields - Calculate Field 為新的字段賦值。需要使用 Python 腳本。

例如,新增了 text 類型的 Type 字段,用來保存 圖例類型 信息,則計算是配置如下:

執行后可見賦值成功

4.4 融合

從上面的表格可以看出,雖然區域一共分為 4 類,但支離破碎,甚至相鄰區域類型相同。

可以利用 DataManagementTools - Generalization - Dissolve 將相同類型的區域融合起來,成為單一面要素。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM