def executeSearchStations(config, stations, scanlevel, start): filename = calcFilename(scanlevel, start) # ignore if rtl_power file not exists csv_filename = "%s.csv" % filename exists = os.path.isfile(csv_filename) if not exists: showVerbose( config, "%s %s not exist%s" % ( tcolor.RED, csv_filename, tcolor.DEFAULT, )) return # Ignore if call summary not exist summary_filename = "%s.summary" % filename exists = os.path.isfile(summary_filename) if not exists: showVerbose( config, "%s %s not exist%s" % ( tcolor.RED, summary_filename, tcolor.DEFAULT, )) return summaries = loadJSON(summary_filename) print "%sFind stations '%s' : %shz-%shz" % ( tcolor.DEFAULT, scanlevel['name'], commons.float2Hz(start), commons.float2Hz(start + scanlevel['windows']), ) smooth_max = commons.smooth(np.array(summaries['max']['signal']), 10, 'flat') limitmin = summaries['min']['peak']['min']['mean'] - summaries['min'][ 'peak']['min']['std'] limitmax = summaries['max']['mean'] + summaries['max']['std'] searchStation(scanlevel, stations, summaries, smooth_max, limitmin, limitmax)
def executeSearchStations(config, stations, scanlevel, start): filename = calcFilename(scanlevel, start) # ignore if rtl_power file not exists csv_filename = "%s.csv" % filename exists = os.path.isfile(csv_filename) if not exists: showVerbose( config, "%s %s not exist%s" % ( tcolor.RED, csv_filename, tcolor.DEFAULT, ) ) return # Ignore if call summary not exist summary_filename = "%s.summary" % filename exists = os.path.isfile(summary_filename) if not exists: showVerbose( config, "%s %s not exist%s" % ( tcolor.RED, summary_filename, tcolor.DEFAULT, ) ) return summaries = loadJSON(summary_filename) print "%sFind stations '%s' : %shz-%shz" % ( tcolor.DEFAULT, scanlevel['name'], commons.float2Hz(start), commons.float2Hz(start + scanlevel['windows']), ) smooth_max = commons.smooth(np.array(summaries['max']['signal']),10, 'flat') limitmin = summaries['min']['peak']['min']['mean'] - summaries['min']['peak']['min']['std'] limitmax = summaries['max']['mean'] + summaries['max']['std'] searchStation(scanlevel, stations, summaries, smooth_max, limitmin, limitmax)
def executeSpectre(cmdargs, config, scanlevel, start): for gain in scanlevel['gains']: filename = calcFilename(scanlevel, start, gain) csv_filename = "%s.csv" % filename exists = os.path.isfile(csv_filename) if not exists: showVerbose( config, "%s %s not exist%s" % ( tcolor.RED, csv_filename, tcolor.DEFAULT, )) return # Ignore if summary file not exists summary_filename = "%s.summary" % filename exists = os.path.isfile(summary_filename) if not exists: showVerbose( config, "%s %s not exist%s" % ( tcolor.RED, summary_filename, tcolor.DEFAULT, )) return summaries = loadJSON(summary_filename) # Check if scan exist img_filename = "%s_spectre.png" % filename exists = os.path.isfile(img_filename) if exists: showVerbose( config, "%sSpectre '%s' : %shz-%shz%s" % (tcolor.GREEN, scanlevel['name'], commons.float2Hz(start), commons.float2Hz(start + scanlevel['windows']), tcolor.DEFAULT)) return print "%sSpectre '%s' : %shz-%shz" % ( tcolor.DEFAULT, scanlevel['name'], commons.float2Hz(start), commons.float2Hz(start + scanlevel['windows']), ) plt.figure(figsize=(15, 10)) plt.grid() freqs = np.linspace(summaries['freq']['start'], summaries['freq']['end'], num=summaries['samples']['nbsamplescolumn']) limitmin = summaries['min']['peak']['min']['mean'] - summaries['min'][ 'peak']['min']['std'] limitmax = summaries['max']['mean'] + summaries['max']['std'] limits = np.linspace(limitmin, limitmax, 5) # Max for limit in limits: plt.axhline(limit, color='blue') smooth_max = commons.smooth(np.array(summaries['max']['signal']), 10, 'flat') plt.plot(freqs, smooth_max[:len(freqs)], color='red') # Set X Limit locs, labels = plt.xticks() for idx in range(len(labels)): labels[idx] = commons.float2Hz(locs[idx]) plt.xticks(locs, labels) plt.xlabel('Freq in Hz') # Set Y Limit # plt.ylim(summary['groundsignal'], summary['maxsignal']) plt.ylabel('Power density in dB') plt.savefig(img_filename) plt.close()
def executeSpectre(cmdargs, config, scanlevel, start): for gain in scanlevel['gains']: filename = calcFilename(scanlevel, start, gain) csv_filename = "%s.csv" % filename exists = os.path.isfile(csv_filename) if not exists: showVerbose( config, "%s %s not exist%s" % ( tcolor.RED, csv_filename, tcolor.DEFAULT, ) ) return # Ignore if summary file not exists summary_filename = "%s.summary" % filename exists = os.path.isfile(summary_filename) if not exists: showVerbose( config, "%s %s not exist%s" % ( tcolor.RED, summary_filename, tcolor.DEFAULT, ) ) return summaries = loadJSON(summary_filename) # Check if scan exist img_filename = "%s_spectre.png" % filename exists = os.path.isfile(img_filename) if exists: showVerbose( config, "%sSpectre '%s' : %shz-%shz%s" % ( tcolor.GREEN, scanlevel['name'], commons.float2Hz(start), commons.float2Hz(start + scanlevel['windows']), tcolor.DEFAULT ) ) return print "%sSpectre '%s' : %shz-%shz" % ( tcolor.DEFAULT, scanlevel['name'], commons.float2Hz(start), commons.float2Hz(start + scanlevel['windows']), ) plt.figure(figsize=(15,10)) plt.grid() freqs = np.linspace(summaries['freq']['start'], summaries['freq']['end'], num=summaries['samples']['nbsamplescolumn']) limitmin = summaries['min']['peak']['min']['mean'] - summaries['min']['peak']['min']['std'] limitmax = summaries['max']['mean'] + summaries['max']['std'] limits = np.linspace(limitmin, limitmax, 5) # Max for limit in limits: plt.axhline(limit, color='blue') smooth_max = commons.smooth(np.array(summaries['max']['signal']),10, 'flat') plt.plot(freqs, smooth_max[:len(freqs)],color='red') # Set X Limit locs, labels = plt.xticks() for idx in range(len(labels)): labels[idx] = commons.float2Hz(locs[idx]) plt.xticks(locs, labels) plt.xlabel('Freq in Hz') # Set Y Limit # plt.ylim(summary['groundsignal'], summary['maxsignal']) plt.ylabel('Power density in dB') plt.savefig(img_filename) plt.close()