Open iancornejo opened 1 year ago
I appreciate all the built in file readers, but for instances where I apply qc to raw parsivel data and then try to read it in, I need to convert to something akin to ARM's formatting:
def read_precip(nc): try: nc_temp.close() os.remove("temp.nc") except: pass nc_temp = Dataset("temp.nc","w") time = nc_temp.createDimension("time",1440) particle_size = nc_temp.createDimension("particle_size",32) raw_fall_velocity = nc_temp.createDimension("raw_fall_velocity",32) time_ = nc_temp.createVariable("time","f4",("time")); time_.units = "seconds since 1970-01-01 00:00:00 0:00" time_[:] = date2num(num2date(nc.variables["time"][:],nc.variables["time"].units),units=time_.units) Nd_ = nc_temp.createVariable("number_density_drops","f4",("time","particle_size")); Nd_[:] = np.nansum(nc.variables["num_conc_rain"][:],axis = 1) vel_ = nc_temp.createVariable("fall_velocity_calculated","f4",("particle_size")); vel_[:] = v_gk(nc.variables["particle_size"][:])/100 rr_ = nc_temp.createVariable("precip_rate","f4",("time")); rr_[:] = nc.variables["rain_rate_qc"][:] spec_ = nc_temp.createVariable("raw_spectrum","f4",("time","particle_size","raw_fall_velocity")) spec_[:] = np.moveaxis(nc.variables["qc_spectrum"][:], 1, 2) raw_velo_ = nc_temp.createVariable("raw_fall_velocity","f4",("raw_fall_velocity")) raw_velo_[:] = nc.variables["raw_fall_velocity"][:] dia_ = nc_temp.createVariable("particle_size","f4",("particle_size")) dia_[:] = nc.variables["particle_size"][:] width_ = nc_temp.createVariable("class_size_width","f4",("particle_size")) width_[:] = nc.variables["particle_size_bin_width"][:] try: return(pydsd.read_parsivel_arm_netcdf("temp.nc")) finally: nc_temp.close() os.remove("temp.nc")
This isn't a huge problem, but being able to just build the dsd object with fields from non-supported file types would be great.
I appreciate all the built in file readers, but for instances where I apply qc to raw parsivel data and then try to read it in, I need to convert to something akin to ARM's formatting:
This isn't a huge problem, but being able to just build the dsd object with fields from non-supported file types would be great.