Python模块来读取Cameca(nano)SIMS数据文件。

sims的Python项目详细描述


模拟人生

Python模块来读取Cameca(nano)SIMS数据文件。在

亮点

  • 从Cameca SIMS或nanomims文件中读入数据,使数据可以在Python科学堆栈(numpy/pandas/xarray/matplotlib)中直接访问。在

  • 读入文件的complete头。获取实验时记录的机器的每个设置。据我所知,没有其他软件能做到这一点。在

  • 读取几乎每个Cameca软件可以生成的文件。除了常见的数据文件(.im图像文件和.is'同位素'或spot文件),该软件还生成许多其他文件。举几个例子:

    • 高质量分辨率扫描(.hmr)
    • 二次离子束定心扫描(.sib)
    • 脉冲高度分布扫描(.phd)
    • E0S定心扫描(.E0S)
    • 能量扫描(.nrj)
    • 光束稳定性记录(.bs)
    • 还有更多!在

    其中大多数都可以被sims模块读取。尽可能增加对更多文件的支持。据我所知,没有其他软件能做到这一点。在

  • 直接从compressed文件读取数据。尤其是.im图像文件往往会占用大量空间,即使大多数数据是零。它们可以压缩到原来大小的90%。sims支持直接读取用gzip、bzip2、xz、lzma、7zip和zip压缩的文件。您还可以使用tar、zip或7zip将多个文件合并到一个多文件归档中,然后直接从中读取部分或全部文件。在

  • 它是开源和免费的,允许您确切地看到计算和数据转换是如何完成的。这与其他封闭源代码的程序形成了鲜明的对比,在这些程序中,你只需相信那些程序的编写者正确地实现了一切。你看不到他们是怎么做到的,因为他们不让你看到代码的内部。这个程序是完全开放的!看看事情是怎么做的,如果你不喜欢,就改进吧!在

新增功能

v2.0.0

由于0.25版pandas不再支持4DPanel和Panel。西姆斯已经改为使用xarray,这是推荐的 多维数据的数据结构。Xarray在很大程度上是基于pandas的,访问数据的语法几乎完全相同。有关详细信息,请参见xarray。在

sims的2.0版本也放弃了对Python2.x的支持,现在需要Python3.4或更高版本。在

v1.0.0

这个版本支持Python2.7并使用pandas作为数据结构。如果需要支持,请使用此版本。在

安装

安装此Python模块的要求:

  • Python 3.4或更新版本
  • 沙雷
  • 神经质的
  • scikit图像
  • matplotlib库

要安装,只需从命令行运行:

$ pip install sims

入门

一旦安装了sims,就可以开始使用nanomims文件了。在

^{pr2}$

# Show the header[13]:s.header...# too big to show here# Show a small portion of the header[14]:s.header['BFields'][0]{'b field enabled':True,'b field bits':856507,'wait time':0.0,'time per pixel':0.0075,'time per step':20.0,'wait time computed':False,'E0W offset':-13,'Q':389,'LF4':1601,'hex val':575,'frames per bfield':1,'Trolleys':[{'label':'12C','mass':12.004397767933469,'radius':442.47767499881127,'deflection plate 1':-68,'deflection plate 2':67,'detector':'EM','exit slit':268850,'real trolley':True,'cameca trolley index':0,'peakcenter index':1,'peakcenter follow':1,'focus':0.0,'hmr start':-16.996336996336996,'start dac plate 1':-68,'start dac plate 2':67,'hmr step':4,'hmr points':50,'hmr count time':0.54,'used for baseline':False,'50% width':95.616,'peakcenter side':'both','peakcenter count time':0.54,'used for sib center':False,'unit correction':0,'deflection':-9.963369963369964,'used for energy center':False,'used for E0S center':False,'trolley enabled':True,'used for phd scan':False,'phd start':3995,'phd step size':-30,'phd points':30,'phd count time':0.54,'phd scan repeat':3,'trolley label':'Trolley 1','detector label':'Detector 1'},...# Skipped all the other trolleys],'counting frame time':491.52,'scanning frame time':491.52,'working frame time':491.52}# Export header to JSON (text) format[19]:sims.utils.export_header(s,filename='header.txt')

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

推荐PyPI第三方库


热门话题
图形Java仿射变换以旋转通用路径   IntelliJ IDEA中的java代码标记为编译器错误,在Eclipse中可以正常工作   java ArrayList的containsAll返回了错误的值   如何在安卓中的片段活动中添加java代码   java通过使用netbeans调用jbutton,将带有行的jbutton添加到jtable中   java在更新arrayAdapter/listView之前更新最终列表   java如何在另一个项目中导入包含AspectJ方面和注释的项目   为什么我的java布尔测试总是失败?   Eclipse中的java自动激活   在Bluetooth for Java(更具体地说是Android)之上是否有TCP/IP协议栈实现?   java Android Studio通过intent传递ArrayList并填充ListView