language: cn
model_unique_abbr: automatic_clustering_via_boundary_extraction
version: 1.0
identification:
  docker_image_name: automatic_clustering_via_boundary_extraction:1.0
  model_name: AUTOCLUST聚类
  semantic: point clustering
  description: AUTOCLUST（Automatic Clustering via Boundary Extraction）算法是一种经典的基于Delaunay三角网的空间聚类方法。
  category_application: 描述型
  category_data:
    - 点数据分析
  keywords:
    - 基于图论的聚类算法
    - 异常长边
    - 子图分割
parameter_info:
  parameters:
    - arg_name: input
      is_single_en_dash: false
      param_type: input_data
      name: 空间点数据
      description: "待聚类的空间点数据,以csv的形式保存,需要表头，数据包含id、POINT_X坐标、POINT_Y坐标"
      data_type: csv
      data_semantic: spatial_point_data

    - arg_name: x_field
      is_single_en_dash: false
      param_type: param
      name: X坐标字段
      description: X坐标列在输入文件中的列名
      data_type: str
      data_semantic: x_field
      param_switches:
        - switch_arg_name: input
          switch_arg_value_regex: csv$
          switch_arg_value_examples: [big_dataset.csv, small_dataset.csv]
      specification:
        default: POINT_X

    - arg_name: y_field
      is_single_en_dash: false
      param_type: param
      name: Y坐标字段
      description: Y坐标列在输入文件中的列名
      data_type: str
      data_semantic: y_field
      param_switches:
        - switch_arg_name: input
          switch_arg_value_regex: csv$
          switch_arg_value_examples: [big_dataset.csv, small_dataset.csv]
      specification:
        default: POINT_Y

    - arg_name: output
      is_single_en_dash: false
      param_type: output_data
      name: 聚类结果
      description: 带有簇标签的聚类结果，保存为json文件，key为labels,labels的值代表每个点的簇标签，数据与输入数据一一对应
      data_type: json
      data_semantic: cluster_result
  groups:
    - group_id: ixy
      group_name: 输入数据XY列
      group_param_arg_names:
        - input
        - x_field
        - y_field
application:
  domain: 空间点对象聚类
  objective: 空间对象簇不同密度差异较大的空间数据库中发现任意形状的空间簇
  dimension:
    - 二维
  mechanism: 对于空间点对象建立三角网，通过删除三角网中的异常长边，得到的每个子图的空间点对象集合，即空间簇
operation:
  usage: "该算法需要两个参数,X坐标列名,Y坐标列名"
  exec_example:
    - docker run -v $(pwd):/data automatic_clustering_via_boundary_extraction:1.0 --input /data/data.csv --output /data/clustering_result.json
  output_display:
    - "输出结果为json文件，key为labels,labels的值代表每个点的簇标签，数据与输入数据一一对应，可以通过将输入数据和聚类结果进行拼接，然后通过labels和xy坐标进行可视化"
technique:
  language:
    - Python
  os:
    - Linux
    - Windows
source:
  maintainer: Nanwei Cheng
  organization: Central South University
  contact: 2247486718@qq.com
  references:
    - "Estivill-Castro, V ., Lee, I. 2000. AUTOCLUST: Automatic clustering via boundary extraction for mining massive point-data sets. Proceedings of the 5th International Conference on Geocomputation."
