in scripts/hd5splitter.py [0:0]
def netcdf_subset(source, dest):
dtime = dest.createDimension(dimname=TIME, size=TIME_SLICE.stop - TIME_SLICE.start)
# dlat = dest.createDimension(dimname=LATITUDE, size=LATITUDE_SLICE.stop - LATITUDE_SLICE.start)
# dlon = dest.createDimension(dimname=LONGITUDE, size=LONGITUDE_SLICE.stop - LONGITUDE_SLICE.start)
drivid = dest.createDimension(dimname='rivid', size=LONGITUDE_SLICE.stop - LONGITUDE_SLICE.start)
dest.setncatts(source.__dict__)
for variable in [v for v in source.variables if v in ['Qout', TIME, LONGITUDE, LATITUDE]]:
variable = source[variable]
if variable.name == TIME:
dvar = dest.createVariable(varname=variable.name, datatype=variable.dtype, dimensions=(dtime.name,))
dest[variable.name].setncatts(variable.__dict__)
dvar[:] = variable[TIME_SLICE]
elif variable.name == LONGITUDE:
dvar = dest.createVariable(varname=variable.name, datatype=variable.dtype, dimensions=(drivid.name,))
dest[variable.name].setncatts(variable.__dict__)
dvar[:] = variable[LONGITUDE_SLICE]
elif variable.name == LATITUDE:
dvar = dest.createVariable(varname=variable.name, datatype=variable.dtype, dimensions=(drivid.name,))
dest[variable.name].setncatts(variable.__dict__)
dvar[:] = variable[LATITUDE_SLICE]
else:
dvar = dest.createVariable(varname=variable.name, datatype=variable.dtype,
dimensions=(dtime.name, drivid.name))
dest[variable.name].setncatts(variable.__dict__)
dvar[:] = variable[TIME_SLICE, LONGITUDE_SLICE]
dest.sync()
dest.close()