“
本文來自 #GIS Day創意GIS作品征集# 比賽的第一名獲獎者: 葉山, 威斯康辛大學麥迪遜分校地球科學系,博士研究生。
作為一名“ 恐龍+GIS”的愛好者,其作品《 北美西部的恐龍化石分布圖》獲得了超多恐龍忠粉的追捧與喜愛,今天作者就要給大家奉上詳細的制作教程~
今天給大家展示一下我在 #GIS Day制圖比賽# 中的參賽作品的制作方法。世界上沒有完美的地圖,尤其是這種主要用于“制圖炫技”的地圖。由于每個人的審美偏好不同,每一幅作品都不可能讓所有人滿意。
我在知乎上發布過一些地圖設計中的基本原則,它們是由我的本科導師、地圖學家辛西婭·布魯爾(Cynthia Brewer)總結的,有興趣的話可以移步圍觀:
但即使是這樣的“原則性建議”,也并不符合所有人的胃口。因此在這里,我只重點介紹這幅參賽地圖制作過程中用到的3種“ 不太常規”的手段。具體細節的把控(例如顏色選擇和風格設計)就留給大家按照自己的審美和喜好去自由發揮了。
0 1
點狀要素之間的連線
這里用到的是ArcMap中的XY To Line(XY轉線)工具。首先需要的是準備數據。我從PaleoBioDB古生物數據庫中導出了北美洲恐龍化石的數據,并儲存為csv格式。數據里,每一個化石都對應著兩組坐標,即其現在的位置(lat和lng)以及它形成時的位置(lat_paleo和lng_paleo),如下圖的黃色高亮部分所示。
將該文檔添加到ArcMap的數據框之后,先連續兩次通過Display XY Data(添加XY數據,在數據欄的對應數據中點擊右鍵打開)工具,將所有數據根據其現坐標和古坐標添加到地圖中,形成兩組點狀要素。
然后在ArcToolbox中打開XY To Line工具,并按下圖進行設置:
完成之后,一個新的線要素層會被添加到ArcMap中。每一個數據中的兩個坐標會被一條線所連接。
每條線要素的列聯表里還包含了該數據的其它屬性,可以根據它們來對線進行渲染。這個功能不僅能夠繪制這種一對一的線,也能用于繪制一對多的線,比如某個飛機場始發航線目的地的示意圖,就可以利用這個功能來繪制。
0 2
點狀渲染
實際上,在ArcMap自帶的渲染風格里,就有類似的點狀渲染風格。但ArcMap自帶的風格無法根據地圖投影的變化而重新排列點陣。想要讓點陣根據地圖的投影而改變排列方向和密集程度,就需要另辟蹊徑,通過ArcMap中的Grid Index Features(創建格網索引要素)工具來制作。這個工具原本是被設計來制作地圖冊的,但實際上它的用途遠遠超過了預期。比如在進行空間熱點分析時,可以用它來代替希森多邊形,在某些情況下能夠獲得更可靠的結果。而制作點狀渲染也是這個工具的重要潛在用途之一。
首先,建議在數據框屬性中,把地圖的坐標系調整為WGS 1984 Web麥卡托。然后在ArcToolbox里開啟Grid Index Features工具,并按照下圖進行設置:
運行之后,ArcMap里會生成一個新的網格要素。例如,當我針對“大陸”圖層進行網格創建之后,會得到覆蓋大陸區域的網格要素。接下來,如果我們不希望點狀要素“溢出”到陸地邊界之外,可以進行下一步操作(我的地圖作品中省略了這一步,因此有部分點落到了陸地范圍之外):
選擇之后,將選中的網格再次導出為新的要素。這些網格的中心就全部都位于陸地范圍之內了。提取可用的網格之后,打開它的列聯表,新建一個屬性,并用Field Calculator(字段計算器)將其賦予同樣的值(字段的屬性和具體的值是任意的,只要保證所有的值都一致即可)。這是為稍后的渲染做準備。
下一步是對網格進行渲染。打開網格的屬性,按照下圖所示進行渲染:
完成之后,你就能獲得由點狀圖案填充的大陸。之后你可以對地圖進行重新投影,而點陣的排布和密度也會隨著投影發生變化,讓投影的效果更為生動。
0 3
光影效果
參賽地圖中光影效果的制作使用到了Multiple Ring Buffer(多環緩沖區)功能。對光影效果的制作應于最后一部完成,在開始制作之前,一定要把投影、中心和縮放調整到滿意的狀態。
首先,新建一個多邊形要素,將其添加到ArcMap,再用編輯工具在該空要素里創建一個橢圓形,該橢圓形的一端將成為燈光效果聚焦的高光區域。如下所示:
接下來,在數據庫屬性里,設定好地圖的背景顏色。然后在橢圓形的屬性里進行渲染設置。如下圖所示:
需要注意的點:1)漸變色階越多,漸變效果越好;2)漸變部分的百分比應小于等于50%,否則會出現燈光在遠端再度收斂的錯誤效果;3)角度應設為0度;4)在色帶上點擊右鍵,可以選擇打開編輯窗口;5)顏色1為燈光聚焦處的顏色,應比底色更亮;6)添加的顏色2需與地圖的背景顏色完全一致。
設置完以后,將該圖層放于地圖中所有點、線要素的下方。然后,在ArcToolbox里打開Multiple Ring Buffer工具,并按照下圖所示進行設置:
其中,緩沖區的數量越多,光影的效果就越好。而緩沖區的大小則需要根據地圖的總體尺度來決定。如果不單獨設置,緩沖區的距離單位為你的坐標系所決定。請注意:設置緩沖區時,應按照緩沖距離從小到大依次添加,否則在下一步里難以呈現光影漸變的效果。
當緩沖區要素生成以后,打開其列聯表,并按下圖所示添加一列新的屬性,起名為“透明度”,類型為任何數值類型:
然后打開Field Calculator(字段計算器),按照下圖對該屬性賦值:
這一列屬性將會決定緩沖區的透明度。距離最大的緩沖區透明度為100%,因此你需要根據你緩沖區中的距離數據,來調整在計算器中輸入的內容。完成后會得到類似下圖所示的結果。
接下來,打開緩沖區要素的屬性,將其渲染方式改為Single symbol(單一符號),并讓它的漸變和色帶設置與上面的橢圓形完全相同。
之后,右鍵點擊Advanced(高級設置),選擇Transparency(透明度)。
此時會出現一個新的窗口,在其中的下拉菜單里,選擇剛才添加的“透明度”屬性。如下圖所示:
點擊確認之后,光影效果的渲染就會完成。因為這里只是做示范,我只設置了20圈緩沖區,距離從20km漸變到400km。在參賽地圖里,我設置了180圈緩沖區,背景和色帶的顏色也有所不同,因此其光影漸變效果更加柔和。
以上就是我的地圖中所用到的三種不太常用的操作。參賽地圖中的其余內容都是通過ArcMap的常規操作完成的。
祝大家畫圖愉快~


