Debian 11 即将发布,这个版本无疑是目前最好的开源GIS系统。Debian 作为一款优秀的 Linux 发行版本,其设计优雅的软件包管理方式大大降低了用户的使用成本(包括时间、金钱,健康以及头发)。虽然不是为GIS而设计的,但得益于 Debian GIS计划以及其衍生版Ubuntu的UbuntuGIS计划,GIS类库、工具与软件在Debian/Ubuntu上面安装、使用都非常容易。相互之间的配合使用也非常完备。我从2014年开始使用Debian 作为主要GIS系统已经有7年时间了,所有的工具都可以直接通过 apt/apt-get 安装。从源代码编译安装的方法可能更高明,但对于普通用户,Debian对GIS用户的这种“开箱即用”提供方式,无疑是最好的解决方案。
说起“最好”,可能很多人不会同意,毕竟商用的软件会有更友好的界面、更广泛的宣传以及更细致的说明手册。如果作为数据生产工具,我也承认商用软件在编辑操作与简单的数据管理上更方便一点。但一旦脱离开处于行业下游的基础工作,在涉及到系统开发、空间数据库设计、网络发布等诸多方面,谦虚一点说,在软件的易获取性、易安装性、授权费用,甚至于功能、性能方面开源GIS软件与工具不比商用软件差。
Debian 11目前已经发布第2个候选版本(RC2),预计会在 8月中旬正式发布。使用 VirtualBox安装了进行测试。关于GIS方面更新的一些主要特性:
最后就《Python与开源GIS》进行一点补充。写一本书希望更多的人看到、用到,虽然技术书籍的时效性有限,但也希望其生命力更长久一些。在写书过程中尽量选择使用了比较稳定的类库与工具,书中的代码在 Debian 9、Ubuntu 18.04、Debina 10 测试都可以运行通过。在 Debian 11 中进行了测试,出现了一些小问题。
第二章与第三章中涉及到GDAL与OGR。这里面最主要的变化是对于 GDAL/OGR 库,不再支持旧的导入方式, 必须添加命名空间。正确的导入方式为:
from osgeo import gdal
from osgeo import ogr
from osgeo import osr
弃用的方式:
import gdal
import ogr
第四章空间参考与坐标变换中,一个问题是 pyproj 中没有 test()
函数了(第122页)。另外在第144页,is_geocentric()
与 is_geographic()
这两个函数在 Proj 中移除了, 现在放到 pyproj.crs.CRS
,并且更详细地分为: is_geocentric
、is_geographic
、is_projected
、is_vertical
。
第5章Shapely,第6章Spatialite空间数据库,第7章Mapnik 制图,代码执行都无错。
第八章是Basemap ,尽管已经不再有新的开发,还是有一些补丁。在 Debain 10, Ubuntu 20.04, Debian 11 中,版本分别为 1.2.0, 1.2.1, 1.2.2 。 尽管 Basemap 变化不大,但是由于 Proj 投影库的更新,运行时可能会出现下面错误。而且这个问题很奇怪,变换一下参数可能就运行通过了。
pyproj.exceptions.ProjError: x, y, z, and time must be same size
第九章涉及到的内容比较多。
第九章第一节是 pyshp ,在新版本中要求创建的 Shapefile 属性库中至少有1个字段。这个是会导致出错的。
第九章第四节是 GeoPandas , 也有一个上游库导致的问题,并非书中代码问题。
第九章最后一节是 Folium , 由于协议的变化,目前版本中底图库 MapBox 与 Cloudmade 不再内建支持。 代码中有一处会出错。