本文整理汇总了Python中anuga.file.netcdf.NetCDFFile.variables['volumes'][:]方法的典型用法代码示例。如果您正苦于以下问题:Python NetCDFFile.variables['volumes'][:]方法的具体用法?Python NetCDFFile.variables['volumes'][:]怎么用?Python NetCDFFile.variables['volumes'][:]使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类anuga.file.netcdf.NetCDFFile
的用法示例。
在下文中一共展示了NetCDFFile.variables['volumes'][:]方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ferret2sww
# 需要导入模块: from anuga.file.netcdf import NetCDFFile [as 别名]
# 或者: from anuga.file.netcdf.NetCDFFile import variables['volumes'][:] [as 别名]
#.........这里部分代码省略.........
starttime = times[0]
sww = Write_sww(['elevation'], ['stage', 'xmomentum', 'ymomentum'])
sww.store_header(outfile, times, number_of_volumes,
number_of_points, description=description,
verbose=verbose, sww_precision=netcdf_float)
# Store
from anuga.coordinate_transforms.redfearn import redfearn
x = num.zeros(number_of_points, num.float) #Easting
y = num.zeros(number_of_points, num.float) #Northing
if verbose:
log.critical('Making triangular grid')
# Check zone boundaries
refzone, _, _ = redfearn(latitudes[0], longitudes[0])
vertices = {}
i = 0
for k, lat in enumerate(latitudes): # Y direction
for l, lon in enumerate(longitudes): # X direction
vertices[l, k] = i
_, easting, northing = redfearn(lat, lon)
#msg = 'Zone boundary crossed at longitude =', lon
#assert zone == refzone, msg
#print '%7.2f %7.2f %8.2f %8.2f' %(lon, lat, easting, northing)
x[i] = easting
y[i] = northing
i += 1
#Construct 2 triangles per 'rectangular' element
volumes = []
for l in range(number_of_longitudes-1): # X direction
for k in range(number_of_latitudes-1): # Y direction
v1 = vertices[l, k+1]
v2 = vertices[l, k]
v3 = vertices[l+1, k+1]
v4 = vertices[l+1, k]
volumes.append([v1, v2, v3]) #Upper element
volumes.append([v4, v3, v2]) #Lower element
volumes = num.array(volumes, num.int) #array default#
if origin is None:
origin = Geo_reference(refzone, min(x), min(y))
geo_ref = write_NetCDF_georeference(origin, outfile)
if elevation is not None:
z = elevation
else:
if inverted_bathymetry:
z = -1 * elevations
else:
z = elevations
#FIXME: z should be obtained from MOST and passed in here
#FIXME use the Write_sww instance(sww) to write this info
z = num.resize(z, outfile.variables['elevation'][:].shape)
outfile.variables['x'][:] = x - geo_ref.get_xllcorner()
outfile.variables['y'][:] = y - geo_ref.get_yllcorner()
#outfile.variables['z'][:] = z #FIXME HACK for bacwards compat.
outfile.variables['elevation'][:] = z
outfile.variables['volumes'][:] = volumes.astype(num.int32) #For Opteron 64
#Time stepping
stage = outfile.variables['stage']
xmomentum = outfile.variables['xmomentum']
ymomentum = outfile.variables['ymomentum']
if verbose:
log.critical('Converting quantities')
n = len(times)
for j in range(n):
if verbose and j % ((n+10)/10) == 0:
log.critical(' Doing %d of %d' % (j, n))
i = 0
for k in range(number_of_latitudes): # Y direction
for l in range(number_of_longitudes): # X direction
w = zscale * amplitudes[j, k, l] / 100 + mean_stage
stage[j, i] = w
h = w - z[i]
xmomentum[j, i] = uspeed[j, k, l]/100*h
ymomentum[j, i] = vspeed[j, k, l]/100*h
i += 1
#outfile.close()
#FIXME: Refactor using code from file_function.statistics
#Something like print swwstats(swwname)
if verbose:
time_info = times, starttime, mint, maxt
_show_sww_stats(outfile, swwname, geo_ref, time_info)
outfile.close()