mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2026-04-18 04:41:26 +00:00
Remove build and data folders, move tests and utils to the base of the source tree
This commit is contained in:
99
utils/python/gps_l1_ca_telemetry_plot_sample.py
Normal file
99
utils/python/gps_l1_ca_telemetry_plot_sample.py
Normal file
@@ -0,0 +1,99 @@
|
||||
"""
|
||||
gps_l1_ca_telemetry_plot_sample.py
|
||||
|
||||
Reads GNSS-SDR Tracking dump binary file using the provided function and
|
||||
plots some internal variables
|
||||
|
||||
Irene Pérez Riega, 2023. iperrie@inta.es
|
||||
|
||||
Modifiable in the file:
|
||||
sampling_freq - Sampling frequency [Hz]
|
||||
channels - Number of channels to check if they exist
|
||||
doppler_opt - = 1 -> Plot // = 0 -> No plot
|
||||
path - Path to folder which contains raw file
|
||||
fig_path - Path where plots will be save
|
||||
chn_num_a / b - Channel which will be plotted
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
||||
This file is part of GNSS-SDR.
|
||||
|
||||
Copyright (C) 2022 (see AUTHORS file for a list of contributors)
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
"""
|
||||
|
||||
import os
|
||||
import matplotlib.pyplot as plt
|
||||
from lib.gps_l1_ca_read_telemetry_dump import gps_l1_ca_read_telemetry_dump
|
||||
|
||||
GNSS_telemetry = []
|
||||
|
||||
# ---------- CHANGE HERE:
|
||||
sampling_freq = 2000000
|
||||
channels = list(range(18))
|
||||
path = '/home/labnav/Desktop/TEST_IRENE/'
|
||||
fig_path = '/home/labnav/Desktop/TEST_IRENE/PLOTS/Telemetry'
|
||||
|
||||
if not os.path.exists(fig_path):
|
||||
os.makedirs(fig_path)
|
||||
|
||||
i = 0
|
||||
for N in channels:
|
||||
try:
|
||||
telemetry_log_path = os.path.join(path, f'telemetry{N}.dat')
|
||||
telemetry_data = gps_l1_ca_read_telemetry_dump(telemetry_log_path)
|
||||
GNSS_telemetry.append(telemetry_data)
|
||||
i += 1
|
||||
except:
|
||||
pass
|
||||
|
||||
# ---------- CHANGE HERE:
|
||||
chn_num_a = 0
|
||||
chn_num_b = 5
|
||||
|
||||
# Plotting values
|
||||
if chn_num_a in range(i) and chn_num_b in range(i):
|
||||
|
||||
# First Plot:
|
||||
plt.figure()
|
||||
plt.gcf().canvas.manager.set_window_title(f'Telem_Current_Simbol_TOW_'
|
||||
f'{chn_num_a}_{chn_num_b}.png')
|
||||
|
||||
plt.plot(GNSS_telemetry[chn_num_a]['tracking_sample_counter'],
|
||||
[x / 1000 for x in GNSS_telemetry[chn_num_a]
|
||||
['tow_current_symbol_ms']], 'b')
|
||||
plt.plot(GNSS_telemetry[chn_num_b]['tracking_sample_counter'],
|
||||
GNSS_telemetry[chn_num_b]['tow_current_symbol_ms'], 'r')
|
||||
|
||||
plt.grid(True)
|
||||
plt.xlabel('TRK Sampling Counter')
|
||||
plt.ylabel('Current Symbol TOW')
|
||||
plt.legend([f'CHN-{chn_num_a-1}', f'CHN-{chn_num_b-1}'])
|
||||
plt.tight_layout()
|
||||
|
||||
plt.savefig(os.path.join(fig_path, f'Telem_Current_Simbol_TOW_{chn_num_a}'
|
||||
f'_{chn_num_b}.png'))
|
||||
plt.show()
|
||||
|
||||
# Second Plot:
|
||||
plt.figure()
|
||||
plt.gcf().canvas.manager.set_window_title(f'Telem_TRK_Sampling_Counter_'
|
||||
f'{chn_num_a}_{chn_num_b}.png')
|
||||
|
||||
plt.plot(GNSS_telemetry[chn_num_a]['tracking_sample_counter'],
|
||||
GNSS_telemetry[chn_num_a]['tow'], 'b')
|
||||
plt.plot(GNSS_telemetry[chn_num_b]['tracking_sample_counter'],
|
||||
GNSS_telemetry[chn_num_b]['tow'], 'r')
|
||||
|
||||
plt.grid(True)
|
||||
plt.xlabel('TRK Sampling Counter')
|
||||
plt.ylabel('Decoded Nav TOW')
|
||||
plt.legend([f'CHN-{chn_num_a-1}', f'CHN-{chn_num_b-1}'])
|
||||
plt.tight_layout()
|
||||
|
||||
plt.savefig(os.path.join(fig_path, f'Telem_TRK_Sampling_Counter_'
|
||||
f'{chn_num_a}_{chn_num_b}.png'))
|
||||
plt.show()
|
||||
Reference in New Issue
Block a user