Added median rsrp and rsrq functions, removed unused functions
This commit is contained in:
parent
1fc33eb6f4
commit
ff16bd3a20
219
plots.py
219
plots.py
|
@ -62,6 +62,65 @@ def plot_rsrp(filename):
|
|||
plt.show()
|
||||
|
||||
|
||||
def plot_median_rsrp(filename):
|
||||
# Load the JSON file
|
||||
with open(filename, "r") as file:
|
||||
data = json.load(file)
|
||||
|
||||
# Extract distance and RSRP values (convert RSRP values to integers)
|
||||
distances = []
|
||||
rsrps = []
|
||||
|
||||
for entry in data:
|
||||
try:
|
||||
int(float(entry["distance"]))
|
||||
antennas = []
|
||||
antennas.append(
|
||||
-169
|
||||
if int(entry["RSRP PRX"].strip()) == -32768
|
||||
else int(entry.get("RSRP PRX", -169))
|
||||
)
|
||||
antennas.append(
|
||||
-169
|
||||
if int(entry["RSRP DRX"].strip()) == -32768
|
||||
else int(entry.get("RSRP DRX", -169))
|
||||
)
|
||||
antennas.append(
|
||||
-169
|
||||
if int(entry["RSRP RX2"].strip()) == -32768
|
||||
else int(entry.get("RSRP RX2", -169))
|
||||
)
|
||||
antennas.append(
|
||||
-169
|
||||
if int(entry["RSRP RX3"].strip()) == -32768
|
||||
else int(entry.get("RSRP RX3", -169))
|
||||
)
|
||||
antennas.remove(max(antennas))
|
||||
antennas.remove(min(antennas))
|
||||
if min(antennas) == -169 and max(antennas) != -169:
|
||||
avg_rsrp = max(antennas)
|
||||
else:
|
||||
avg_rsrp = sum(antennas)/len(antennas)
|
||||
rsrps.append(avg_rsrp)
|
||||
distances.append(int(float(entry["distance"])))
|
||||
except (ValueError, KeyError):
|
||||
continue
|
||||
|
||||
# Plot the data
|
||||
plt.figure(figsize=(10, 6))
|
||||
plt.plot(distances, rsrps, label="RSRP PRX", marker="o", color="blue",)
|
||||
|
||||
plt.title("RSRP vs Distance")
|
||||
plt.xlabel("Distance (m)")
|
||||
plt.ylabel("RSRP (dBm)")
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.tight_layout()
|
||||
|
||||
# Show the plot
|
||||
plt.show()
|
||||
|
||||
|
||||
def plot_rsrq(filename):
|
||||
# Load the JSON file
|
||||
with open(filename, "r") as file:
|
||||
|
@ -119,107 +178,57 @@ def plot_rsrq(filename):
|
|||
plt.show()
|
||||
|
||||
|
||||
def plot_iperf(filename):
|
||||
def plot_median_rsrq(filename):
|
||||
# Load the JSON file
|
||||
with open(filename, "r") as file:
|
||||
data = json.load(file)
|
||||
|
||||
# Extract distance and RSRQ values (convert RSRQ values to integers)
|
||||
distances = []
|
||||
sender = []
|
||||
receiver = []
|
||||
rsrqs = []
|
||||
|
||||
for entry in data:
|
||||
try:
|
||||
message = entry["iperf_full"]
|
||||
bitrates = re.findall(r"(\d+\.\d+) Mbits/sec", message)
|
||||
|
||||
sender.append(float(bitrates[-2]))
|
||||
receiver.append(float(bitrates[-1]))
|
||||
distances.append(entry["start_distance"])
|
||||
antennas = []
|
||||
int(float(entry["distance"]))
|
||||
antennas.append(
|
||||
-20
|
||||
if int(entry["RSRQ PRX"].strip()) == -32768
|
||||
else int(entry.get("RSRQ PRX", -20))
|
||||
)
|
||||
antennas.append(
|
||||
-20
|
||||
if int(entry["RSRQ DRX"].strip()) == -32768
|
||||
else int(entry.get("RSRQ DRX", -20))
|
||||
)
|
||||
antennas.append(
|
||||
-20
|
||||
if int(entry["RSRQ RX2"].strip()) == -32768
|
||||
else int(entry.get("RSRQ RX2", -20))
|
||||
)
|
||||
antennas.append(
|
||||
-20
|
||||
if int(entry["RSRQ RX3"].strip()) == -32768
|
||||
else int(entry.get("RSRQ RX3", -20))
|
||||
)
|
||||
antennas.remove(max(antennas))
|
||||
antennas.remove(min(antennas))
|
||||
if min(antennas) == -169 and max(antennas) != -20:
|
||||
avg_rsrq = max(antennas)
|
||||
else:
|
||||
avg_rsrq = sum(antennas)/len(antennas)
|
||||
rsrqs.append(avg_rsrq)
|
||||
distances.append(int(float(entry["distance"])))
|
||||
except (ValueError, KeyError):
|
||||
continue
|
||||
|
||||
# Plot the data
|
||||
plt.figure(figsize=(10, 6))
|
||||
plt.plot(distances, sender, label="Avg Sender Bitrate", marker="o")
|
||||
plt.plot(distances, receiver, label="Avg Receiver Bitrate", marker="s")
|
||||
plt.plot(distances, rsrqs, label="RSRQ PRX", marker="o", color="blue")
|
||||
|
||||
plt.title("IPERF vs Distance")
|
||||
plt.title("RSRQ vs Distance")
|
||||
plt.xlabel("Distance (m)")
|
||||
plt.ylabel("Bitrate (Mbits/s)")
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.tight_layout()
|
||||
|
||||
# Show the plot
|
||||
plt.show()
|
||||
|
||||
|
||||
def plot_bytes(filename):
|
||||
# Load the JSON file
|
||||
with open(filename, "r") as file:
|
||||
data = json.load(file)
|
||||
|
||||
distances = []
|
||||
uplink = []
|
||||
downlink = []
|
||||
|
||||
for entry in data:
|
||||
try:
|
||||
if (
|
||||
int(entry["uplink (bytes/s)"].strip()) < 1000000
|
||||
and int(entry["downlink (bytes/s)"].strip()) < 1000000
|
||||
):
|
||||
distances.append(entry["distance"])
|
||||
uplink.append(int(entry["uplink (bytes/s)"].strip()))
|
||||
downlink.append(int(entry["downlink (bytes/s)"].strip()))
|
||||
except (ValueError, KeyError):
|
||||
continue
|
||||
|
||||
# Plot the data
|
||||
plt.figure(figsize=(10, 6))
|
||||
plt.plot(distances, downlink, label="Downlink Bitrate", marker="o")
|
||||
plt.plot(distances, uplink, label="Uplink Bitrate", marker="s")
|
||||
|
||||
plt.title("Bitrate vs Distance")
|
||||
plt.xlabel("Distance (m)")
|
||||
plt.ylabel("Bitrate (bytes/s)")
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.tight_layout()
|
||||
|
||||
# Show the plot
|
||||
plt.show()
|
||||
|
||||
|
||||
def plot_manual():
|
||||
distances = [0, 100, 200, 300, 400, 500, 600, 700, 800]
|
||||
rsrps = [-56, -82, -90, -93, -100, -105, -105, -116, -150]
|
||||
sender = [0, 6.06, 6.95, 6.37, 6.96, 8.04, 7.30, 0, 0]
|
||||
receiver = [0, 5.20, 6.10, 5.24, 6.08, 6.84, 6.37, 0, 0]
|
||||
|
||||
# Plot the RSRP data
|
||||
plt.figure(figsize=(10, 6))
|
||||
plt.plot(distances, rsrps, label="RSRP", marker="o")
|
||||
|
||||
plt.title("RSRP vs Distance")
|
||||
plt.xlabel("Distance (m)")
|
||||
plt.ylabel("RSRP (dBm)")
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.tight_layout()
|
||||
|
||||
# Show the plot
|
||||
plt.show()
|
||||
|
||||
# Plot the iperf data
|
||||
plt.figure(figsize=(10, 6))
|
||||
plt.plot(distances, sender, label="Avg Sender Bitrate", marker="o")
|
||||
plt.plot(distances, receiver, label="Avg Receiver Bitrate", marker="s")
|
||||
|
||||
plt.title("IPERF vs Distance")
|
||||
plt.xlabel("Distance (m)")
|
||||
plt.ylabel("Bitrate (Mbits/s)")
|
||||
plt.ylabel("RSRQ (dBm)")
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.tight_layout()
|
||||
|
@ -241,35 +250,37 @@ def plot_double_iperf(filename):
|
|||
reverse_receiver = []
|
||||
|
||||
for entry in data:
|
||||
if "iperf_full" in entry:
|
||||
if "iperf_full" in entry and entry["start_distance"] != "Unknown":
|
||||
if "Reverse mode" in entry["iperf_full"]:
|
||||
try:
|
||||
reverse_sender.append(float(entry["sender_bitrate"]))
|
||||
reverse_receiver.append(float(entry["receiver_bitrate"]))
|
||||
reverse_distances.append(entry["start_distance"])
|
||||
reverse_distances.append(int(float(entry["start_distance"])))
|
||||
except:
|
||||
message = entry["iperf_full"]
|
||||
bitrates = re.findall(r"(\d+\.\d+) Mbits/sec", message)
|
||||
|
||||
reverse_sender.append(float(bitrates[-2]))
|
||||
reverse_receiver.append(float(bitrates[-1]))
|
||||
reverse_distances.append(entry["start_distance"])
|
||||
reverse_distances.append(int(float(entry["start_distance"])))
|
||||
else:
|
||||
try:
|
||||
sender.append(float(entry["sender_bitrate"]))
|
||||
receiver.append(float(entry["receiver_bitrate"]))
|
||||
distances.append(entry["start_distance"])
|
||||
distances.append(int(float(entry["start_distance"])))
|
||||
except:
|
||||
message = entry["iperf_full"]
|
||||
bitrates = re.findall(r"(\d+\.\d+) Mbits/sec", message)
|
||||
|
||||
sender.append(float(bitrates[-2]))
|
||||
receiver.append(float(bitrates[-1]))
|
||||
distances.append(entry["start_distance"])
|
||||
distances.append(int(float(entry["start_distance"])))
|
||||
|
||||
# Plot the data
|
||||
plt.figure(figsize=(10, 6))
|
||||
plt.plot(distances, sender, label="Avg Uplink Sender Bitrate", marker="o", color="red")
|
||||
plt.plot(
|
||||
distances, sender, label="Avg Uplink Sender Bitrate", marker="o", color="red"
|
||||
)
|
||||
plt.plot(
|
||||
distances,
|
||||
receiver,
|
||||
|
@ -304,8 +315,26 @@ def plot_double_iperf(filename):
|
|||
|
||||
|
||||
if __name__ == "__main__":
|
||||
filename = '/home/madrigal/repos/range-testing/data/boat_relay_sept_17/test_1758127491_copy.json'
|
||||
filename = "/home/madrigal/repos/range-testing/data/boat_relay_sept_18/test_1758215714_copy.json"
|
||||
|
||||
# plot_double_iperf(filename=filename)
|
||||
plot_rsrp(filename=filename)
|
||||
plot_rsrq(filename=filename)
|
||||
# plot_rsrp(filename=filename)
|
||||
# plot_rsrq(filename=filename)
|
||||
plot_median_rsrp(filename=filename)
|
||||
plot_median_rsrq(filename=filename)
|
||||
|
||||
filename = "/home/madrigal/repos/range-testing/data/boat_relay_sept_18/test_1758217711_copy.json"
|
||||
|
||||
# plot_double_iperf(filename=filename)
|
||||
# plot_rsrp(filename=filename)
|
||||
# plot_rsrq(filename=filename)
|
||||
plot_median_rsrp(filename=filename)
|
||||
plot_median_rsrq(filename=filename)
|
||||
|
||||
filename = "/home/madrigal/repos/range-testing/data/boat_relay_sept_18/test_1758219350_copy.json"
|
||||
|
||||
# plot_double_iperf(filename=filename)
|
||||
# plot_rsrp(filename=filename)
|
||||
# plot_rsrq(filename=filename)
|
||||
plot_median_rsrp(filename=filename)
|
||||
plot_median_rsrq(filename=filename)
|
||||
|
|
Loading…
Reference in New Issue
Block a user