劉星根 吳則禹
江西理工大學土木與測繪工程學院 江西贛州 341000
開放科學在當前科技創(chuàng)新發(fā)展中具有重要影響。在全球氣候變化挑戰(zhàn)和人類可持續(xù)發(fā)展切實需求下,共同建設(shè)人類命運共同體、創(chuàng)建人與自然和諧共生的地球環(huán)境,進一步凸顯了加強國際合作、建設(shè)開放科學的緊迫性和重要性。開放科學的定義目前仍舊缺乏廣泛的共識。早期邁克爾·尼爾森提出了一個非正式的開放科學定義,開放科學是盡快實現(xiàn)科學發(fā)現(xiàn)過程中的科學知識共享的理念[1]。維基百科定義為社會各群體包括專門研究人員和公眾都可自由獲取科學研究、數(shù)據(jù)、傳播科學知識的活動。歐盟委員會指出,開放科學為通過數(shù)字工具、網(wǎng)絡(luò)和媒體實施、傳播科研并轉(zhuǎn)變科學研究的方式,促進科學過程更加高效、透明和有效[2]。盡管目前缺乏統(tǒng)一的開放科學的定義,但不同研究者或行業(yè)的開放科學概念中均蘊含著“自由、開放、合作、共享”的開放科學理念[3]。
實際上,開放科學的思想和實踐由來已久。1665年英國皇家學會創(chuàng)辦《哲學通報》時強調(diào),所有的新發(fā)現(xiàn)應盡可能地在更大范圍內(nèi)傳播[1]。20世紀90年代以來,出版界興起以自由擴散科學知識為核心的開放獲取運動,2002年形成布達佩斯開放獲取倡議,是開放科學領(lǐng)域的重要事件。開放數(shù)據(jù)的發(fā)展以2009年美國政府的開放數(shù)據(jù)門戶網(wǎng)站(data.gov)上線為標志,助推了各國科學研究進程,比如美國陸地資源衛(wèi)星的開放獲取促進了各國資源開發(fā)利用、環(huán)境監(jiān)測、生態(tài)管理等方面的研究。
開放科學背景下地方高校GIS專業(yè)教學改革面臨新的形勢,本文以“Python與開源GIS”課程為例,探究開放科學理念與開源GIS關(guān)系,分析Python語言特征及其在開源GIS中的應用,為高校GIS專業(yè)教學改革提供參考。
開放科學不是空洞的理論名詞,它由與開放研究相關(guān)的多要素構(gòu)建而成。比如目前蓬勃發(fā)展的開放獲取、開放數(shù)據(jù)、開放評審等。盛小平和楊智勇[1]指出開放科學涉及開放研究生命周期的一系列問題,其中最重要的是:開放獲取、開放數(shù)據(jù)、開源軟件、可復制的研究、開放同行評審、開放科學政策、開放資助、開放科學評估、開放科學工具、開放教育。劉桂鋒等[3]結(jié)合文獻調(diào)研和網(wǎng)絡(luò)調(diào)查的方法,構(gòu)建了開放科學政策、開放獲取、開放數(shù)據(jù)、開放資源、開放同行評審、開放教育資源為內(nèi)容的開放科學體系。開放科學的內(nèi)容體系決定其具有三個顯著特征,第一是開放性,與傳統(tǒng)科學研究范式不同,開放科學強調(diào)研究過程、知識、工具的自由、開放、共享;第二是社會化,科學研究過程不再局限于少數(shù)受過專門訓練的研究人員,公眾成為科學研究的重要參與者;第三是動態(tài)更新,科學知識的更新速率要遠遠超過以往時代,開放科學有助于人類科學知識的快速更新。
開放科學背景下GIS發(fā)展勢必面臨新的機遇和挑戰(zhàn)。隋殿志等[4]提出開放GIS至少存在8個維度,分別是開放數(shù)據(jù)、開放軟件、開放硬件、開放標準、開放研究、開放出版、開放募資、開放教育。開放GIS存在四大挑戰(zhàn),包括學術(shù)文化和獎勵制度的挑戰(zhàn)、現(xiàn)有的知識產(chǎn)權(quán)法律的挑戰(zhàn)、社會/政治阻礙和變化的權(quán)利關(guān)系的挑戰(zhàn)、環(huán)境威脅與可持續(xù)發(fā)展的目標的挑戰(zhàn)[4]。開放GIS也存在若干機遇,比如空間大數(shù)據(jù)的涌現(xiàn)為開放GIS提供契機、開放GIS在個體和集體決策中越來越重要、開放GIS有利于每個人更加了解地球、開放GIS在提高全民科學素養(yǎng)尤其是空間思維上具有不可替代的作用。
Python是面向?qū)ο蟮慕忉屝湍_本語言,與編譯型語言相比,具有簡單易學、可擴展、可嵌入、跨平臺等突出優(yōu)點。Python語言在GIS教學科研實踐中具有顯著優(yōu)勢。從學習成本和效率上看,相對于其他語言,Python語言的語法簡單,閱讀上更接近自然語言。根據(jù)訪談?wù){(diào)查發(fā)現(xiàn),一部分GIS專業(yè)大二學生即對Python表現(xiàn)出濃厚興趣,經(jīng)常利用課余時間自學從而提高GIS應用和開發(fā)水平。從課程設(shè)置和教學角度,Python語言遵循開源共享理念,學校教學成本較低,不需要額外花費軟件或系統(tǒng)購置費用;同時網(wǎng)絡(luò)上具有大量基于Python的教學材料、視頻和案例,為提高教學效率和鍛煉學生編程技能提供了良好環(huán)境。由于Python語言本身的開源等特征,不同研究者或用戶均可以設(shè)計和發(fā)布實現(xiàn)某些功能的第三方庫或包,因此基于Python的GIS行業(yè)生態(tài)愈加豐富,從底層開發(fā)的算法到高度封裝的庫或包,為GIS學習和應用提供了諸多便利。Python語言與開源GIS的理念和特征存在內(nèi)在聯(lián)系,使得Python語言在開源GIS體系占據(jù)重要角色,助推了開源GIS教學實踐和科技應用。
亢孟軍等[5]認為開源GIS是指遵照開放的標準和協(xié)議開發(fā)并開放源代碼給公眾免費使用、修改和發(fā)行的GIS軟件。與開源GIS相反,商業(yè)GIS是由企業(yè)或研究結(jié)構(gòu)開發(fā)并將源碼作為商業(yè)機密或?qū)@腉IS軟件。前者比如QGIS、SAGA GIS、GRASS GIS等,后者有ArcGIS、MapGIS、SuperMap等。開源GIS最早可以追溯到1978年美國開發(fā)的MOSS系統(tǒng),而1982年GRASS GIS發(fā)布,是開源GIS發(fā)展的重要事件。20世紀90年代,OGC標準的制定和GDAL/OGR項目的啟動對開源GIS推廣起到了決定性的作用。OGC制定了與地理信息數(shù)據(jù)相關(guān)的系列標準,暢通了商業(yè)GIS和開源GIS功能轉(zhuǎn)換的路徑。在2006年具有代表性,開源地理空間基金會(OSGeo)的成立,有利于支持和促進開放地理空間技術(shù)、數(shù)據(jù)和教育資源的共享和協(xié)作。
從課程教學的角度出發(fā),開源GIS軟件體系可以劃分為5個部分:標準層、數(shù)據(jù)庫層、組件層、分析層和應用層[5]。標準層為開源GIS體系提供程序開發(fā)、數(shù)據(jù)存儲和互操作的各類規(guī)范,目前常用的是OGC標準;數(shù)據(jù)庫層主要有PostGIS、MySQL Spatial、Spatial Lite等;組件層和分析層主要是空間數(shù)據(jù)處理分析的庫或包,是GIS綜合開發(fā)的基礎(chǔ),目前常用的有GDAL/OGR、Proj.4、PySAL等;應用層是構(gòu)建在上述內(nèi)容之上的可擴展的系統(tǒng)框架,包括桌面GIS、網(wǎng)絡(luò)GIS和移動GIS等。Python語言在開源GIS體系中具有多方面的作用,一方面,數(shù)據(jù)庫層、組件層、分析層中的包和庫在Python環(huán)境中可以非常方便地調(diào)用,比如GDAL提供了Python版本的調(diào)用接口,另一方面,應用層開發(fā)中可以使用Python進行二次開發(fā)或數(shù)據(jù)處理分析。
在上述發(fā)展背景下,我校GIS教研室于2021年起開設(shè)“Python與開源GIS”課程,面向GIS專業(yè)大三學生,作為專業(yè)選修課程,有利于增強GIS專業(yè)學生使用現(xiàn)代工具能力?!癙ython與開源GIS”主要以空間數(shù)據(jù)的處理、分析以及地圖制圖為主線,以目前最為經(jīng)典、常用的類庫為主,講授開源GIS基本概念,鍛煉學生實踐操作技能。本課程旨在培養(yǎng)學生的開源GIS數(shù)據(jù)處理和應用開發(fā)能力,使學生明確了解開源GIS發(fā)展,鍛煉Python處理地理數(shù)據(jù)水平,深入理解地理信息技術(shù)中的基礎(chǔ)理論,掌握使用編程語言進行地理信息獲取、處理、分析以及應用開發(fā)的技術(shù),從理論和實踐相結(jié)合的角度形成GIS從業(yè)人員的核心素養(yǎng)。
本課程的課程目標與專業(yè)培養(yǎng)目標、畢業(yè)要求存在良好對應關(guān)系。在培養(yǎng)目標方面,主要支撐知識綜合目標,即熟練掌握信息化空間數(shù)據(jù)采集技術(shù)、地理信息系統(tǒng)原理、攝影測量與遙感、GIS空間分析、GIS應用開發(fā)等專業(yè)知識并進行綜合運用,能夠通過知識的融會貫通解決業(yè)務(wù)工作中遇到的實際問題。在畢業(yè)要求方面,即使用現(xiàn)代地理信息系統(tǒng)工具和技術(shù),能夠針對復雜地理信息工程問題,開發(fā)、選擇與使用恰當?shù)牡乩硇畔⒓夹g(shù)、地理空間信息資源、現(xiàn)代測繪和遙感技術(shù)設(shè)備和信息技術(shù)手段,包括對復雜地理信息工程問題的預測與模擬,并能夠理解其局限性。
“Python與開源GIS”課程教學過程中融入了一些思政元素。地理信息技術(shù)與國家安全、經(jīng)濟建設(shè)、生態(tài)保護密切相關(guān)。Python與開源GIS課程通過介紹開源的Python類、庫、包,經(jīng)過課堂講授、案例引導、課后練習等過程,旨在培養(yǎng)學生使用地理信息技術(shù)處理地理信息項目相關(guān)問題的能力。本課程可以激發(fā)學生共同參與科學研究、共同建設(shè)地理信息平臺、共享地理信息技術(shù)的開放科學精神。教學中通過引用一些與我國國情、生態(tài)文明建設(shè)、社會經(jīng)濟發(fā)展等地理信息相關(guān)案例,引導和培養(yǎng)學生對國家和民族的自豪感,促使大學生形成保護環(huán)境、節(jié)約資源等生態(tài)文明理念。
第一章為Python與GIS導論,主要講授GIS的基礎(chǔ)概念、開源空間信息軟件體系和技術(shù)、Python環(huán)境配置、Python基礎(chǔ)用法等,重點理解開源GIS的內(nèi)涵和意義、掌握Python環(huán)境配置過程。
第二章為GDAL操作柵格數(shù)據(jù),主要內(nèi)容包括GDAL包簡介和配置、地理數(shù)據(jù)驅(qū)動、讀取遙感影像信息、讀取柵格數(shù)據(jù)、地圖代數(shù)、訪問索引圖像、創(chuàng)建影像等,重點要求會使用GDAL讀取常用遙感影像和創(chuàng)建影像、會使用GDAL進行地圖代數(shù)計算。
第三章OGR處理矢量數(shù)據(jù),主要講授OGR包簡介和配置、數(shù)據(jù)驅(qū)動、圖層、要素、幾何形狀、創(chuàng)建Shp文件、空間過濾器、空間分析、Fiona包配置和使用,重點掌握使用OGR讀取矢量數(shù)據(jù)、理解矢量數(shù)據(jù)中的圖層、要素、幾何形狀概念,會使用OGR創(chuàng)建Shp文件、掌握Fiona常用方法。
第四章為空間參考和坐標轉(zhuǎn)換,主要講授大地水準面和橢球體、Proj類、OSR模塊、坐標轉(zhuǎn)換,要求會使用Proj類定義和轉(zhuǎn)換投影,會使用OSR模塊定義投影和地理坐標,掌握坐標轉(zhuǎn)換的常用方法。
第五章為Shapely矢量數(shù)據(jù)空間分析,主要內(nèi)容為空間數(shù)據(jù)模型的基礎(chǔ)概念、Shapely幾何要素的操作、DE九交空間關(guān)系、生成新幾何對象的方法、合并線性要素,要求會使用Shapely進行常用的幾何要素操作,掌握Shapely生成新幾何對象的方法。
第六章為SpatiaLite處理空間數(shù)據(jù)庫,主要內(nèi)容包括開源數(shù)據(jù)庫簡介、SpatiaLite包配置、常用命令行、SQLite的類型、評價幾何對象之間的關(guān)系,重點掌握SpatiaLite的常用命令行用法。
第七章為Mapnik和Basemap地圖可視化,主要講授Mapnik概述、地圖制圖常用方法、Basemap地圖可視化,要求學生掌握Mapnik地圖制圖和Basemap地圖可視化的方法。
學時分配主要考慮Python語言基礎(chǔ)知識和GIS專業(yè)應用開發(fā),強調(diào)GIS數(shù)據(jù)模型與分析功能實現(xiàn),旨在培養(yǎng)學生將GIS專業(yè)知識與Python交叉融合,應用Python語言實現(xiàn)GIS信息管理、分析、顯示等常用功能。具體學時分配見下表。
學時分配表
本課程考核采取階段性測試、項目實踐操作相結(jié)合的考查方式,以理論水平、實踐創(chuàng)新、團隊協(xié)作能力和分析解決問題能力等構(gòu)成新的評價體系,總體成績由平時成績和期末成績兩部分構(gòu)成??疾閮?nèi)容主要圍繞教學大綱,要求學生理解開源GIS基礎(chǔ)理論、掌握Python的地理空間分析主要方法,包括柵格數(shù)據(jù)和矢量數(shù)據(jù)的讀寫、地圖代數(shù)、幾何計算,柵格和矢量數(shù)據(jù)的空間分析,地圖制圖和地圖可視化的主要方法。
“Python與開源GIS”課程開設(shè)以來,面向地理信息科學專業(yè)和城鄉(xiāng)規(guī)劃專業(yè)學生累計授課達170人次,開放科學理念得到宣傳和推廣。授課班級學生2022年度參加易智瑞、超圖等專業(yè)GIS競賽30人次,其中獲獎20人次,開源GIS技能得到實踐鍛煉和鞏固提高。
開放科學對現(xiàn)有理工科專業(yè)知識體系和課程教學方式帶來新的挑戰(zhàn)。以GIS專業(yè)為例,開源GIS體系囊括了標準層、數(shù)據(jù)庫、組件層、分析層、應用層,與商業(yè)GIS產(chǎn)品體系形成了相互競爭局面;課程教學上要求遵循開源理念,采用開源GIS技術(shù)和產(chǎn)品,適應未來開放科學背景下的科學研究和工程應用。本文以“Python與開源GIS”課程為例,解析了課程內(nèi)容、學時分配、考核體系,介紹了開源GIS的主要知識和教學效果,以期為高校GIS專業(yè)教學改革提供參考。