forked from 3rdparty/wrf-python
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.4 KiB
40 lines
1.4 KiB
|
|
from netCDF4 import Dataset |
|
|
|
VARS_TO_KEEP = ("Times", "XLAT", "XLONG", "XLAT_U", "XLAT_V", "XLONG_U", |
|
"XLONG_V", "U", "V", "W", "PH", "PHB", "T", "P", "PB", "Q2", |
|
"T2", "PSFC", "U10", "V10", "XTIME", "QVAPOR", "QCLOUD", |
|
"QGRAUP", "QRAIN", "QSNOW", "QICE", "MAPFAC_M", "MAPFAC_U", |
|
"MAPFAC_V", "F", "HGT", "RAINC", "RAINSH", "RAINNC", |
|
"I_RAINC", "I_RAINNC") |
|
|
|
INPUT_FILE = "wrfout_d02_2005-08-28_00:00:00" |
|
OUTPUT_FILE = "wrfout_problem_file" |
|
DESIRED_TIME_INDEX = 0 |
|
|
|
with Dataset(INPUT_FILE) as infile, Dataset(OUTPUT_FILE, mode="w") as outfile: |
|
# Copy the global attributes |
|
outfile.setncatts(infile.__dict__) |
|
|
|
# Copy Dimensions |
|
for name, dimension in infile.dimensions.items(): |
|
if name != "Time": |
|
dimsize = len(dimension) |
|
outfile.createDimension(name, dimsize) |
|
else: |
|
outfile.createDimension(name, 1) |
|
|
|
# Copy Variables |
|
for name, variable in infile.variables.iteritems(): |
|
if name not in VARS_TO_KEEP: |
|
continue |
|
|
|
outvar = outfile.createVariable(name, variable.datatype, |
|
variable.dimensions, zlib=True) |
|
|
|
if len(variable.dimensions) > 1: |
|
outvar[:] = variable[DESIRED_TIME_INDEX, :] |
|
else: |
|
outvar[:] = variable[DESIRED_TIME_INDEX] |
|
|
|
outvar.setncatts(variable.__dict__)
|
|
|