4. 特性

QGIS通过核心特性和插件提供了丰富的GIS功能。定位器条使得搜索各功能模块,数据集和其他信息变得更加方便。

下面简要概述了六大类的特性和插件,然后是对集成的Python控制台的初步了解。

4.1. 视图数据

您可以将不同格式、不同投影方式的矢量与栅格数据(以2D或3D形式)的组合显示,且无需转换为内部或通用格式。受支持的格式包括:

  • 使用PostGIS、SpatiaLite,MS SQL Spatial和Oracle Spatial的,支持空间属性的表格或者视图;由安装的OGR库支持的矢量格式,包括GeoPackage, ESRI Shapefile, MapInfo, SDTS, GML 等等。参见 使用矢量数据

  • 由安装的GDAL库(地理空间数据抽象库)支持的栅格和图片格式,例如GeoTIFF, ERDAS IMG, ArcInfo ASCII GRID, JPEG, PNG等。参见:ref:working_with_raster

  • 网格数据(支持TINs等常规网格格式)。参见章节:ref:label_meshdata

  • 矢量图块

  • GRASS数据库(本地/地图集)中的GRASS栅格与矢量数据。参见:ref:sec_grass

  • 以OGC Web服务形式提供的在线空间数据,包括WMS, WMTS, WCS, WFS, 与 WFS-T。参见章节:ref:working_with_ogc

    QGIS的身份认证架构可以帮助你管理用于Web服务和其他资源的用户名/密码、证书以及密钥。

  • 表格文件(ODS/XLSX)

支持时态数据。

4.2. 浏览数据与制图

您可以使用友好的用户界面进行制图与交互式浏览空间数据。用户界面上提供了许多非常有用的工具,包括:

  • QGIS浏览器

  • 动态二次投影

  • 数据库管理器

  • 打印布局

  • 报告

  • 全览面板

  • 地理书签

  • 注记工具

  • 识别/选择 要素

  • 编辑/查看/搜索 属性

  • 基于数据定义的要素标注

  • 基于数据定义的矢量与栅格符号工具

  • 带网格层的地图集制图

  • 地图的指北针、比例尺与版权标注

  • 支持项目的保存与恢复

4.3. 创建、编辑、管理与输出数据

你可以创建、编辑、管理与输出多种格式的矢量和栅格图层。QGIS提供了以下功能:

  • 矢量数字化工具

  • 能够创建并编辑多种格式的文件和GRASS矢量图层

  • 用于图片地理编码的几何校正插件

  • 用于导入、导出GPX格式,将其他GPS格式转换成GPX格式,或者直接从一台GPS设备(在Linux上通过USB添加到GPS设备列表中)下载/上传数据的GPS工具

  • 支持可视化与编辑OpenStreetMap数据

  • 能够通过数据库管理器插件从文件创建空间数据库中的数据表

  • 改进的空间数据表处理能力

  • 管理矢量属性表的工具

  • 将屏幕截图保存为带空间坐标参考图片的选项

  • 具有增强功能的dxf导出工具,可以导出样式,且可以通过插件来执行类似cad的功能

4.4. 分析数据

您可以对空间数据库和其他OGR支持的格式执行空间数据分析。QGIS当前提供矢量分析、栅格分析、采样、地理处理、几何与数据库管理工具。你也可以使用集成的GRASS工具,其中包括400多个模块的完整GRASS功能(参见:ref:`sec_grass`章节)。或者,您可以使用Processing插件,它提供了一个强大的地理空间分析框架,可以从QGIS调用本地和第三方算法,如GDAL、SAGA、GRASS、R等(参见:ref:`sec_processing_intro`章节)。所有分析功能都在后台运行,使您可以在处理完成之前继续进行工作。

图形建模器允许您在直观的图形环境中将功能组合/链接成一个完整的工作流。

4.5. 在互联网上发布地图

QGIS可以用作WMS、WMTS、WMS-C或者 WFS与WFS-T客户端(参见 Working with OGC / ISO protocols 章节),同时QGIS Server(参见 QGIS服务器指南/手册 章节)允许您使用Web服务器在互联网上通过WMS、WCS与WFS协议将数据发布。

4.6. 通过插件扩展QGIS功能

QGIS可以通过可扩展的插件系统和可用于创建插件的库来满足你的特殊需求。你可以使用C++或者Python来创建新应用。

4.6.1. 核心插件

核心插件包括:

  1. 数据库管理器(从/到数据库中转换、编辑与查看图层及属性表;执行SQL查询)

  2. 几何检查器(检查几何错误)

  3. 几何校正工具GDAL(利用GDAL给栅格数据添加投影信息)

  4. GPS工具(加载或导入GPS数据)

  5. GRASS 7(集成GRASS GIS)

  6. MetaSearch目录客户端(与支持Web的OGC目录服务(CSW)标准的元数据目录服务进行交互)

  7. 离线编辑(允许离线编辑与数据库同步)

  8. 处理(QGIS空间数据处理框架)

  9. 拓扑检查器(查找矢量图层中的拓扑错误)

4.6.2. 外部Python插件

QGIS提供了越来越多的由社区提供的外部Python插件。这些插件位于官方插件库中,可以使用Python插件安装程序轻松安装。参见章节:ref:managing_plugins

4.7. Python终端

可以利用集成的Python终端执行脚本,该控制台可以通过: 插件 ► Python 终端 打开。该终端作为非模态实用程序窗口打开。可以通过:data:`qgis.utils.iface`变量与QGIS环境进行交互操作,改变了是:class:`QgisInterface <qgis.gui.QgisInterface>`类的一个实例。该接口提供了对QGIS应用程序中地图画布、菜单、工具栏和其他部分的访问。您可以创建一个脚本,然后将其拖放到QGIS窗口中,它将自动执行。

为了进一步了解有关Python终端、QGIS插件与应用编程相关的信息,请跳转到:ref:console`与:ref:`PyQGIS-Developer-Cookbook

4.8. 已知问题

4.8.1. 打开文件数量限制

如果您正在打开一个大型QGIS项目,并且您确定所有图层都是有效的,但是有些图层被标记为坏的,那么您可能会面临这个问题。Linux(以及其他类似的操作系统)有按进程打开文件的限制。每个进程的资源是受限的,且可以被继承。ulimit命令是一个内置的shell命令,它仅为当前shell进程更改限制,新的限制将被每一个子进程继承。

输入以下命令,你可以看到所有当前的ulimit信息:

$ ulimit -aS

在终端输入以下命令,你可以看到当前每个进程所允许打开的文件数量:

$ ulimit -Sn

要更改**现有会话**的限制,您可以使用以下命令:

$ ulimit -Sn #number_of_allowed_open_files
$ ulimit -Sn
$ qgis

永久修改

在大多数Linux系统中,资源限制是在登录时通过``pam_limits``模块设定的,该模块依据的设置保存在文件:file:/etc/security/limits.conf 或者:file:`/etc/security/limits.d/*.conf`中。如果你拥有root权限(也可以通过sudo)则可以编辑这些文件,但是你需要注销并重新登录使得变更生效。

更多信息:

https://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/ https://linuxaria.com/article/open-files-in-linux