build: exclude demo chunks from purl

This commit is contained in:
eneller
2026-01-21 13:13:23 +01:00
parent 2757a86383
commit f4955af7f4

View File

@@ -9,6 +9,11 @@ date: "`r Sys.Date()`"
```{r setup, include=FALSE} ```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
# include `eval=isArtifact()` to check if pdf/html is being produced
isArtifact <- function(){
isOutput <-knitr::is_html_output() || knitr::is_latex_output()
return(isOutput)
}
``` ```
```{r preamble, message=FALSE, include=FALSE} ```{r preamble, message=FALSE, include=FALSE}
@@ -383,7 +388,7 @@ The full analysis is also available in the GUI-based Shiny application.
The `getCredentials()` function retrieves API credentials from environment variables, ensuring secure credential management. The `getCredentials()` function retrieves API credentials from environment variables, ensuring secure credential management.
```{r} ```{r, purl=FALSE}
creds <- getCredentials( creds <- getCredentials(
client_id = Sys.getenv("OPENSKY_CLIENT_ID"), client_id = Sys.getenv("OPENSKY_CLIENT_ID"),
client_secret = Sys.getenv("OPENSKY_CLIENT_SECRET") client_secret = Sys.getenv("OPENSKY_CLIENT_SECRET")
@@ -394,7 +399,7 @@ creds <- getCredentials(
Recent departures from Frankfurt Airport (ICAO: EDDF) are queried for a two-hour time window. This airport was selected due to its high traffic volume, ensuring sufficient data availability. Recent departures from Frankfurt Airport (ICAO: EDDF) are queried for a two-hour time window. This airport was selected due to its high traffic volume, ensuring sufficient data availability.
```{r demo-departures} ```{r demo-departures, purl=FALSE}
time_now <- Sys.time() time_now <- Sys.time()
departures <- getAirportDepartures( departures <- getAirportDepartures(
airport = "EDDF", airport = "EDDF",
@@ -409,7 +414,7 @@ cat("Departures retrieved:", length(departures), "\n")
The `getAircraftTrack()` function retrieves detailed waypoint data for individual aircraft. The function iterates through available departures until valid track data is obtained. The `getAircraftTrack()` function retrieves detailed waypoint data for individual aircraft. The function iterates through available departures until valid track data is obtained.
```{r demo-track} ```{r demo-track, purl=FALSE}
route_df <- NULL route_df <- NULL
icao <- "N/A" icao <- "N/A"
@@ -436,7 +441,7 @@ if (is.null(route_df)) {
The geographic trajectory is visualized in a Cartesian coordinate system. Green and red markers indicate departure and current/final position, respectively. The geographic trajectory is visualized in a Cartesian coordinate system. Green and red markers indicate departure and current/final position, respectively.
```{r demo-route-plot, fig.width=7, fig.height=5} ```{r demo-route-plot, fig.width=7, fig.height=5, purl=FALSE}
if (!is.null(route_df)) { if (!is.null(route_df)) {
plot(route_df$lon, route_df$lat, type = "o", pch = 20, col = "blue", plot(route_df$lon, route_df$lat, type = "o", pch = 20, col = "blue",
main = paste("Flight Trajectory -", icao), main = paste("Flight Trajectory -", icao),
@@ -454,7 +459,7 @@ if (!is.null(route_df)) {
The altitude profile reveals distinct flight phases: climb, cruise, and descent. This temporal representation provides insight into vertical movement patterns. The altitude profile reveals distinct flight phases: climb, cruise, and descent. This temporal representation provides insight into vertical movement patterns.
```{r demo-altitude-plot, fig.width=7, fig.height=4} ```{r demo-altitude-plot, fig.width=7, fig.height=4, purl=FALSE}
if (!is.null(route_df)) { if (!is.null(route_df)) {
time_minutes <- (route_df$time - route_df$time[1]) / 60 time_minutes <- (route_df$time - route_df$time[1]) / 60
plot(time_minutes, route_df$alt, type = "l", col = "red", lwd = 2, plot(time_minutes, route_df$alt, type = "l", col = "red", lwd = 2,
@@ -470,7 +475,7 @@ if (!is.null(route_df)) {
The `getTrajFromRoute()` function transforms geographic coordinates into a metric coordinate system and constructs a `trajr` trajectory object. This transformation is necessary for accurate distance calculations. The `getTrajFromRoute()` function transforms geographic coordinates into a metric coordinate system and constructs a `trajr` trajectory object. This transformation is necessary for accurate distance calculations.
```{r demo-trajectory-plot, fig.width=7, fig.height=5} ```{r demo-trajectory-plot, fig.width=7, fig.height=5, purl=FALSE}
if (!is.null(route_df)) { if (!is.null(route_df)) {
trj <- getTrajFromRoute(route_df) trj <- getTrajFromRoute(route_df)
plot(trj, main = paste("Metric Trajectory -", icao)) plot(trj, main = paste("Metric Trajectory -", icao))
@@ -484,7 +489,7 @@ if (!is.null(route_df)) {
The `calculateTrajectoryStats()` function computes comprehensive trajectory metrics. The table format provides a clear overview of individual flight characteristics. The `calculateTrajectoryStats()` function computes comprehensive trajectory metrics. The table format provides a clear overview of individual flight characteristics.
```{r demo-stats-table} ```{r demo-stats-table, purl=FALSE}
if (!is.null(route_df)) { if (!is.null(route_df)) {
stats_table <- calculateTrajectoryStats(route_df, icao = icao, format = "table") stats_table <- calculateTrajectoryStats(route_df, icao = icao, format = "table")
knitr::kable(stats_table, caption = paste("Trajectory Metrics for Aircraft", icao)) knitr::kable(stats_table, caption = paste("Trajectory Metrics for Aircraft", icao))
@@ -497,7 +502,7 @@ if (!is.null(route_df)) {
To enable statistical inference, trajectory data is collected for multiple flights. The algorithm attempts to retrieve valid track data for up to five departures in this example. To enable statistical inference, trajectory data is collected for multiple flights. The algorithm attempts to retrieve valid track data for up to five departures in this example.
```{r demo-multiple-tracks} ```{r demo-multiple-tracks, purl=FALSE}
flight_data <- list() flight_data <- list()
successful_flights <- 0 successful_flights <- 0
@@ -542,7 +547,7 @@ if (length(departures) > 0) {
The following table presents computed metrics for all successfully analyzed flights. The following table presents computed metrics for all successfully analyzed flights.
```{r demo-all-stats-table} ```{r demo-all-stats-table, purl=FALSE}
if (!is.null(all_flights_stats)) { if (!is.null(all_flights_stats)) {
display_stats <- all_flights_stats display_stats <- all_flights_stats
display_stats$diffusion_distance_km <- round(display_stats$diffusion_distance_km, 2) display_stats$diffusion_distance_km <- round(display_stats$diffusion_distance_km, 2)
@@ -564,7 +569,7 @@ if (!is.null(all_flights_stats)) {
The `calculateStatsSummary()` function computes central tendency and dispersion measures for each trajectory parameter. The `calculateStatsSummary()` function computes central tendency and dispersion measures for each trajectory parameter.
```{r demo-summary-stats} ```{r demo-summary-stats, purl=FALSE}
if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 2) { if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 2) {
summary_stats <- calculateStatsSummary(all_flights_stats) summary_stats <- calculateStatsSummary(all_flights_stats)
knitr::kable(summary_stats, caption = "Descriptive Statistics Summary") knitr::kable(summary_stats, caption = "Descriptive Statistics Summary")
@@ -577,7 +582,7 @@ if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 2) {
Boxplots provide a robust visualization of parameter distributions, displaying median, interquartile range, and potential outliers. The red diamond indicates the arithmetic mean. Boxplots provide a robust visualization of parameter distributions, displaying median, interquartile range, and potential outliers. The red diamond indicates the arithmetic mean.
```{r demo-boxplots, fig.width=10, fig.height=8} ```{r demo-boxplots, fig.width=10, fig.height=8, purl=FALSE}
if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 2) { if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 2) {
createBoxplots(all_flights_stats) createBoxplots(all_flights_stats)
} else { } else {
@@ -589,7 +594,7 @@ if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 2) {
Density plots employ kernel density estimation to approximate the probability distribution of each parameter. Vertical lines indicate mean (red, dashed) and median (green, dotted). Density plots employ kernel density estimation to approximate the probability distribution of each parameter. Vertical lines indicate mean (red, dashed) and median (green, dotted).
```{r demo-density, fig.width=10, fig.height=8} ```{r demo-density, fig.width=10, fig.height=8, purl=FALSE}
if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 3) { if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 3) {
createDensityPlots(all_flights_stats) createDensityPlots(all_flights_stats)
} else { } else {
@@ -601,7 +606,7 @@ if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 3) {
Histograms with overlaid density curves provide an alternative visualization of parameter distributions. Histograms with overlaid density curves provide an alternative visualization of parameter distributions.
```{r demo-histograms, fig.width=10, fig.height=8} ```{r demo-histograms, fig.width=10, fig.height=8, purl=FALSE}
if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 3) { if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 3) {
createHistograms(all_flights_stats) createHistograms(all_flights_stats)
} else { } else {
@@ -613,7 +618,7 @@ if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 3) {
The `generateInterpretation()` function provides contextual analysis of the computed trajectory metrics. The `generateInterpretation()` function provides contextual analysis of the computed trajectory metrics.
```{r demo-interpretation} ```{r demo-interpretation, purl=FALSE}
if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 2) { if (!is.null(all_flights_stats) && nrow(all_flights_stats) >= 2) {
interpretation <- generateInterpretation(all_flights_stats) interpretation <- generateInterpretation(all_flights_stats)
cat(interpretation) cat(interpretation)