Zero-gravity flights
====================
`Zero-gravity flights `_ are regularly operated on an
Airbus A310 in order to conduct many kind of scientific experiments in zero
gravity.
One of such trajectories is present in the :ref:`sample flights ` of the library: we can observe the characteristic profile
in altitude and indicated airspeed.
.. jupyter-execute::
:code-below:
import altair as alt
from traffic.data.samples import zero_gravity
focus = zero_gravity.phases(twindow=45).skip("45 min").first("15 min")
base = focus.chart().encode(
alt.X(
"utchoursminutesseconds(timestamp)",
axis=alt.Axis(title=None, format="%H:%M"),
)
)
chart = (
alt.vconcat(
alt.layer(
base.encode(
y=alt.Y(
"altitude",
scale=alt.Scale(domain=(15000, 30000)),
axis=alt.Axis(
title="altitude (in ft)",
labelColor="#4c78a8",
titleColor="#4c78a8",
),
),
).mark_line(color="#4c78a8"),
base.encode(
y=alt.Y(
"IAS",
scale=alt.Scale(domain=(100, 350)),
axis=alt.Axis(
title="indicated airspeed (in kts)",
labelColor="#f58518",
titleColor="#f58518",
titleAnchor="end",
),
),
).mark_line(color="#f58518"),
)
.resolve_scale(y="independent")
.properties(width=500, height=200),
base.encode(
y=alt.Y("phase", title="Flight phase"),
color=alt.Color(
"phase",
legend=None,
scale=alt.Scale(
domain=["LEVEL", "CLIMB", "DESCENT"],
range=["#4c78a8", "#f58518", "#54a24b"],
),
),
)
.mark_point()
.properties(width=500, height=75),
)
.configure_axis(
labelFontSize=14,
titleFontSize=16,
titleAngle=0,
titleY=-10,
titleAnchor="start",
)
)
chart
.. jupyter-execute::
:hide-code:
:hide-output:
# chart.save("_static/zero_gravity-thumb.png")
.. jupyter-execute::
:code-below:
from ipyleaflet import Map
m = Map(zoom=8, center=(49, -2))
m.add(zero_gravity, color="#79706e", weight=2)
for segment in focus.query('phase=="CLIMB"').split("30s"):
m.add(segment, color="#f58518", weight=4)
for segment in focus.query('phase=="DESCENT"').split("30s"):
m.add(segment, color="#54a24b", weight=4)
for segment in focus.query('phase=="LEVEL"').split("30s"):
m.add(segment, color="#4c78a8", weight=4)
m