def load_file(fname): try: radar = read_nexrad_archive(fname) except Exception as e: print(e, fname) xsect = cross_section_ppi(radar, [274]) return xsect
def readNEXRAD(filename): """ """ print("Reading: %s" % (filename)) dat = read_nexrad_archive(filename, linear_interp=False) print("Done reading!") return dat
async def fetch(cls, site, dt, local=False): if local: url = f"http://127.0.0.1:8000/data/l2raw/{site}{dt.strftime('%Y%m%d_%H%M%S')}_V06" else: url = f"{_url_base}/{site}/{site}_{dt.strftime('%Y%m%d_%H%M')}" _logger.debug( f"Downloading radar volume for {site} at {dt.strftime('%d %b %Y %H%M UTC')}" ) bio = BytesIO() bio.write(await download(url)) bio.seek(0) rfile = read_nexrad_archive(bio) rfile_dealias = dealias_unwrap_phase(rfile) dt = datetime.strptime(rfile.time['units'], 'seconds since %Y-%m-%dT%H:%M:%SZ') sweeps = [] for field in rfile.fields.keys(): for ie, elv in enumerate(rfile.fixed_angle['data']): istart, iend = rfile.get_start_end(ie) azimuths = rfile.get_azimuth(ie) ranges = rfile.range['data'] nyquist = rfile.get_nyquist_vel(ie) if field == 'velocity' and nyquist < 10: continue elif field != 'velocity' and len(sweeps) > 0 and sweeps[ -1].elevation == elv and sweeps[-1].field == field: # Check to see if this is a "duplicate" sweep if nyquist > 10: # Assume this is the short-range sweep and ignore it continue else: # Assume that somehow the short-range sweep got put in the file # first and take it out. I don't think this should ever happen. sweeps.pop() saz = azimuths[0] eaz = azimuths[ -1] if azimuths[-1] > azimuths[0] else azimuths[-1] + 360 dazim = round((eaz - saz) / len(azimuths), 1) dt_sweep = dt + timedelta(seconds=rfile.time['data'][istart]) if field == 'velocity': field_data = rfile_dealias['data'][istart:(iend + 1)] else: field_data = rfile.get_field(ie, field) rs = RadarSweep(site, dt_sweep, field, elv, azimuths[0], float(ranges[0]), dazim, 250, field_data) sweeps.append(rs) return cls(sweeps)
def readNEXRAD(filename): """ """ print("Reading: %s" % (filename)) try: dat = read_nexrad_archive(filename, linear_interp=False) print("Done reading!") except (ValueError, IndexError) as e: print("%s is likely a bad file!" % (filename)) print(str(e)) dat = None return dat
def create_image_file(nexrad_file: Path, image_file: Path): radar: Radar = read_nexrad_archive(str(nexrad_file)) display: RadarDisplay = RadarDisplay(radar) fig = plt.figure(figsize=(12, 10)) ax = fig.add_subplot(111) display.plot('reflectivity', 0, title='NEXRAD Reflectivity', vmin=-32, vmax=64, colorbar_label='', ax=ax) #display.plot_range_ring(radar.range['data'][-1]/1000., ax=ax) display.set_limits(xlim=(-500, 500), ylim=(-500, 500), ax=ax) plt.savefig(str(image_file), bbox_inches='tight')