language: cn
model_unique_abbr: buffer_geopandas
version: 1.0
identification:
  docker_image_name: buffer:1.0-geopandas0.9.0
  model_name: 缓冲区分析（basic）
  semantic: buffer
  description: 使用固定或动态距离为输入要素中的所有要素创建缓冲区
  category_application: 诊断型
  category_data:
  - 矢量数据
  keywords:
  - 邻域分析
  - 缓冲区
parameter_info:
  parameters:
  - arg_name: input
    is_single_en_dash: false
    param_type: input_data
    name: 空间矢量数据
    description: 点、线、面矢量文件, shp格式
    data_type: shp
    data_semantic: vector data

  - arg_name: if_input_field_to_buffer
    is_run_arg: false
    is_single_en_dash: true
    param_type: param
    name: 通过字段进行缓冲区分析
    description: 设置为false则手动填写缓冲区距离，设置为true，利用某一输入数据属性进行缓冲区分析
    data_type: bool
    data_semantic: value or field
    specification:
      default: false
  - arg_name: distance
    is_single_en_dash: false
    param_type: param
    name: 缓冲区距离
    description: 缓冲区距离，单位取决于输入数据的单位。
    data_type: float
    data_semantic: distance
    param_switches:
      - switch_arg_name: if_input_field_to_buffer
        switch_arg_value_regex: false
        switch_arg_value_examples: [false]
    specification:
      default: 5
      range:
      - "(0,)"
  - arg_name: field
    is_single_en_dash: false
    param_type: param
    name: 缓冲区字段
    description: 使用包含缓冲每个特征的距离的输入特征的字段提供缓冲区距离。
    is_required: false
    data_type: str
    data_semantic: buffer field
    param_switches:
    - switch_arg_name: input
      switch_arg_value_regex: shp$
      switch_arg_value_examples: [data.shp]
    - switch_arg_name: if_input_field_to_buffer
      switch_arg_value_regex: true
      switch_arg_value_examples: [true]
  - arg_name: resolution
    is_single_en_dash: false
    param_type: param
    name: 分辨率
    description: 每个顶点周围缓冲区的分辨率
    is_required: false
    data_type: int
    data_semantic: resolution
    specification:
      default: 16
      range:
      - "(0,)"
  - arg_name: cap_style
    is_single_en_dash: false
    param_type: param
    name: 端点样式
    description: 控制在缓冲区中如何处理线段的两端。样式包括圆形（round）、扁平（flat）、方形（square）。
    is_required: false
    data_type: enum
    data_semantic: The styles of caps
    specification:
      default: round
      enum:
      - round
      - flat
      - square
  - arg_name: join_style
    is_single_en_dash: false
    param_type: param
    name: 连接样式
    description: 指定在偏移线中的角时是否应该使用圆角（round）、尖角（mitre）还是斜角（bevel）连接。
    is_required: false
    data_type: enum
    data_semantic: The styles of joins
    specification:
      default: round
      enum:
      - round
      - mitre
      - bevel
  - arg_name: mitre_limit
    is_single_en_dash: false
    param_type: param
    name: 尖角限制
    description: 只适用于尖角(mitre)连接样式，并控制创建尖角连接时使用偏移曲线的最大距离。
    data_type: float
    data_semantic: mitre_limit
    param_switches:
    - switch_arg_name: join_style
      switch_arg_value_regex: mitre$
      switch_arg_value_examples: [mitre]
    specification:
      default: 5
      range:
      - "(0,)"
  - arg_name: single_sided
    is_single_en_dash: false
    param_type: param
    name: 单侧缓冲区
    description: 将进行缓冲的输入要素的侧，默认为False，即在两侧生成缓冲区。当为True时，单侧缓冲区的边由缓冲距离的符号确定：距离为正表示输入要素的拓扑左侧；距离为负表示输入要素的拓扑右侧。
    is_required: false
    data_type: bool
    data_semantic: single sided
    specification:
      default: "False"
  - arg_name: dissolve
    is_single_en_dash: false
    param_type: param
    name: 融合
    description: 缓冲区重叠是否融合。默认为True，重叠部分融合。
    is_required: false
    data_type: bool
    data_semantic: dissolve
    specification:
      default: "True"
  - arg_name: output
    is_single_en_dash: false
    param_type: output_data
    name: 缓冲区分析结果
    description: 缓冲区分析结果, 保存为shp格式的文件
    data_type: shp
    data_semantic: buffer result
  groups:
  - group_id: idistance
    group_name: 缓冲区方式
    group_param_arg_names:
    - if_input_field_to_buffer
    - distance
    - field
  - group_id: joins_mitre
    group_name: 尖角限制
    group_param_arg_names:
    - join_style
    - mitre_limit
application:
  domain: 矢量数据缓冲区分析
  objective: 提取矢量对象的邻域范围
  mechanism: 遍历计算输入要素中每个折点的缓冲区偏移，创建输出缓冲区要素
operation:
  usage: 该算法使用缓冲区距离(distance)或缓冲区字段(field)为输入图层中的所有要素计算缓冲区。
  exec_example:
  - docker run -v $(pwd):/data buffer:1.0-geopandas0.9.0 --input "/data/point_test.shp" --distance 2000 --output "/data/outputfile_buffer.shp"
  - docker run -v $(pwd):/data buffer:1.0-geopandas0.9.0 --input "/data/point_test.shp" --field "distance" --output "/data/outputfile_buffer.shp"
  license:
  - geopandas-BSD
technique:
  language:
  - Python
  os:
  - Linux
  - Windows
  dependencies:
  - name: geopandas
    version: 0.9.0
source:
  maintainer: Minghui Li
  organization: Central South University
  contact: 286381830@qq.com
  integrated_softwares:
  - name: geopandas
    version: 0.9.0
    license: BSD
  references:
  - https://pro.arcgis.com/zh-cn/pro-app/2.8/tool-reference/analysis/buffer.htm
