蒙老師的嘮嘮叨叨這算是城市與區(qū)域經(jīng)濟學的第一次實踐課程,主要做一些ArcGIS的入門介紹。那什么內(nèi)容才算是入門呢?ArcGIS的系統(tǒng)組成?GIS數(shù)據(jù)結(jié)構(gòu)?一個5G信號塔在GIS系統(tǒng)里怎么表示?一個花園小區(qū)呢?長江在系統(tǒng)里是一條線還是一個河面?。。。這些都是GIS課程的基本概念,嘮叨起來那可能一學期的課程也說不完。 所以,我直接跳過關(guān)于數(shù)據(jù)表現(xiàn)形式和數(shù)據(jù)存儲的基本內(nèi)容了(假裝你們都會???)。如果真的不會,請善用以下網(wǎng)絡資源:
https://desktop./zh-cn/arcmap/10.3/main/get-started/a-quick-tour-of-arcmap.htm ArcCatalog 快速瀏覽 https://desktop./zh-cn/arcmap/10.3/main/get-started/a-quick-tour-of-arccatalog.htm ArcMap 基本詞匯 https://desktop./zh-cn/arcmap/10.3/main/map/essential-arcmap-vocabulary.htm 什么是地理數(shù)據(jù)? https://desktop./zh-cn/arcmap/latest/manage-data/main/what-is-geodata.htm 快速瀏覽了前面一些基本概念后,我們主要介紹的是GIS系統(tǒng)的地理坐標系統(tǒng)和投影坐標系統(tǒng)。這依然是GIS系統(tǒng)的入門掃盲點,但是在教學過程中,發(fā)現(xiàn)同學們在這里犯的錯誤還是比較多的,拎出來重點講。 什么是坐標系?在 ArcGIS 中,每個數(shù)據(jù)集都具有一個坐標系,該坐標系用于將數(shù)據(jù)集與通用坐標框架(如地圖)內(nèi)的其他地理數(shù)據(jù)圖層集成。通過坐標系可以集成地圖內(nèi)的數(shù)據(jù)集以及執(zhí)行各種集成的分析操作,例如疊加來自截然不同的來源和坐標系的數(shù)據(jù)圖層。 而GIS 中使用兩種常用的坐標系類型:
什么是地理坐標系統(tǒng)?地理坐標系 (GCS) 使用三維球面來定義地球上的位置,包括角度測量單位、本初子午線和基準面(基于旋轉(zhuǎn)橢球體)。我們常說的經(jīng)緯度,即為地理坐標系。 作為一個合格的地圖數(shù)據(jù)發(fā)布者,在發(fā)布地圖數(shù)據(jù)的同時,應該附上地圖數(shù)據(jù)所使用的經(jīng)緯度信息,如下圖為國家基礎(chǔ)地理信息中心發(fā)布的基礎(chǔ)地圖,在ArcMap的圖層屬性中的Source標簽可以直接看到該數(shù)據(jù)所使用的地理坐標系統(tǒng)。 當Source標簽中的Geographic Coordinate System 顯示為Undefined時,就需要我們根據(jù)數(shù)據(jù)發(fā)布者提供的信息重新定義地理坐標系。下圖為ArcMap系統(tǒng)內(nèi)嵌的DefineProjection工具語法: Python調(diào)用DefineProjection工具的示例如下: #Name: DefineProjection 由于選擇的橢球體不同,不同的地理坐標系統(tǒng)所定義的經(jīng)緯度有少許偏差。如中國官方發(fā)布的地圖數(shù)據(jù)多采用2000國家大地坐標系(CGCS_2000),而通過百度等地圖服務商提供的API獲取的經(jīng)緯度,通常被稱為火星坐標(即地圖服務商根據(jù)算法將真實的經(jīng)緯度經(jīng)過一定的規(guī)則轉(zhuǎn)換后發(fā)布),與真實的經(jīng)緯度存在位置偏差。 值得注意的是,即使我們使用了CGSC_2000地理坐標系統(tǒng),因為經(jīng)度和緯度不具有標準長度,所以無法對距離或面積進行精確測量,或者無法很容易地在平面地圖或計算機屏幕上顯示數(shù)據(jù)。而實證研究中,通常涉及到的是關(guān)于距離或面積的計算,那么,就需要用到投影坐標系了。 什么是投影坐標系?與地理坐標系不同,投影坐標系在二維平面中進行定義,在二維空間范圍內(nèi),投影坐標系的長度、角度和面積恒定。在投影坐標系中,通過格網(wǎng)上的 x,y 坐標來標識位置,其原點位于格網(wǎng)中心,單位通常為米(m)。每個位置均具有兩個值,這兩個值是相對于該中心位置的坐標。一個指定其水平位置,另一個指定其垂直位置。這兩個值稱為 x 坐標和 y 坐標。采用此標記法,原點坐標是 x = 0 和 y = 0。 下圖可以直觀對比地理坐標系和投影坐標系的差異。左圖是地理坐標系(經(jīng)緯度),右圖為投影坐標系(X m, Y m) 簡單來說,投影是一種計算,用于在平面屏幕或紙張上繪制圓形地球。每張地圖都會使地球變形。因為如果不經(jīng)過拉伸、傾斜和撕裂則無法將一個曲面(地球)展平到一個平面上。地圖投影以系統(tǒng)的方式來應用此變形,使得可以控制變形的位置和發(fā)生方式。因此,需要根據(jù)研究目的,選擇正確的投影,以控制感興趣變量,如距離或者面積的形變最小。 投影方式可以分為等角投影,等面積投影和等距投影。等角投影可以局部保存角,因此要素的形狀是真實的。但是這種質(zhì)量的代價是面積和距離的變形。等面積投影可以保留面積,但會犧牲角度,因此某些地方的形狀會出現(xiàn)偏斜。等距投影可保留距離,盡管這些距離只能從地圖上的某些點或沿某些線測量。 ArcGIS 中提供了數(shù)十種投影方式,我們需要做的就是根據(jù)研究目的,保留距離或者保留面積,然后進行投影轉(zhuǎn)換即可。需要注意的是,投影坐標系始終基于地理坐標系,先定義了地理坐標,才能將地理坐標進行投影轉(zhuǎn)換(簡單說,就是將地圖單位從經(jīng)緯度變成米)。 Python調(diào)用Project工具的示例如下:
嘮嘮叨叨了這么多,其實最重要一點是,當我們從不同的渠道拿到各種地圖數(shù)據(jù)時候,第一步要做的就是將同一個項目的數(shù)據(jù)都變換到同一個投影坐標系下,而蒙老師通常的做法是,使用一個已經(jīng)已知坐標系統(tǒng)的數(shù)據(jù)A(如代碼中的'city')作為參考,將所有新數(shù)據(jù)都投影到數(shù)據(jù)A的坐標系統(tǒng)下,省去了每次投影變換都要去查詢WKID的煩惱。以下為Python的實現(xiàn)代碼: #Description: Records the coordinate system information for the specified input dataset or feature class |
|