def get_geocoords(infile, lat='lat', lon='lon'): df = EcoFOCI_netCDF(infile) nchandle = df._getnchandle_() data = {} for j, v in enumerate([lat, lon]): data[v] = nchandle.variables[v][:] df.close() return (data)
def from_netcdf_1dsplice(infile, height_ind, lat_ind, lon_ind): """ Uses ncreadfile_dic which returns a dictionary of all data from netcdf""" ###nc readin/out df = EcoFOCI_netCDF(infile) nchandle = df._getnchandle_() params = df.get_vars() #gets all of them print "Parameters available: " #print params ncdata = ncreadfile_dic_slice(nchandle, params, height_ind=height_ind, lat_ind=lat_ind, lon_ind=lon_ind) df.close() return ncdata
def load(self): self.data = {} for ind, ncfile in enumerate(self.files_path): print("Working on {0}").format(ncfile) df = EcoFOCI_netCDF(ncfile) df.get_global_atts() vars_dic = df.get_vars() if self.plot_var in vars_dic: ncdata = df.ncreadfile_dic() df.close() ncdata[self.plot_var][np.where( ncdata[self.plot_var] > 1e34)] = np.nan else: continue self.ncdata = ncdata #only save last file self.data[self.pointer_dic['nominal_depth'][ind]] = { 'data': ncdata[self.plot_var][:, 0, 0, 0], 'time': EPIC2Datetime(ncdata['time'], ncdata['time2']) }
parser.add_argument('-m360', '--m360', action="store_true", help='make range 0-360') args = parser.parse_args() ###nc readin ncfile = args.sourcefile df = EcoFOCI_netCDF(ncfile) global_atts = df.get_global_atts() vars_dic = df.get_vars() data = df.ncreadfile_dic() if 'lon' in df.variables.keys(): if args.m360: df.variables['lon'][:] = -1. * df.variables['lon'][:] + 360 else: df.variables['lon'][:] = -1. * df.variables['lon'][:] vars_dic['lon'].units = 'degree_east' elif 'longitude' in df.variables.keys(): if args.m360: df.variables['longitude'][:] = -1. * df.variables['longitude'][:] + 360 else: df.variables['longitude'][:] = -1. * df.variables['longitude'][:] vars_dic['longitude'].units = 'degree_east' else: print("Longitude variable not found") df.close()
### cycle through all files, retrieve data and plot print files_path writer = pd.ExcelWriter('data/' + MooringID + '_' + plot_var + '.xlsx', engine='xlsxwriter', datetime_format='YYYY-MM-DD HH:MM:SS') label_thin = [] for ind, ncfile in enumerate(files_path): print "Working on {activefile}".format(activefile=ncfile) #open/read netcdf files df = EcoFOCI_netCDF(ncfile) global_atts = df.get_global_atts() vars_dic = df.get_vars() ncdata = df.ncreadfile_dic() df.close() nctime = EPIC2Datetime(ncdata['time'], ncdata['time2']) #find and replace missing values with nans so they don't plot try: ncdata[plot_var][np.where(ncdata[plot_var] > 1e30)] = np.nan try: label_thin = label_thin + [label[ind]] except TypeError: label_thin = label_thin + [''] except KeyError: pass try:
help='fixed temperature scale (min max)') parser.add_argument( '-timebounds', '--timebounds', nargs=3, type=str, help='fixed timebounds start: yyyy-mm-dd end: yyyy-mm-dd "month"') args = parser.parse_args() print "Working on file %s " % args.DataPath nc = EcoFOCI_netCDF(args.DataPath) ncdata = nc.ncreadfile_dic() g_atts = nc.get_global_atts() nc.close() cast_time = EPIC2Datetime(ncdata['time'], ncdata['time2']) doy = np.array([x.timetuple().tm_yday for x in cast_time]) p1 = TimeseriesPorpertyPropertyPlot() try: t1 = p1.add_title(mooringid=global_atts['MOORING'], lat=ncdata['lat'][0], lon=ncdata['lon'][0], depth=ncdata['depth'][0], instrument=args.instname) except KeyError: t1 = p1.add_title(mooringid=global_atts['MOORING'], lat=ncdata['latitude'][0], lon=ncdata['longitude'][0],