设计报告

简言之,报告是通过使用来自一个或多个作业的文本和/或空间数据填充报告模板来创建的。需要注意的是,报告是在层/波段级别生成的,因此来自单个作业的报告数量将对应于给定作业的**默认**波段数。

设计报告包括两步过程,包括:

  1. 使用 QGIS 布局框架来设计模板;

  2. 在报告配置文件中指定配置参数。

先决条件

在开始设计新报告或自定义现有报告之前,建议了解以下主题:

布局表达式变量

报告由静态内容(例如徽标、免责声明文本等)组成,不会从一份报告更改为另一份报告。它还可能包括在执行过程中的运行时生成的动态内容(例如地图或属性信息)。

Trends.Earth 工具箱提供了许多布局表达式变量,可用于在布局中插入动态内容。其中一些在设计时可用,而另一些仅在运行时可用。下表提供了可用变量的汇总。

作业变量

这些以 te_job_ 前缀为特点,并且仅在运行时可用。

变量名称

描述

数据类型

te_job_id

与作业的 UUID 对应的唯一标识

字符串

te_job_input_params

作业输入参数的 JSON 表示

字符串

te_job_paths

作业数据集的本地路径

字符串

te_job_alg_name

作业的算法名称

字符串

te_job_creation_date

作业的创建日期/时间

%Y-%m-%d %H:%M 格式的字符串

te_job_status

作业的完成状态,例如 DOWNLOADED、GENERATED_LOCALLY 等。

字符串

te_job_name

用户输入的作业名称。

字符串

te_job_comments

用户提供的对工作的评论

字符串

层变量

这些以 te_current_layer_ 前缀为特点,仅在运行时可用。

变量名称

描述

数据类型

te_current_layer_name

当前执行上下文层的名称

字符串

报告设置变量

这些以 te_report_ 前缀为特点,在设计时和运行时可用。有关报告设置和相应变量名称的详细说明,请参阅 报告 部分。

模板类型

有两种主要的报告模板类型:

完整模板

这旨在包含——或允许包含——更多信息,例如作者姓名。默认模板设置在 A4 页面上,包括布局标题、地图、图例、比例尺、指北针、免责声明文本和徽标。

简单模板

这是模板的轻量化版本,默认设置为 83mm x 59mm 页面大小(横向模式),纵向模式反之亦然,包含地图、图例、指北针、比例尺、免责声明文本和徽标。

备注

对于每种模板类型,您都需要提供纵向和横向版本,因为工具箱将根据正在渲染的地图图层的尺寸选择其中之一。

设计报告模板

您可以通过以下方式创建模板:

创建新的

  1. 导航到**项目 > 新打印布局...**。

    ../../_images/report_new_layout.png
  2. 为布局指定一个便于使用的名称。

    ../../_images/report_template_name.png

修改现有的

  1. 导航到 项目 > 布局管理器...

    ../../_images/report_project_layout_manager.png
  2. 从模板新建 部分的下拉菜单中选择 具体

    ../../_images/report_layout_manager_specific.png
  3. 单击浏览按钮(带有三个点)以选择现有的 qpt 模板。默认模板可以在 [base_data_directory]/reports/templates 中找到。

    ../../_images/report_layout_manager_browse.png
  4. 单击**创建...** 按钮。

    ../../_images/report_layout_manager_create.png
  5. 为模板指定一个便于使用的名称。

    ../../_images/report_template_name.png

添加布局项

  • 您可以按照 QGIS 手册 中定义的类似方式,将项目添加到模板中。Trends.Earth 表达式变量在 表达式生成器 对话框中可用,并且可以像任何其他 QGIS 变量一样插入标签项中。

    ../../_images/report_expression_builder.png
  • 例如,要在标签项中插入作业的算法名称,可以使用以下表达式:[% @te_job_alg_name %]

    ../../_images/report_label_expression.png
  • 对于地图项,请勿添加任何图层或指定地图主题,因为图层和它们的顺序将在报告生成过程中自动设置。

  • 使用图例项时,请确保选择 自动更新 选项。工具箱将根据渲染上下文确定显示/隐藏哪些图例项。

    ../../_images/report_legend_auto_update.png
  • 对于使用工具箱的表达式变量渲染作业图层或标签项的地图项,请确保定义其对应的项目 ID,以便在报告生成过程中对其进行标记以进行更新。项目 ID 的首选命名约定是 [item_type.context_name],例如 label.layer_name, label.job_alg_name, map.main。我们将在 item_scope_mapping 部分看到这些项目 ID 如何被使用。

    ../../_images/report_item_id.png

配置报告参数

下一步是定义哪些模板将用于哪些算法。这是通过报告配置文件 templates.json 完成的,此文件是第一次加载工具箱时,在 [base_data_directory]/reports/templates 中创建的。

templates.json 是报表配置对象的列表,其中每个配置对象对应一个或多个范围。在这种情况下,范围是指算法。配置由两部分组成:

  • template_info——包含与一个或多个算法范围关联的 QGIS 报告模板的信息。

  • output_options——用于导出报告的输出选项。

请参阅下方的示例:

 {
   "template_info":{
      "id":"70ca4be7-839e-4248-be14-34ba8665ed98",
      "name":"Land Productivity",
      "description":"Overview of land productivity indicator.",
      "simple_portrait_path":"simple_layout_template_portrait.qpt",
      "simple_landscape_path":"simple_layout_template_landscape.qpt",
      "full_portrait_path":"full_layout_template_portrait.qpt",
      "full_landscape_path":"full_layout_template_landscape.qpt",
      "item_scopes":[
         {
            "name":"productivity",
            "type_id_mapping":{
               "map":["map.main"],
               "label":["label.layer_title"]
            }
         }
      ]
   },
   "output_options":{
      "template_type": "ALL",
      "formats": [
         {
            "format_type": "PDF"
         },
         {
            "format_type": "IMAGE",
            "params": {
               "image_type": "png"
            }
         }
      ]
   }
}

template_info

包含与一个或多个算法范围关联的 QGIS 报告模板的信息。

属性名称

描述

必需

id

字符串格式的唯一 UUID 标识符

名称

模板配置的简单名称

描述

模板配置的简要说明

simple_portrait_path

简单纵向布局的模板文件的名称

simple_landscape_path

简单横向布局的模板文件的名称

full_portrait_path

完整纵向布局的模板文件的名称

full_landscape_path

完整横向布局的模板文件的名称

item_scopes

项目范围对象的列表。它应该至少包含一个范围定义。

欲了解更多信息,请参阅 item_scope_mapping

备注

上方定义的路径基本上是相对于 templates.json 配置文件的位置的文件名。

output_options

用于导出输出报告的选项。

属性名称

描述

必需

格式

指定报告输出格式的格式对象列表。您可以生成多种类型的报告,例如 PDF 和 PNG。

至少需要定义一种输出格式。

关于输出格式对象的配置选项,请参阅 output_format

template_type

字符串格式的报告模板类型。

支持的选项包括:简单完整全部

请注意,这些应该是上方提供的大写字母。

item_scope_mapping

提供一种基于范围(即算法)对布局项进行分组的机制。

属性名称

描述

必需

名称

将与此配置匹配的算法的名称,例如 productivitysdg-15-3-1-sub-indicators`等。指的是工具箱数据文件夹的 `scripts.json 中定义的算法名称。

type_id_mapping

包含布局项目类型的枚举,和模板中定义的相应项目 ID 列表的字典。

支持的布局项类型包括:地图标签图片

"type_id_mapping":{
   "map":["map.main"],
   "label":["label.layer_title"]
}

关于如何指定项目 ID 的信息,请参阅 添加布局项

output_format

报告输出的格式信息。

属性名称

描述

必需

format_type

文件输出类型的枚举。

支持的枚举选项包括:PDFIMAGE

请注意,这些应该是上方提供的大写字母。

参数

根据指定的输出类型,此属性包含关于格式的附加信息。

例如,如果将 IMAGE 指定为输出格式,则此属性可用于指定 IMAGE 类型。对于 PDF 类型,不执行任何操作,对于 IMAGE 类型,默认为 PNG。

重置为默认模板和配置

要恢复到工具箱附带的默认模板和报告配置文件,请执行以下步骤:

  1. 关闭 QGIS,然后备份 [base_data_directory]/reports/templates 中的 templates 文件夹。

  2. 继续删除“模板”文件夹,然后重新启动 QGIS。