Bluesky计划工具,提供Wright组需要的功能。
项目描述
wright-plans
一组Bluesky计划,专注于Wright组内的实验编排。
安装
从PyPI安装最新发布的版本
$ python3 -m pip install wright-plans
conda-forge即将推出!
使用flit从源安装。
$ git clone https://github.com/wright-group/wright-plans.git
$ cd wright-plans
$ flit install -s
用法
wright-plans在三个主要方面扩展了Bluesky
- 支持WrightTools风格的单位
- 支持“常量”,如下所述的硬件关系的代数表达式
- 支持Wright组实验的独特专用调整程序
此包中定义的计划都以_wp
结尾,以确保它们的名称永远不会与Bluesky本身或其他Bluesky计划提供者中定义的计划冲突。如果合适,请随意将这些计划混合到现有环境中。有关如何在简单的Python脚本或笔记本环境中利用这些计划的文档,请参阅Bluesky文档。以下是一个最小示例
>>> import yaqc_bluesky
>>> motor1 = yaqc_bluesky.Device(39000)
>>> motor2 = yaqc_bluesky.Device(39001)
>>> sensor = yaqc_bluesky.Device(39002)
>>> import bluesky
>>> RE = bluesky.RunEngine()
>>> import wright_plans
>>> RE(wright_plans.grid_scan_wp([sensor], motor1, -1, 1, 11, "mm", motor2, -1, 1, 11, "mm")
对于在bluesky-queueserver中的使用,请考虑bluesky-in-a-box。
请注意,这些计划生成的运行通过from_databroker
方法保证与WrightTools兼容。
>>> import databroker
>>> import WrightTools as wt
>>> mongo = databroker.catalog["mongo"]
>>> run = mongo[-1] # get most recent run from catalog
>>> wt.data.from_databroker(mongo)
<WrightTools.Data>
来自更广泛的BlueSky生态系统的计划可能与from_databroker
兼容,也可能不兼容。BlueSky具有任意编排的能力,某些实验违反了WrightTools的核心假设。然而,BlueSky数据处理的其余生态系统仍适用于此类计划。
常量
常量提供了一种使用与扫描硬件位置相关的代数表达式驱动辅助硬件的工具。
例如,涉及两个可调光源w1
和w2
的扫描可能使单色仪(wm
)跟踪代数和2 * w1 + w2
。这对于《Neff-Mallon和Wright 2017》中描述的相干多维光谱学特别重要。
wright_plans
中的常量允许对其他硬件进行任意线性组合,这些硬件具有兼容的单位。常量具有单位意识,并在指定单位中进行加法和乘法。
常量使用Constant
类和ConstantTerm
元素定义。
上述扫描的示例
>>> import yaqc_bluesky
>>> w1 = yaqc_bluesky.Device(39000)
>>> w2 = yaqc_bluesky.Device(39001)
>>> wm = yaqc_bluesky.Device(39002)
>>> sensor = yaqc_bluesky.Device(39003)
>>>
>>> import bluesky
>>> RE = bluesky.RunEngine()
>>>
>>> from wright_plans import Constant, ConstantTerm, gridscan_wp
>>> constants = {wm: Constant("wn", [
... ConstantTerm(2, w1),
... ConstantTerm(1, w2),
... ])}
>>> RE(grid_scan_wp([sensor], motor1, -1, 1, 11, "mm", motor2, -1, 1, 11, "mm", constants=constants)
常量字典 | 描述 |
---|---|
Constant("nm", [ConstantTerm(1300, None)]) |
静态保持在1300 nm |
Constant("ps", [ConstantTerm(1, d2)])} |
跟踪d2 |
Constant("wn", [ConstantTerm(3, w1)])} |
三倍w1 (wn单位) |
Constant("wn", [ConstantTerm(3, w1), ConstantTerm(-800, None)])} |
三倍w1 并减去800 wn |
Constant("wn", [ConstantTerm(1, w1), ConstantTerm(1, w2), ConstantTerm(1, w3)])} |
三重和频率常量 |
常量字典中的每个条目描述了一个可移动设备的跟踪行为,多个设备可以通过将字典作为参数传递(例如{motor1: constant1, motor2: constant2}
)在单个扫描中设置跟踪。
计划
Wright计划提供了以下计划,可以通过它们的文档字符串找到计划签名
计划名称 | 描述 |
---|---|
scan_wp |
多个电机的“内积”扫描,具有等距的点 |
list_scan_wp |
多个电机的“内积”扫描,具有列出的位置 |
grid_scan_wp |
多个轴的“外积”扫描,具有等距的点 |
list_grid_scan_wp |
多个轴的“外积”扫描,具有列出的位置 |
scan_nd_wp |
使用Cycler对象的通用N维扫描 |
rel_scan_wp |
相对于初始条件的多个电机的“内积”扫描,具有等距的点 |
rel_list_scan_wp |
相对于初始条件的多个电机的“内积”扫描,具有列出的位置 |
rel_grid_scan_wp |
相对于初始条件的多个轴的“外积”扫描,具有等距的点 |
rel_list_grid_scan_wp |
相对于初始条件的多个轴的“外积”扫描,具有列出的位置 |
motortune |
扫描OPA的单个电机 |
tune_test |
验证OPA的输出 |
tune_intensity |
调整OPA的电机以最大化强度 |
tune_setpoint |
调整OPA的电机以优化输出颜色 |
tune_holistic |
同时调整OPA中的两个电机以优化颜色和强度 |
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建的分发版
wright_plans-2022.7.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a85045c2462ee50e78327f90a7012e8e2d738d84a2ad62142b2d245328dc166d |
|
MD5 | 8c5188245f76da3238e26c9e68bfdb3f |
|
BLAKE2b-256 | ce474f2a075e7dd04a29dbb3c15e8ea02fff2afe9553a5d84d2d2928eac29c4b |
wright_plans-2022.7.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9fcfc080391cd20a7ea62617e6f74924f844cc5489dac4eb7d6b0402c0c49009 |
|
MD5 | 60051dbf891ad23a0276d6c989614859 |
|
BLAKE2b-256 | 37e9666b03fa9cfcf8d5386a9533db627a2619f9c40ffae2fc71fe26bfa9a94b |