#!/mbari/LRAUV/oavenv/bin/python from __future__ import print_function from netCDF4 import Dataset import sys def getgrp(g,p): import posixpath grps = p.split("/") for gname in grps: if gname == "": continue g = g.groups[gname] return g if __name__ == '__main__': import getopt, os usage = """ Print summary information about a netCDF file. usage: %s [-h] [-g grp or --group=grp] [-v var or --variable=var] [-d dim or --dimension=dim] filename -h -- Print usage message. -g or --group= -- Print info for this group (default is root group). Nested groups specified using posix paths ("group1/group2/group3"). -v or --variable= -- Print info for this variable. -d or --dimension= -- Print info for this dimension. netcdf filename must be last argument. \n""" % os.path.basename(sys.argv[0]) try: opts, pargs = getopt.getopt(sys.argv[1:],'hv:g:d:', ['group=', 'variable=', 'dimension=']) except: (type, value, traceback) = sys.exc_info() sys.stdout.write("Error parsing the options. The error was: %s\n" % value) sys.stderr.write(usage) sys.exit(0) # Get the options group = None; var = None; dim=None for option in opts: if option[0] == '-h': sys.stderr.write(usage) sys.exit(0) elif option[0] == '--group' or option[0] == '-g': group = option[1] elif option[0] == '--variable' or option[0] == '-v': var = option[1] elif option[0] == '--dimension' or option[0] == '-d': dim = option[1] else: sys.stdout.write("%s: Unrecognized option\n" % option[0]) sys.stderr.write(usage) sys.exit(0) # filename passed as last argumenbt filename = pargs[-1] f = Dataset(filename) if group is None: if var is None and dim is None: print(f) else: if var is not None: print(f.variables[var]) if dim is not None: print(f.dimensions[dim]) else: if var is None and dim is None: print(getgrp(f,group)) else: g = getgrp(f,group) if var is not None: print(g.variables[var]) if dim is not None: print(g.dimensions[var]) f.close()