language: cn #必填。
model_unique_abbr: iPSM
version: 1.0

identification:
  docker_image_name: ipsm:1.0 #必填。1.对于依赖开源软件实现的模型镜像名为crazyzlj/saga-gis:base-latest（saga-gis软件）、crazyzlj/whitebox-tools:2.1.0（whitebox软件）、taudem_ext:openmpi-gdal（taudem软件）；2.对于镜像与模型一一对应的情况，建议：模型名（与飞书文档"附件3-课题拟集成模型列表"中模型名一致）:1.0-实现版本，如dbscan:1.0-sklearn，buffer::1.0-geopandas；3.对于一个镜像里多个模型的情况，多个模型共用一个镜像名，镜像名可根据多个模型的类别与功能或所实现的版本进行抽象。
  docker_run_prefix:
  model_name: 基于样点个体代表性的地理空间特征空间推测(iPSM) #必填。如果不同版本实现的同一个功能，根据不同功能的差异进行区分
  semantic: 基于样点个体代表性的地理属性空间推测 #选填。英文，可空格，最后梳理成语义库
  category_application: 预测型 #必填。应用层次类别，通用基础、描述型、诊断型、预测型、处方型，可在实施方案中查看具体信息
  category_data:
    - 栅格数据 #必填。分析数据类别
  description: 基于样点个体代表性的地理空间特征空间推测，多用于土壤属性的空间推测 #必填。对模型的描述，展示给前端
  keywords: #选填。基于该模型的参考文献，凝练填写
    - 土壤属性空间推测
    - 基于样点个体代表性
    - 地理学第三定律


parameter_info:
  parameters:
    - arg_name: np
      param_type: param
      visible: false
      name: 进程数
      description: mpi计算核数
      data_type: int
      data_semantic: number of process
      specification:
        default: 4
    - arg_name: ' '
      param_type: param
      visible: false
      name: 基于样点个体代表性的地理属性空间推测
      description: 基于样点个体代表性的地理属性空间推测
      data_type: str
      data_semantic: name of individual predictive soil mapping algorithm
      specification:
        default: ipsm
    - arg_name: sample #必填。根据模型命令行的情况进行填写
      is_run_arg: true #选填，默认为true。填false则表示仅做前端渲染用
      is_positional_arg: false #选填，默认为false，填true则表示该参数在拼接为命令行时不加-arg_name，仅拼接参数值。在填写元数据时，该类参数需要注意与其他参数间的顺序，最后按该顺序拼接命令行
      is_single_en_dash: true #选填。默认为true。1.如果为true，在命令行时会以"-参数标识名"的方式调用，以input为例，会以"-input"方式传给后端；如果为false，在命令行时会以一个"--参数标识名"的方式调用，以input为例，会以"--input"方式传给后端
      param_type: input_data #必填。
      visible: true #选填。是否暴露给前端，不填则默认true。并行进程数这类参数则填false，前端不可见
      name: 土壤样点 #必填。
      description: 实地采集的土壤样点数据 #必填。描述参数的作用与用途，对于枚举型参数，描述每个参数的含义
      is_required: true #选填。不填则默认为true
      data_type: csv #必填。
      data_semantic: soil samples #选填。参数语义，与参数中文名对应，注意不是参数标识名

    - arg_name: target #必填。根据模型命令行的情况进行填写
      is_run_arg: true #选填，默认为true。填false则表示仅做前端渲染用
      is_positional_arg: false #选填，默认为false，填true则表示该参数在拼接为命令行时不加-arg_name，仅拼接参数值。在填写元数据时，该类参数需要注意与其他参数间的顺序，最后按该顺序拼接命令行
      is_single_en_dash: true #选填。默认为true。1.如果为true，在命令行时会以"-参数标识名"的方式调用，以input为例，会以"-input"方式传给后端；如果为false，在命令行时会以一个"--参数标识名"的方式调用，以input为例，会以"--input"方式传给后端
      param_type: param #必填。
      visible: true #选填。是否暴露给前端，不填则默认true。并行进程数这类参数则填false，前端不可见
      name: 待推测土壤属性 #必填。
      description: 待推测土壤属性（样点数据中待推测属性所在列的列名） #必填。描述参数的作用与用途，对于枚举型参数，描述每个参数的含义
      is_required: true #选填。不填则默认为true
      data_type: str #必填。
      data_semantic: property of soil sample #选填。参数语义，与参数中文名对应，注意不是参数标识名
      param_switches: #选填。指明前端显示时，当前参数在何种情况下才显示。各arg之间是and关系。
      - switch_arg_name: sample #控制当前参数的其他参数的arg_name
        switch_arg_value_regex: csv$ #其他参数在取何值时，当前参数才显示。正则表达式。
        switch_arg_value_examples: [ sample.csv, xc_represent_samples.csv ] #必填。给出一些能使当前参数显示的控制参数的示例

    - arg_name: inlayer0 #必填。根据模型命令行的情况进行填写
      is_run_arg: true #选填，默认为true。填false则表示仅做前端渲染用
      is_positional_arg: false #选填，默认为false，填true则表示该参数在拼接为命令行时不加-arg_name，仅拼接参数值。在填写元数据时，该类参数需要注意与其他参数间的顺序，最后按该顺序拼接命令行
      is_single_en_dash: true #选填。默认为true。1.如果为true，在命令行时会以"-参数标识名"的方式调用，以input为例，会以"-input"方式传给后端；如果为false，在命令行时会以一个"--参数标识名"的方式调用，以input为例，会以"--input"方式传给后端
      param_type: input_data #必填。
      visible: true #选填。是否暴露给前端，不填则默认true。并行进程数这类参数则填false，前端不可见
      name: DEM栅格 #必填。
      description: 数字高程模型 #必填。描述参数的作用与用途，对于枚举型参数，描述每个参数的含义
      is_required: false #选填。不填则默认为true
      data_type: tif #必填。
      data_semantic: filled_dem #选填。参数语义，与参数中文名对应，注意不是参数标识名
    - arg_name: inlayer1
      is_run_arg: true
      is_positional_arg: false
      is_single_en_dash: true
      param_type: input_data
      visible: true
      name: 坡度栅格
      description: 坡度栅格
      is_required: false
      data_type: tif
      data_semantic: slope
    - arg_name: inlayer2
      is_run_arg: true
      is_positional_arg: false
      is_single_en_dash: true
      param_type: input_data
      visible: true
      name: 汇聚指数
      description: 汇聚指数
      is_required: false
      data_type: tif
      data_semantic: convergence_index
    - arg_name: inlayer3
      is_run_arg: true
      is_positional_arg: false
      is_single_en_dash: true
      param_type: input_data
      visible: true
      name: 坡向
      description: 坡向栅格
      is_required: false
      data_type: tif
      data_semantic: aspect
    - arg_name: inlayer4
      is_run_arg: true
      is_positional_arg: false
      is_single_en_dash: true
      param_type: input_data
      visible: true
      name: 平面曲率
      description: 平面曲率栅格
      is_required: false
      data_type: tif
      data_semantic: plan_curvature
    - arg_name: inlayer5
      is_run_arg: true
      is_positional_arg: false
      is_single_en_dash: true
      param_type: input_data
      visible: true
      name: 剖面曲率
      description: 剖面曲率栅格
      is_required: false
      data_type: tif
      data_semantic: profile_curvature
    - arg_name: inlayer6
      is_run_arg: true
      is_positional_arg: false
      is_single_en_dash: true
      param_type: input_data
      visible: true
      name: 水动力指数
      description: 水动力指数栅格
      is_required: false
      data_type: tif
      data_semantic: stream_power_index
    - arg_name: inlayer7 #必填。根据模型命令行的情况进行填写
      is_run_arg: true #选填，默认为true。填false则表示仅做前端渲染用
      is_positional_arg: false #选填，默认为false，填true则表示该参数在拼接为命令行时不加-arg_name，仅拼接参数值。在填写元数据时，该类参数需要注意与其他参数间的顺序，最后按该顺序拼接命令行
      is_single_en_dash: true #选填。默认为true。1.如果为true，在命令行时会以"-参数标识名"的方式调用，以input为例，会以"-input"方式传给后端；如果为false，在命令行时会以一个"--参数标识名"的方式调用，以input为例，会以"--input"方式传给后端
      param_type: input_data #必填。
      visible: true #选填。是否暴露给前端，不填则默认true。并行进程数这类参数则填false，前端不可见
      name: 地形湿度指数 #必填。
      description: 地形湿度指数栅格 #必填。描述参数的作用与用途，对于枚举型参数，描述每个参数的含义
      is_required: false #选填。不填则默认为true
      data_type: tif #必填。
      data_semantic: topographic_wetness_index #选填。参数语义，与参数中文名对应，注意不是参数标识名
    - arg_name: simithred #必填。根据模型命令行的情况进行填写
      is_run_arg: true #选填，默认为true。填false则表示仅做前端渲染用
      is_positional_arg: false #选填，默认为false，填true则表示该参数在拼接为命令行时不加-arg_name，仅拼接参数值。在填写元数据时，该类参数需要注意与其他参数间的顺序，最后按该顺序拼接命令行
      is_single_en_dash: true #选填。默认为true。1.如果为true，在命令行时会以"-参数标识名"的方式调用，以input为例，会以"-input"方式传给后端；如果为false，在命令行时会以一个"--参数标识名"的方式调用，以input为例，会以"--input"方式传给后端
      param_type: param #必填。
      visible: true #选填。是否暴露给前端，不填则默认true。并行进程数这类参数则填false，前端不可见
      name: 不确定性阈值参数 #必填。
      description: 不确定性阈值参数 #必填。描述参数的作用与用途，对于枚举型参数，描述每个参数的含义
      is_required: true #选填。不填则默认为true
      data_type: str #必填。
      data_semantic: Uncertainty Threshold #选填。参数语义，与参数中文名对应，注意不是参数标识名
      specification: #选填。参数规格
        default: 0.3
    - arg_name: predmap #必填。根据模型命令行的情况进行填写
      is_run_arg: true #选填，默认为true。填false则表示仅做前端渲染用
      is_positional_arg: false #选填，默认为false，填true则表示该参数在拼接为命令行时不加-arg_name，仅拼接参数值。在填写元数据时，该类参数需要注意与其他参数间的顺序，最后按该顺序拼接命令行
      is_single_en_dash: true #选填。默认为true。1.如果为true，在命令行时会以"-参数标识名"的方式调用，以input为例，会以"-input"方式传给后端；如果为false，在命令行时会以一个"--参数标识名"的方式调用，以input为例，会以"--input"方式传给后端
      param_type: output_data #必填。
      visible: true #选填。是否暴露给前端，不填则默认true。并行进程数这类参数则填false，前端不可见
      name: 土壤属性空间分布 #必填。
      description: 土壤属性空间推测结果 #必填。描述参数的作用与用途，对于枚举型参数，描述每个参数的含义
      is_required: true #选填。不填则默认为true
      data_type: tif #必填。
      data_semantic: Spatial distribution of soil properties #选填。参数语义，与参数中文名对应，注意不是参数标识名
    - arg_name: uncmap #必填。根据模型命令行的情况进行填写
      is_run_arg: true #选填，默认为true。填false则表示仅做前端渲染用
      is_positional_arg: false #选填，默认为false，填true则表示该参数在拼接为命令行时不加-arg_name，仅拼接参数值。在填写元数据时，该类参数需要注意与其他参数间的顺序，最后按该顺序拼接命令行
      is_single_en_dash: true #选填。默认为true。1.如果为true，在命令行时会以"-参数标识名"的方式调用，以input为例，会以"-input"方式传给后端；如果为false，在命令行时会以一个"--参数标识名"的方式调用，以input为例，会以"--input"方式传给后端
      param_type: output_data #必填。
      visible: true #选填。是否暴露给前端，不填则默认true。并行进程数这类参数则填false，前端不可见
      name: 空间推测不确定性 #必填。
      description: 土壤属性空间推测空间推测不确定性结果 #必填。描述参数的作用与用途，对于枚举型参数，描述每个参数的含义
      is_required: true #选填。不填则默认为true
      data_type: tif #必填。
      data_semantic: Spatial speculative uncertainty #选填。参数语义，与参数中文名对应，注意不是参数标识名


  groups: #选填。只控制参数在前端如何分组显示
    - group_id: soil samples
      group_name: 土壤样点与推测属性选择
      group_param_arg_names:
      - sample
      - target
    - group_id: covariates
      group_name: 环境变量（至少配置一个）
      group_param_arg_names:
      - inlayer0
      - inlayer1
      - inlayer2
      - inlayer3
      - inlayer4
      - inlayer5
      - inlayer6
      - inlayer7


application:
  domain: 土壤属性空间推测 #应用领域
  objective: 基于样点个体代表性的方法推测土壤属性的空间分布 #应用目标
  link_models: #关联模型
    preorder: [] #上游模型（填写model_unique_abbr），即当前模型的输入模型
    alternative: []
  dimension: [] #空间维度
  timestep: [] #时间步长
  spatial_resolution: [] #空间分辨率
  spatial_reference: [] #投影坐标系
  mechanism: # 环境因子越相似、土壤属性越相近的假设下，认为每一样点可看作包含特定土壤—环境关系的案例，能够代表与之环境因子组合相似的地区，并且代表程度可由两点间的环境相似度来度量，通过分析环境相似度推测不确定性，并以环境相似度为权重计算样点可代表区域的土壤属性值。 #机理

operation:
  usage: 该算法需要用户选择待推测的土壤属性，选择至少一个相关的环境变量因子，从而推测研究区的土壤属性空间分布特征。 #模型的使用说明，展示在前端
  exec_example: #使用示例
    - docker run -it -v $(pwd)/data:/data ipsm:1.0 -np 4 ipsm -inlayer /data/plan_30m.tif -inlayer /data/slope_30m.tif -sample /data/samples.csv -target org -simithred 0.5 -predmap /data/pred.tif -uncmap /data/uncer.tif
  output_display:
    - 对土壤制图结果及不确定性进行显示。 #先写文字
  license: [] #许可证
  tips: #注意事项

technique:
  language: [C++] #开发语言
  os: [Windows,Linux,MacOS] #操作系统
  parallel: [multiprocessor] #并行方式
  hardware: [CPU,GPU] #硬件要求
  dependencies:
    - name: GDAL
      version: 3.16

source:
  maintainer: 维护者
  organization: 组织名称
  contact: 联系方式
  repository: 代码仓库地址
  integrated_softwares:
    - name: 库名
      version: 库版本
      license: 库许可证
  references:
    - somewhat1
    - somewhat2
