陳一祥 崔 斌 李文梅 苗立志
(南京郵電大學地理與生物信息學院 江蘇·南京 210023)
當前在移動互聯網、大數據、超級計算、傳感網、腦科學等新理論新技術的驅動下,人工智能正加速發展,成為新一輪科技革命和產業變革的核心驅動力,推動經濟社會各領域從數字化、網絡化向智能化加速躍升。人工智能在各領域的快速蔓延和滲透,給測繪地理信息產業帶來新的機遇和挑戰。社會對智能化測繪人才的迫切需求,也正深刻影響著高等院校測繪、遙感和地理信息相關專業的人才培養模式。地理空間數據的處理、分析和建模是這些專業都涉及的主要學科方向之一,時空大數據和地理空間智能成為新的研究熱點。
對于測繪類專業的學生,能夠利用人工智能的新理論新技術有效處理這些地理空間數據,已成為他們十分重要的技能。目前,一些常用的專業軟件如ArcGIS、ENVI等,在人工智能方面的功能仍然相對滯后,對于大量的空間數據的處理和分析任務只有使用程序代碼才能實現。在各種編程語言中,Python已成為人工智能領域最受歡迎的編程語言之一,在2020年11月的TIOBE排行榜中,Python已超越Java位居第二的位置(前三名依次為:C、Python和Java)。相比于C和Java語言,Python語法簡單易學,非常適合非計算機專業學生學習,并且它采用開源模式提供豐富的面向特定應用的第三方庫,比如用于科學計算、數據分析和可視化的NumPy、SciPy和Matplotlib庫以及用于處理地理空間數據的GDAL和OGR庫等。Python簡單的語法加上第三方模塊的支持,使學生能夠更多地關注問題的解決而不是復雜的編程過程,這對于增強學生的學習信心、培養他們的學習興趣、提高他們分析和解決問題以及實際動手能力均具有重要的作用。為此,我們為測繪科學與技術專業的碩士研究生開設了《Python空間數據分析》這門課程。通過該課程的學習,使學生能夠使用Python語言和豐富的第三方模塊來處理和分析地理空間數據,同時借助Python在人工智能領域的優勢,使學生能夠快速掌握機器學習、深度學習等人工智能算法和流程。
該課程是利用Python語言來處理和分析地理空間數據,其重點不在于Python語言本身,而是空間數據的處理和分析方法及其Python支持的第三方模塊。該課程的教學內容和學時安排如表1所示,總計32學時。

表1:教學內容及學時
“Python語言基礎”這部分介紹Python語言的基礎知識,包括數據類型、控制語句、函數等基本語法以及常用的集成開發環境(如Jupyter、Spyder和PyCharm等),掌握這些常用的基礎內容即可讓學生進行實驗操作,通過后續的自主學習和實踐學生能很快把這門語言使用起來。“Python地理空間分析工具”這部分重點介紹地理空間數據分析常用的第三方模塊,比如Python網絡庫urllib,科學計算和數據分析庫NumPy、SciPy和Pandas,數據存儲和交換庫json/geojson,矢量數據處理庫OGR和PyShp,柵格數據處理庫GDAL,圖像處理和計算機視覺庫PIL和OpenCV-Python等。
“Python矢量/柵格數據的空間分析”這兩部分是該課程重點要學習的內容。地理空間數據主要包括矢量和柵格兩種類型。矢量數據是對現實世界地理要素的抽象,可分為點要素、線要素和面要素,常用的文件格式為shapefile。柵格數據是對地理要素或現象的柵格化表示,衛星影像、高程數據(如DEM)均屬于這種類型。不同于普通的自然圖像,衛星影像數據不僅具有投影和坐標,還具有多波段、編碼位數更深的特點,常用的文件格式為tif或geotiff。高程數據一般采用ASCII網格文件,文件格式相對簡單。對于矢量數據的空間分析,該課程重點學習OGR、PyShp和OSR這三個矢量數據處理庫,其內容包括shapefile文件的讀寫、編輯、空間查詢、屬性查詢、密度制圖、緩沖區分析、疊置分析、空間參考系統等。在柵格數據的空間分析部分,會重點學習如何使用GADL模塊來實現衛星影像的讀寫、裁剪、直方圖創建、基于直方圖的影像分類和變化檢測等功能。
“Python機器學習/深度學習”這部分是地理空間數據智能化處理的重要內容。這部分重點介紹當前機器學習和深度學習領域代表性的模型和算法及其Python支持的工具包。對于Python機器學習,主要學習Scikit-learn(sklearn)模塊,并基于該模塊來實現K近鄰、線性回歸、邏輯回歸、樸素貝葉斯、神經網絡、支持向量機、決策樹、隨機森林等監督分類算法。在Python深度學習這部分重點學習Google的深度學習框架TensorFlow,并使用該框架來實現線性回歸、基于卷積神經網絡的手寫數字識別和遙感影像場景分類等功能。
“Python空間數據分析綜合應用”是對前面各部分知識和方法的綜合應用,這部分以學生自學為主,會設計1-2個綜合性的題目(比如商場選址、遙感地物智能識別)讓他們用Python環境來實現。
按照該課程的教學內容和學時,我們對測繪科學與技術專業的碩士研究生進行了一學期的教學實踐,收到了良好的教學效果。學生們不僅學到了地理空間數據分析的理論方法、掌握了Python這一重要的數據處理工具,還大大開拓了他們的學術視野,學生通過課堂接觸并親自動手實踐了機器學習、深度學習領域代表性的人工智能算法,這些算法和技能的快速掌握有利支撐了他們的科研工作。一些同學已將這些算法用于解決自己科研課題中的問題,收到良好的成效。另一面,對教師來說,教師在從事地理空間數據智能處理的研究過程中,相關素材(如模型、算法、案例)很容易補充到教學中,形成科研對教學的良好反哺。
由于學時有限,僅利用課堂的時間學生不足以完成所有的教學內容。在課堂上老師只需重點介紹關鍵的原理、算法及其支持的 Python第三方模塊并給學生提供相關的示例代碼,剩下的時間留給學生自主去練習和學習。無論課上還是課下,都要給學生布置一定的量的帶有研究性質的課題任務讓他們利用學到的知識和技能去自主解決。這些課題任務主要是在課后完成,可以要求他們以報告或作業的形式提交問題解決的思路、流程、程序代碼和實驗結果。由于課程設計的內容比較新穎又是當前社會關注的熱點,學生課堂學習很有收獲,因此他們大多對該課程很感興趣,大都能夠在課下自覺完成老師布置的課題任務。另外,教師也要加強人工智能、空間數據處理方面的科學研究,將最前沿的理論方法、算法和案例補充到課堂教學中,使該課程的教學能夠與時俱進,不斷吸收人工智能、大數據、計算機視覺等領域的最新成果,這樣才能讓測繪類專業的學生不斷接觸到新的前沿的內容,這對于增強他們的學習興趣、開闊他們的學術視野、提高他們的創新能力等都具有重要的作用。
利用Python語言及其支持的第三方模塊來處理地理空間數據具有顯著的優勢,非常便于將當前人工智能、大數據和計算機視覺等領域的主流模型和算法及時引入測繪、遙感和地理信息領域,實現地理空間數據的智能化處理。因此,對測繪類專業的學生來說,開設《Python空間數據分析》這門課程非常具有必要性和實用價值。實踐表明,通過該課程,學生不僅能夠學會使用Python語言和第三方模塊來處理和分析地理空間數據,還能夠增強他們的學習信心、開拓他們的學術視野,提高他們的科研能力和效率。