跳转至

Python 脚本

在基础计算工具内,会用到大量的脚本进行输出和参与计算。本节对 python 脚本相关内容进行总结介绍。

界面区域说明

  • 脚本编辑区:输入脚本代码
  • 脚本执行结果提示区:输入脚本后,该显示区最右侧会显示运行按钮 。点击开始运行脚本,如脚本有误会提示错误原因,无误则变成 图标
  • 运算函数表:涵盖多类运算函数,可在下拉框内选择大类。选定某个函数,点击该函数,在此区域下方会出现该函数的注释;双击该函数会自动添加到脚本编辑区。如需用到非运算函数表内、且属于 NumPy 库的数值计算函数,需要在脚本初始位置 import numpy
  • 算法工具的输出参数列表:当前 Task 下所有算法的输出参数
  • 跨作业选项:指定跨 task 的算法工具结果项,选择作业时算法工具输出参数栏会切换为该作业中的所有支持类型的参数选项
  • 使用物理值:启用和关闭是否显示物理参数,默认关闭。通常用于标定场景

单个数据取值

以多直线定位的直线中点数据为例:

  1. 添加"数值计算"脚本工具
  2. 第一条直线的中点坐标 X 取值:[多直线定位.中点][0]
  3. 第一条直线的中点坐标 Y 取值:[多直线定位.中点][1]
  4. 以此类推,[多直线定位.中点][2] 代表第 2 条直线中点坐标的 X 取值

坐标取值

以圆定位的圆心数据为例:

  1. 添加"点计算"脚本工具
  2. 直接选择圆定位的圆心:[圆定位.圆心]

或分开选择点的 X 和 Y 值:[圆定位.圆心][0],[圆定位.圆心][1]

加减乘除括号运算

以线到线的距离为例:

  1. 添加"数值计算"脚本工具
  2. 选择要运算的数值,如 [线到线的距离.距离]
  3. 用加减乘除括号连接,如 [线到线的距离_2.距离] - ( [线到线的距离_3.距离] - [线到线的距离.距离] )

基础运算

math.hypot(Number) 为例:

  1. 添加"数值计算"脚本工具
  2. 选择要运算类型 math.hypot(),选中后下方会显示运算规则注释
  3. 根据样例填入参数,如 [线到线的距离.距离], [线到线的距离_2.距离]

逻辑运算

Logical1 and Logical2 为例:

  1. 添加"条件判断"脚本工具
  2. 选择运算类型 and
  3. 填入参数,如 [线到线的距离.距离]>50 and [线到线的距离_2.距离]>100

比较运算

Value1 > Value2 为例:

  1. 添加"条件判断"脚本工具
  2. 选择运算类型 >
  3. 填入参数,如 [清晰度判定.清晰度] > 120

三角函数运算

math.sin(Number) 为例:

  1. 添加"数值计算"脚本工具
  2. 选择运算类型 math.sin()
  3. 填入参数,如 [交叉角度.角度]

统计运算

max(ValueList) 为例:

  1. 添加"数值计算"脚本工具
  2. 选择运算类型 max()
  3. 填入参数,如 [线到线的距离.距离], [线到线的距离_2.距离]

数值运算

Variable *= Variable2 为例:

  1. 添加"数值计算"脚本工具
  2. 选择运算类型 *=
  3. 填入参数,如 a *= 2(其中 a = [点到线的距离.距离],表示 a = a*2)

显示保留 n 位小数

以保留 1 位小数为例:

  1. 添加"字符串生成"脚本工具
  2. 计算公式为 "{:.nf}".format(x)str("{:.nf}".format(x)),n 为保留的小数位数,x 为目标数据
  3. 填入参数,如 "{:.1f}".format([点到线的距离.距离])

字符串运算

以截取字符串内整数部分为例:

  1. 添加"字符串生成"脚本工具
  2. 选择运算类型 [ : ]
  3. 创建完整字符串 str = 'Distance=' + str([点到线的距离.距离]),如 str 结果为 "Distance=214.5027098..."
  4. 输出 str[9:12] 即截取 str 字符串第 9 到第 11 号位上的字符(":"前编号位包含,后编号位不包含,字符串位置编号从 0 开始)

控制运算

if(Condition): Branch1 else: Branch2 为例:

  1. 添加"数值计算"脚本工具
  2. 选择运算类型 if-else
  3. 根据样例填入判断依据,如 [点到线的距离.距离]>200

数列 list 相乘运算

以两个数列相乘为例:

  1. 添加"数列计算"脚本工具
  2. 导入 numpy 库,创建两个基础数列,如 np.array([1,2,3])
  3. 使用 np.multiply(a,b) 即表示对数列 a 和 b 进行相乘计算