以序列化、高效且Pythonic的方式指定步进和飞扫路径
项目描述
scanspec
使用Specs如Line或Spiral的组合,以序列化、高效且Pythonic的方式指定步进和飞扫路径
- 如直线或螺旋规格
- 可选蛇形
- 使用Zip、Product和Concat来组合
- 使用具有多个区域的掩码来限制
序列化Spec而不是展开的路径,并在服务器上重建。它然后可以被迭代,就像一个循环器,或者可以生成扫描帧的堆栈和按块创建的展开路径,以提高性能
源代码 | https://github.com/bluesky/scanspec |
---|---|
PyPI | pip install scanspec |
文档 | https://bluesky.github.io/scanspec |
发布 | https://github.com/bluesky/scanspec/releases |
一个示例ScanSpec,在圆形内进行2D蛇形网格飞扫,每个点花费0.4秒
from scanspec.specs import Line, fly
from scanspec.regions import Circle
grid = Line(y, 2.1, 3.8, 12) * ~Line(x, 0.5, 1.5, 10)
spec = fly(grid, 0.4) & Circle(x, y, 1.0, 2.8, radius=0.5)
绘制时看起来像
可以直接迭代扫描点以提高便利性
for point in spec.midpoints():
print(point)
# ...
# {'y': 3.1818181818181817, 'x': 0.8333333333333333, 'DURATION': 0.4}
# {'y': 3.1818181818181817, 'x': 0.7222222222222222, 'DURATION': 0.4}
或者从帧的堆栈和一个给定长度的块创建路径以提高性能
from scanspec.core import Path
stack = spec.calculate()
len(stack[0]) # 44
stack[0].axes() # ['y', 'x', 'DURATION']
path = Path(stack, start=5, num=30)
chunk = path.consume(10)
chunk.midpoints # {'x': <ndarray len=10>, 'y': <ndarray len=10>, 'DURATION': <ndarray len=10>}
chunk.upper # bounds are same dimensionality as positions
请参阅https://bluesky.github.io/scanspec获取更详细的文档。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
scanspec-0.7.2.tar.gz (140.6 kB 查看哈希值)
构建分发
scanspec-0.7.2-py3-none-any.whl (36.7 kB 查看哈希值)
关闭
scanspec-0.7.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d043143dcf4871f8a04b843ba0b06ae25b020d075565a7935ecab092acd5905e |
|
MD5 | 8f51a8e504ff628cab3f34c8bcf3ea35 |
|
BLAKE2b-256 | 431e02d4b87ca03d75bd22b8cd1523dcbfcc39fa5e5cf09d92f737e56ff4bccc |
关闭
scanspec-0.7.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 406d26b4fdc9cc316c6ba64fc6dd9353e8fd2abb8cded756accd15f9f8e5e636 |
|
MD5 | 33971a4ee9a169d6e0824813d611ba48 |
|
BLAKE2b-256 | 91102d88224220298a27aaf71107919932de42daec6a28e55395d9b4aa977a57 |