language: cn
model_unique_abbr: trajectory_clustering
version: 1.0
identification:
  docker_image_name: trajectory_clustering:1.0
  model_name: TRACLUS聚类
  semantic: trajectory clustering
  description: 基于分割和聚合策略的地理时空对象移动轨迹聚类算法。
  category_application: 诊断型
  category_data:
    - 线数据分析
  keywords:
    - 拆分-聚合框架
    - 轨迹聚类
    - MDL准则
    - 基于密度聚类
parameter_info:
  parameters:
    - arg_name: input
      is_single_en_dash: false
      param_type: input_data
      name: 空间轨迹数据
      description: "待聚类的空间轨迹数据,以csv的形式保存,需要表头，每一条轨迹由轨迹点的坐标组成，每个坐标以一个二维数组表示，数组之间用逗号隔开，最终所有点的坐标形成一个字符串"
      data_type: csv
      data_semantic: cluster_data

    - arg_name: field
      is_single_en_dash: false
      param_type: param
      name: 轨迹点坐标串
      description: XY坐标串列在输入文件中的列名，默认为coord
      data_type: str
      data_semantic: coord_field
      param_switches:
        - switch_arg_name: input
          switch_arg_value_regex: csv$
          switch_arg_value_examples: [big_dataset.csv, small_dataset.csv]
      specification:
        default: coord

    - arg_name: cluster_output
      is_single_en_dash: false
      param_type: output_data
      name: 聚类结果
      description: 带有簇标签的聚类结果，保存为csv格式的文件。新增列名默认为label,若原数据中已有该列,则添加从序号1编号,如label1、label2...。聚类标签为1,2...
      data_type: csv
      data_semantic: cluster_result

    - arg_name: representative_output
      is_single_en_dash: false
      param_type: output_data
      name: 聚类簇代表性轨迹结果
      description: 每个簇的代表轨迹点结果，保存为csv格式的文件。分别记录下轨迹的线段的起点和终点坐标，以及线段所属轨迹的簇编号。
      data_type: csv
      data_semantic: representative_result

  groups:
    - group_id: icoord
      group_name: 输入数据坐标串列
      group_param_arg_names:
        - input
        - field
application:
  domain: 用于轨迹聚类的分区-分组框架
  objective: 轨迹分区为一组线段，然后将相似的线段归为一个群组，从轨迹数据库中发现共同的子轨迹。
  dimension:
    - 二维
  mechanism: 算法包括两个阶段:分区和分组。对于第一阶段，使用最小描述长度(MDL)原则的形式化轨迹划分算法。第二阶段，利用基于密度的线段聚类算法实现对轨迹的聚类。
operation:
  usage: "该算法需要一个参数,coord坐标串列名。"
  exec_example:
    - docker run -v $(pwd):/data trajectory_clustering:1.0 --input /data/data.csv --cluster_output /data/clustering_result.csv --representative_output /data/representative_result.csv
    - docker run -v $(pwd):/data trajectory_clustering:1.0 --input /data/data.csv --beta 1.5 --cluster_output/data/clustering_result.csv --representative_output /data/representative_result.csv
  output_display:
    - "可以根据聚类簇代表性轨迹结果，对每个簇的代表性轨迹进行可视化展示，以便于用户对聚类结果进行分析。"

technique:
  language:
    - Python
  os:
    - Linux
    - Windows
source:
  maintainer: Zhilong Liu
  organization: Central South University
  contact: 235011045@csu.edu.cn
  references:
    - "Lee J G, Han J, Whang K Y. Trajectory clustering: a partition-and-group framework[C]//Proceedings of the 2007 ACM SIGMOD international conference on Management of data. 2007: 593-604."
