本文整理汇总了Python中Scientific.IO.NetCDF.NetCDFFile.history方法的典型用法代码示例。如果您正苦于以下问题:Python NetCDFFile.history方法的具体用法?Python NetCDFFile.history怎么用?Python NetCDFFile.history使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scientific.IO.NetCDF.NetCDFFile
的用法示例。
在下文中一共展示了NetCDFFile.history方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: AsapFileToTrajectory
# 需要导入模块: from Scientific.IO.NetCDF import NetCDFFile [as 别名]
# 或者: from Scientific.IO.NetCDF.NetCDFFile import history [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()