Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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()
Пример #4
0
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()