Debian 11,最好的开源GIS系统即将发布

Debian 11,最好的开源GIS系统即将发布

2021-07-31 作者: bukun 浏览: 1292 次

摘要: Debian 11 即将发布,这个版本无疑是目前最好的开源GIS系统。Debian 作为一款优秀的 Linux 发行版本,其设计优雅的软件包管理方式大大降低了用户的使用成本(包括时间、金钱,健康以及头发)。虽然不是为GIS而设计的,但得益于 Debian GI...

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中更新的主要GIS功能

Debian 11目前已经发布第2个候选版本(RC2),预计会在 8月中旬正式发布。使用 VirtualBox安装了进行测试。关于GIS方面更新的一些主要特性:

  1. Proj 类库更新到7.2.1 。 在Debian 10中,Proj版本为 5.2.0 ;在Ubuntu 20.04中,Proj版本为 6.3.1 。Proj作为老牌底层库,已经非常成熟,没想到在版本 6 与 7的升级中有了很多变化。现在很多下游库都要求使用较新的 Proj 类库,这个不是通过虚拟环境能解决的。
  2. QGIS大版本更新到了版本 3.10.14 。在Debian 10中,QGIS版本为2.18;在Ubuntu 20.04 中,版本为3.10.4 。 在这里面,Ubuntu作为衍生版本对Debian 的反馈起了很大的作用。尽管可以通过替换源来实现 Debian 10 中安装 QGIS 3,但是在库中纳入其中,对于运维工作无疑大大增强了信心,并降低了成本。 在 QGIS 2时,QGIS很多时候是作为候选者出现的;而在 QGIS 中,是直接可以直接用于生产环境的工具。 另外一点, QGIS 升级到版本 3 对 Python3 也有了更好的支持。
  3. GRASS版本更新到了 7.8.5 。在Debin 10中, GRASS版本为 7.6.0;Ubuntu 20.04 中的GRASS 版本为7.8.2 。尽管在这个升级中看起来并没有太大(从 7.6 升级到 7.8 ),但其实它解决了一个很大的问题。实际上,Debain 10中的GRASS 7.6.0并不支持 Python 3 。在我部署运维的服务器中,为了让GRASS支持 Python3 , 单独部署了一例 Ubuntu 20.04,其他都是 Debian。Python 2到Python3 的升级是个痛苦而漫长的过程,对程序员而言。很多优秀的类库都经历了这一过程,GRASS同样如此。作为开源开发, 很多项目是靠志愿者来进行的,这也导致了像这种“非必要”升级会滞后。

针对 Debian 11 的 《Python与开源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_geocentricis_geographicis_projectedis_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 不再内建支持。 代码中有一处会出错。

相关推荐

关注“开源集思”公众号
获取免费资源

随机推荐


Copyright © from 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org