Pyafm:控制原子力显微镜的工具。

pyafm的Python项目详细描述


Pyafm

pyafm是一套控制原子力显微镜的工具。它 使用短距离(压电)和 远程(步进)垂直定位。有单独的模块 为了控制压电(pypiezo)和步进器(stepper),这个 模块主要包含需要两者功能的方法。

该模块可以选择性地包括通过pypid的温度传感 后端。

套餐

gentoo

我已经为Gentoo包装了Pyafm。你需要layman和我的wtk overlay。安装时使用:

# emerge -av app-portage/layman
# layman --add wtk
# emerge -av sci-physics/pyafm

尽管它不是严格要求的(多亏了duck typing),但是 可能还需要我的stepper包或等效的 步进执行。

依赖关系

pyafm需要以下python模块:

获取源

pyafm可用作Git存储库:

$ git clone git://tremily.us/pyafm.git

也有定期的捆绑发行。例如,获取版本 0.3作为一个带gzipped tarball,带有:

$ wget 'http://git.tremily.us/?p=pyafm.git;a=snapshot;h=v0.3;sf=tgz'
$ tar -xzvf pyafm-0.1.tar.gz

安装

下载后,切换到源目录并运行:

$ python setup.py install

安装pyafm。运行:

$ python setup.py install --help

查看可能要配置的安装选项列表。

用法

docstrings包含一些非常详细的测试来帮助您开始。 dir()help()是您的朋友;)。一个整洁的特征 我最近(2012-03-16)增加了存储和加载 通过h5config完成AFM配置。例如,当你 首先使用pyafm,可能需要一点时间来挖掘所有必要的 校准常数等,并将其插入您的配置:

>>> import pycomedi.constant
>>> import pypiezo.config
>>> import pyafm.config
>>> config = pyafm.config.AFMConfig()
>>> config['name'] = '1B3D9'
>>> config['main-axis'] = 'z'
>>> config['piezo'] = pypiezo.config.PiezoConfig()
>>> config['piezo']['name'] = '2253E'
>>> config['piezo']['axes'] = [
...     pypiezo.config.AxisConfig(), pypiezo.config.AxisConfig()]
>>> config['piezo']['axes'][0]['gain'] = 20
>>> config['piezo']['axes'][0]['sensitivity'] = 8.8e-9
>>> config['piezo']['axes'][0]['channel'] = pypiezo.config.OutputChannelConfig()
>>> config['piezo']['axes'][0]['channel']['analog-reference] = pycomedi.constant.AREF.ground
>>> config['piezo']['axes'][0]['channel']['analog-reference] = pycomedi.constant.AREF.ground

一个接一个;)。不过,别担心,一旦你告诉python 关于您的特定afm配置,您可以获得一个工作的AFM 实例很容易:

>>> devices = []
>>> afm = AFM(config=config, devices=devices)

它负责打开所有通道并初始化所有 你在上面配置的部件。devices最后将充满任何 pycomedi.device.Device您需要的实例。一旦你高兴了 使用您的设置,确保config对象是最新的:

>>> afm.setup_config()

将任何新的对象状态复制到.config属性中 (例如,位-伏转换多项式)。那就把你的 配置:

>>> import pyafm.storage
>>> pyafm.storage.save_afm(afm=afm, filename='whatever', group='/optional')

它将在指定路径创建一个hdf5文件,并存储afm 在指定组下配置。filenamegroup是可选的。如果你不考虑他们,他们会默认 ^分别是{tt12}$和/

下次你需要用AFM做点什么的时候,只要把你的 旧配置文件。如果你使用默认位置,那就很简单了 作为:

>>> import pyafm.storage
>>> devices = []
>>> afm = pyafm.storage.load_afm(devices=devices)
>>> afm.load_from_config()

当你用完后,最好关闭任何设备 在devices

>>> for device in devices:
...     device.close()

对默认路径使用load_afm是保持 AFM配置跨多个应用程序同步。那样的话, 如果你重新校准你的 压电或重建放大器。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么Camel Spring 2.20.2会导致NIST漏洞CVE20169878和CVE20175929   javascript如何在Lodash中获取数组索引。每个   如何在java中欺骗ip   选择的java DropdownChoice与模型值不同,在ajax更新时更改   用于Java库ant构建的GnuPG问题/错误   java Atlas Mapper:使用Atlas Mapping文档为给定负载执行映射   java Paypal Broadleaf集成   java Meteor客户端函数,然后是服务器端响应   JavaJPA2在JavaSE中使用EntityManager有几个问题   java是否将时间戳格式的值更改为其他时间戳格式?   java为什么IF语句不能处理四舍五入的浮点和双精度浮点?   java无法访问handle事件中的按钮/文本区域   java Eclipse将数据插入MySQL时出现while循环未指定值错误   调试是java类库的启用调试/编译版本仍然可用   异步java。lang.ClassCastException:无法强制转换为组织。springframework。util。同时发生的可听未来   打印总是选择默认打印机,而不是指定的JAVA打印机   在Java中实现多重继承的对象   java如何从具有特定联系人的其他应用程序打开Whatsapp?   unicode字符串的java gson序列化不起作用   java如何从Android向flask服务器发送带有参数的post请求?