开放科学背景下“Python与开源GIS”课程教学探索

2023-12-14 14:20刘星根吴则禹
科技风 2023年34期
关键词:开源科学课程

刘星根 吴则禹

江西理工大学土木与测绘工程学院 江西赣州 341000

开放科学在当前科技创新发展中具有重要影响。在全球气候变化挑战和人类可持续发展切实需求下,共同建设人类命运共同体、创建人与自然和谐共生的地球环境,进一步凸显了加强国际合作、建设开放科学的紧迫性和重要性。开放科学的定义目前仍旧缺乏广泛的共识。早期迈克尔·尼尔森提出了一个非正式的开放科学定义,开放科学是尽快实现科学发现过程中的科学知识共享的理念[1]。维基百科定义为社会各群体包括专门研究人员和公众都可自由获取科学研究、数据、传播科学知识的活动。欧盟委员会指出,开放科学为通过数字工具、网络和媒体实施、传播科研并转变科学研究的方式,促进科学过程更加高效、透明和有效[2]。尽管目前缺乏统一的开放科学的定义,但不同研究者或行业的开放科学概念中均蕴含着“自由、开放、合作、共享”的开放科学理念[3]。

实际上,开放科学的思想和实践由来已久。1665年英国皇家学会创办《哲学通报》时强调,所有的新发现应尽可能地在更大范围内传播[1]。20世纪90年代以来,出版界兴起以自由扩散科学知识为核心的开放获取运动,2002年形成布达佩斯开放获取倡议,是开放科学领域的重要事件。开放数据的发展以2009年美国政府的开放数据门户网站(data.gov)上线为标志,助推了各国科学研究进程,比如美国陆地资源卫星的开放获取促进了各国资源开发利用、环境监测、生态管理等方面的研究。

开放科学背景下地方高校GIS专业教学改革面临新的形势,本文以“Python与开源GIS”课程为例,探究开放科学理念与开源GIS关系,分析Python语言特征及其在开源GIS中的应用,为高校GIS专业教学改革提供参考。

一、开放科学背景下GIS面临的挑战和机遇

开放科学不是空洞的理论名词,它由与开放研究相关的多要素构建而成。比如目前蓬勃发展的开放获取、开放数据、开放评审等。盛小平和杨智勇[1]指出开放科学涉及开放研究生命周期的一系列问题,其中最重要的是:开放获取、开放数据、开源软件、可复制的研究、开放同行评审、开放科学政策、开放资助、开放科学评估、开放科学工具、开放教育。刘桂锋等[3]结合文献调研和网络调查的方法,构建了开放科学政策、开放获取、开放数据、开放资源、开放同行评审、开放教育资源为内容的开放科学体系。开放科学的内容体系决定其具有三个显著特征,第一是开放性,与传统科学研究范式不同,开放科学强调研究过程、知识、工具的自由、开放、共享;第二是社会化,科学研究过程不再局限于少数受过专门训练的研究人员,公众成为科学研究的重要参与者;第三是动态更新,科学知识的更新速率要远远超过以往时代,开放科学有助于人类科学知识的快速更新。

开放科学背景下GIS发展势必面临新的机遇和挑战。隋殿志等[4]提出开放GIS至少存在8个维度,分别是开放数据、开放软件、开放硬件、开放标准、开放研究、开放出版、开放募资、开放教育。开放GIS存在四大挑战,包括学术文化和奖励制度的挑战、现有的知识产权法律的挑战、社会/政治阻碍和变化的权利关系的挑战、环境威胁与可持续发展的目标的挑战[4]。开放GIS也存在若干机遇,比如空间大数据的涌现为开放GIS提供契机、开放GIS在个体和集体决策中越来越重要、开放GIS有利于每个人更加了解地球、开放GIS在提高全民科学素养尤其是空间思维上具有不可替代的作用。

二、Python语言特征对开源GIS的影响

Python是面向对象的解释型脚本语言,与编译型语言相比,具有简单易学、可扩展、可嵌入、跨平台等突出优点。Python语言在GIS教学科研实践中具有显著优势。从学习成本和效率上看,相对于其他语言,Python语言的语法简单,阅读上更接近自然语言。根据访谈调查发现,一部分GIS专业大二学生即对Python表现出浓厚兴趣,经常利用课余时间自学从而提高GIS应用和开发水平。从课程设置和教学角度,Python语言遵循开源共享理念,学校教学成本较低,不需要额外花费软件或系统购置费用;同时网络上具有大量基于Python的教学材料、视频和案例,为提高教学效率和锻炼学生编程技能提供了良好环境。由于Python语言本身的开源等特征,不同研究者或用户均可以设计和发布实现某些功能的第三方库或包,因此基于Python的GIS行业生态愈加丰富,从底层开发的算法到高度封装的库或包,为GIS学习和应用提供了诸多便利。Python语言与开源GIS的理念和特征存在内在联系,使得Python语言在开源GIS体系占据重要角色,助推了开源GIS教学实践和科技应用。

亢孟军等[5]认为开源GIS是指遵照开放的标准和协议开发并开放源代码给公众免费使用、修改和发行的GIS软件。与开源GIS相反,商业GIS是由企业或研究结构开发并将源码作为商业机密或专利的GIS软件。前者比如QGIS、SAGA GIS、GRASS GIS等,后者有ArcGIS、MapGIS、SuperMap等。开源GIS最早可以追溯到1978年美国开发的MOSS系统,而1982年GRASS GIS发布,是开源GIS发展的重要事件。20世纪90年代,OGC标准的制定和GDAL/OGR项目的启动对开源GIS推广起到了决定性的作用。OGC制定了与地理信息数据相关的系列标准,畅通了商业GIS和开源GIS功能转换的路径。在2006年具有代表性,开源地理空间基金会(OSGeo)的成立,有利于支持和促进开放地理空间技术、数据和教育资源的共享和协作。

从课程教学的角度出发,开源GIS软件体系可以划分为5个部分:标准层、数据库层、组件层、分析层和应用层[5]。标准层为开源GIS体系提供程序开发、数据存储和互操作的各类规范,目前常用的是OGC标准;数据库层主要有PostGIS、MySQL Spatial、Spatial Lite等;组件层和分析层主要是空间数据处理分析的库或包,是GIS综合开发的基础,目前常用的有GDAL/OGR、Proj.4、PySAL等;应用层是构建在上述内容之上的可扩展的系统框架,包括桌面GIS、网络GIS和移动GIS等。Python语言在开源GIS体系中具有多方面的作用,一方面,数据库层、组件层、分析层中的包和库在Python环境中可以非常方便地调用,比如GDAL提供了Python版本的调用接口,另一方面,应用层开发中可以使用Python进行二次开发或数据处理分析。

三、Python与开源GIS的教学实践

在上述发展背景下,我校GIS教研室于2021年起开设“Python与开源GIS”课程,面向GIS专业大三学生,作为专业选修课程,有利于增强GIS专业学生使用现代工具能力。“Python与开源GIS”主要以空间数据的处理、分析以及地图制图为主线,以目前最为经典、常用的类库为主,讲授开源GIS基本概念,锻炼学生实践操作技能。本课程旨在培养学生的开源GIS数据处理和应用开发能力,使学生明确了解开源GIS发展,锻炼Python处理地理数据水平,深入理解地理信息技术中的基础理论,掌握使用编程语言进行地理信息获取、处理、分析以及应用开发的技术,从理论和实践相结合的角度形成GIS从业人员的核心素养。

本课程的课程目标与专业培养目标、毕业要求存在良好对应关系。在培养目标方面,主要支撑知识综合目标,即熟练掌握信息化空间数据采集技术、地理信息系统原理、摄影测量与遥感、GIS空间分析、GIS应用开发等专业知识并进行综合运用,能够通过知识的融会贯通解决业务工作中遇到的实际问题。在毕业要求方面,即使用现代地理信息系统工具和技术,能够针对复杂地理信息工程问题,开发、选择与使用恰当的地理信息技术、地理空间信息资源、现代测绘和遥感技术设备和信息技术手段,包括对复杂地理信息工程问题的预测与模拟,并能够理解其局限性。

“Python与开源GIS”课程教学过程中融入了一些思政元素。地理信息技术与国家安全、经济建设、生态保护密切相关。Python与开源GIS课程通过介绍开源的Python类、库、包,经过课堂讲授、案例引导、课后练习等过程,旨在培养学生使用地理信息技术处理地理信息项目相关问题的能力。本课程可以激发学生共同参与科学研究、共同建设地理信息平台、共享地理信息技术的开放科学精神。教学中通过引用一些与我国国情、生态文明建设、社会经济发展等地理信息相关案例,引导和培养学生对国家和民族的自豪感,促使大学生形成保护环境、节约资源等生态文明理念。

(一)教学内容设计

第一章为Python与GIS导论,主要讲授GIS的基础概念、开源空间信息软件体系和技术、Python环境配置、Python基础用法等,重点理解开源GIS的内涵和意义、掌握Python环境配置过程。

第二章为GDAL操作栅格数据,主要内容包括GDAL包简介和配置、地理数据驱动、读取遥感影像信息、读取栅格数据、地图代数、访问索引图像、创建影像等,重点要求会使用GDAL读取常用遥感影像和创建影像、会使用GDAL进行地图代数计算。

第三章OGR处理矢量数据,主要讲授OGR包简介和配置、数据驱动、图层、要素、几何形状、创建Shp文件、空间过滤器、空间分析、Fiona包配置和使用,重点掌握使用OGR读取矢量数据、理解矢量数据中的图层、要素、几何形状概念,会使用OGR创建Shp文件、掌握Fiona常用方法。

第四章为空间参考和坐标转换,主要讲授大地水准面和椭球体、Proj类、OSR模块、坐标转换,要求会使用Proj类定义和转换投影,会使用OSR模块定义投影和地理坐标,掌握坐标转换的常用方法。

第五章为Shapely矢量数据空间分析,主要内容为空间数据模型的基础概念、Shapely几何要素的操作、DE九交空间关系、生成新几何对象的方法、合并线性要素,要求会使用Shapely进行常用的几何要素操作,掌握Shapely生成新几何对象的方法。

第六章为SpatiaLite处理空间数据库,主要内容包括开源数据库简介、SpatiaLite包配置、常用命令行、SQLite的类型、评价几何对象之间的关系,重点掌握SpatiaLite的常用命令行用法。

第七章为Mapnik和Basemap地图可视化,主要讲授Mapnik概述、地图制图常用方法、Basemap地图可视化,要求学生掌握Mapnik地图制图和Basemap地图可视化的方法。

(二)学时分配

学时分配主要考虑Python语言基础知识和GIS专业应用开发,强调GIS数据模型与分析功能实现,旨在培养学生将GIS专业知识与Python交叉融合,应用Python语言实现GIS信息管理、分析、显示等常用功能。具体学时分配见下表。

学时分配表

(三)课程考核与教学效果

本课程考核采取阶段性测试、项目实践操作相结合的考查方式,以理论水平、实践创新、团队协作能力和分析解决问题能力等构成新的评价体系,总体成绩由平时成绩和期末成绩两部分构成。考查内容主要围绕教学大纲,要求学生理解开源GIS基础理论、掌握Python的地理空间分析主要方法,包括栅格数据和矢量数据的读写、地图代数、几何计算,栅格和矢量数据的空间分析,地图制图和地图可视化的主要方法。

“Python与开源GIS”课程开设以来,面向地理信息科学专业和城乡规划专业学生累计授课达170人次,开放科学理念得到宣传和推广。授课班级学生2022年度参加易智瑞、超图等专业GIS竞赛30人次,其中获奖20人次,开源GIS技能得到实践锻炼和巩固提高。

结语

开放科学对现有理工科专业知识体系和课程教学方式带来新的挑战。以GIS专业为例,开源GIS体系囊括了标准层、数据库、组件层、分析层、应用层,与商业GIS产品体系形成了相互竞争局面;课程教学上要求遵循开源理念,采用开源GIS技术和产品,适应未来开放科学背景下的科学研究和工程应用。本文以“Python与开源GIS”课程为例,解析了课程内容、学时分配、考核体系,介绍了开源GIS的主要知识和教学效果,以期为高校GIS专业教学改革提供参考。

猜你喜欢
开源科学课程
《无机化学》课程教学改革
数字图像处理课程混合式教学改革与探索
软件设计与开发实践课程探索与实践
为什么要学习HAA课程?
点击科学
五毛钱能买多少头牛
科学大爆炸
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
开源计算机辅助翻译工具研究