An open-source, iOS app for viewing sounding data and forecasts from NOAA
If weather is the Matrix, reading a Skew-T Log-P chart is reading the green text. Meteorologists and glider pilots understand. All pilots should!
The two plotted lines are temperature (red) and moisture/dew point (blue). Height is height. (Pressure altitude is plotted logarithmically, hence Log-P). Left is cold; right is hot. Temperature is skewed so that a constant temperature atmosphere would slope up and to the right, hence Skew-T.
The temperature falling to the dew point makes clouds/dew/precipitation. This would be shown as the temperature plot touching or nearly touching the dew point plot.
Here is a low marine layer of clouds:
And a thick layer of rain:
All sorts of other weather characteristics are easily identifiable on a Skew-T Log-P plot. The plot often includes guidelines that show how temperature tends to fall with altitude for dry and moist air. These can be used to predict icing, convective activity/thunderstorms, and wind shear, to start.
Weather balloons are released twice a day from dozens of locations around the US and hundreds around the world.
NOAA forecasts provide predicted sounding data on a grid. The default model (Op40) is hourly on a 40km grid for up to 18 hours in the future.
The sole data source is the US's NOAA. Forecast data is only available for the US, but 12 hour soundings are available from US military bases all over the world.
- NOAA's sounding web API
- Return of Skew-T
- An explanation of Skew-T Log-P for pilots
- Skew-T tutorials
- An overview of information that can be divined from a plot
- Weather Explained: Intro to Reading Skew-T Graphs
- A five minute video, explaining weather balloons, Skew-T plots, and how to read them
- Fully declarative UI
- Immutable state managed via...
- A dirt simple implementation of Redux, following this article: Redux architecture and mind-blowing features
- Every view uses a
@EnvironmentObject var store: Store<SkewtState>
with@Published private(set) var state: State
- Each UI action dispatches an
Action
to the store'sdispatch
- Every state struct has a
Reducer
pure function to turn aState
and anAction
into a newState
Middleware
s handle remote data, saving state, logging, and handling location data
- Network requests are all performed via
URLSession.shared.dataTaskPublisher
, mapping responses and failures to Redux actions - Debounced UI is handled via bindings and Combine
- Background animations for predicted weather
- Tutorials
- Better support for viewing charts over time
- Maps for selecting location
- No user data is collected, period. This may be revisted later for anonymous analytics.
- User location, if granted, is anonymized before being sent to any external API.
Skew-T Log-P plots will stay free as long as a free API exists. Future interactive lessons, quizzes, integrations with external tools, and more advanced visualizations may appear with a cost.