案例七:绘制沉降时程曲线

案例概述

本案例从 GDIM 读取累计沉降数据表,按所选监测点编号筛选记录,并将『沉降 - 时间』绘制为折线图进行展示。

你将学到

将 GDIM 中的沉降监测数据接入 PipeLine,按顺序连接『读取表数据、条件筛选、绘折线图』,生成可在 GDIM 上运行的 .pipe 应用。

  • GdimTableReadertable_fields 读取累计沉降数据表。

  • TablesQueryTemplateVariableConfig 实现沉降点编号多选过滤。

  • LineChartPlottercolor_columncode_number 分色绘制多条曲线。

  • 进行相关设置并配置为 GDIM 应用。

实现思路

  1. 创建 PipeLine,设置工作空间、登陆信息等。

  2. 创建 GdimTableReader,读取 cumulative_settlement_data_table 中的 code_numbersettlementtime

  3. 创建 TablesQuery 进行沉降点编号多选过滤。

  4. 创建 LineChartPlotter,以 time 为横轴、settlement 为纵轴,用 color_column="code_number" 区分各监测点曲线。

  5. 连接各个模块并进行其它设置。

关键代码

本例关键在于多选筛选监测点并按编号分色绘制折线图,对应代码如下。

query = TablesQuery("FilterPoints")
query.query_template = "`code_number` in {tpl_point_ids}"
query.template_variables = {
    "tpl_point_ids": TemplateVariableConfig(
        title="沉降点编号",
        value_type="list[str]",
        schema_type="auto_select",
        min_items=1,
    )
}

plot = LineChartPlotter("PlotLine")
plot.x_column = "time"
plot.y_columns = "settlement"
plot.color_column = "code_number"
plot.generate_plot_data = True

pipeline.add_links(
    reader.OutputTable >> query.InputTables
    | query.OutputTables >> plot.InputData
)
pipeline.run()

更进一步

完整代码请查看以下链接:

build_settlement_time_curve_pipeline.py