Skip to content

Instantly share code, notes, and snippets.

@xoryouyou
Created January 19, 2024 12:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xoryouyou/34ea0584f94152613855a0ad897796d3 to your computer and use it in GitHub Desktop.
Save xoryouyou/34ea0584f94152613855a0ad897796d3 to your computer and use it in GitHub Desktop.
import plotly.express as px
import pandas as pd
import json
def predict_expected_position(lat, lon, alt, ground_speed, heading, climb):
# TODO:
pass
# example data structure
# data = {
# "lat":[50.0,51.0,...],
# "lon":[13.0,14.0,...],
# "color":["00ff00","00ff00",...]
# }
def parse_json_to_dataframe(filepath):
f = open(filepath,"r")
raw = json.load(f)
f.close()
data = {
"lat":[],
"lon":[],
"color": []
}
for entry in raw["trace"]:
# documentation at https://www.adsbexchange.com/version-2-api-wip/
lat,lon,alt,ground_speed,heading,climb = entry[1:7]
predicted_point = predict_expected_position(lat, lon, alt, ground_speed, heading, climb)
# TODO: calculate uncertainty
data["lat"].append(lat)
data["lon"].append(lon),
data["color"].append("FF00FF"),
return pd.DataFrame(data=data)
# source: https://samples.adsbexchange.com/traces/2023/10/01/ff/trace_full_a94bff.json
data = parse_json_to_dataframe("../data/trace_full_a94bff.json")
fig = px.line_mapbox(data, lat="lat", lon="lon", color="color", zoom=3, height=1000)
fig.update_layout(mapbox_style="open-street-map", mapbox_zoom=4, mapbox_center_lat = 41,
margin={"r":0,"t":0,"l":0,"b":0})
fig.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment