当前位置: 首页>>代码示例>>Python>>正文


Python NetCDFFile.energyunit方法代码示例

本文整理汇总了Python中Scientific.IO.NetCDF.NetCDFFile.energyunit方法的典型用法代码示例。如果您正苦于以下问题:Python NetCDFFile.energyunit方法的具体用法?Python NetCDFFile.energyunit怎么用?Python NetCDFFile.energyunit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Scientific.IO.NetCDF.NetCDFFile的用法示例。


在下文中一共展示了NetCDFFile.energyunit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: AsapFileToTrajectory

# 需要导入模块: from Scientific.IO.NetCDF import NetCDFFile [as 别名]
# 或者: from Scientific.IO.NetCDF.NetCDFFile import energyunit [as 别名]
def AsapFileToTrajectory(oldfile, newfile, firstframe=None, lastframe=None):
    # Check if input file is a filename or a NetCDF file
    if isinstance(oldfile, types.StringTypes):
        oldfile = NetCDFFile(oldfile)

    pos = oldfile.variables['cartesianPositions']  # Must be present
    (nframes, natoms, three) = pos.shape
    print natoms, three, nframes
    firstframe = normalize(firstframe, nframes, 0)
    lastframe = normalize(lastframe, nframes, -1)
    if lastframe < firstframe:
        raise ValueError, "No frames to copy, giving up."

    print "Preparing to copy frames", firstframe, "to", lastframe
    # Now open the output file, and define the variables.
    if isinstance(newfile, types.StringTypes):
        newfile = NetCDFFile(newfile, "w")
    oncevars = []
    manyvars = []
    for v in oldfile.variables.keys():
        try:
            newname = old_names[v]
        except KeyError:
            print "WARNING: Skipping data named", v
            continue
        if new_names[newname][2]:
            shape = new_names[newname][0]
            oncevars.append((v, newname))
        else:
            shape = ("unlim",) + new_names[newname][0]
            manyvars.append((v, newname))
        shape2 = []
        for d in shape:
            if isinstance(d, types.IntType):
                n = d
                d = str(d)
            elif d == 'natoms':
                n = natoms
            elif d == 'unlim':
                n = None
            else:
                raise RuntimeError, "Unknown dimension "+str(d)
            if not newfile.dimensions.has_key(d):
                newfile.createDimension(d, n)
            shape2.append(d)
        print v, "-->", newname, " shape", shape2
        var = newfile.createVariable(newname, oldfile.variables[v].typecode(),
                                     tuple(shape2))
        var.once = new_names[newname][2]
        var.units = new_names[newname][3]
        
    # Now copy the data
    print "Copying global data"
    newfile.history = 'ASE trajectory'
    newfile.version = '0.1'
    newfile.lengthunit = 'Ang'
    newfile.energyunit = 'eV'
    for oldname, newname in oncevars:
        newfile.variables[newname][:] = oldfile.variables[oldname][:]
    
    for n in range(firstframe, lastframe+1):
        print "Copying frame", n
        for oldname, newname in manyvars:
            newfile.variables[newname][n] = oldfile.variables[oldname][n]
    newfile.close()
开发者ID:auag92,项目名称:n2dm,代码行数:67,代码来源:AsapFileToTrajectory.py


注:本文中的Scientific.IO.NetCDF.NetCDFFile.energyunit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。