agi-app-flight-telemetry 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. agi_app_flight_telemetry-0.1.0/LICENSE +22 -0
  2. agi_app_flight_telemetry-0.1.0/PKG-INFO +49 -0
  3. agi_app_flight_telemetry-0.1.0/README.md +19 -0
  4. agi_app_flight_telemetry-0.1.0/pyproject.toml +84 -0
  5. agi_app_flight_telemetry-0.1.0/setup.cfg +4 -0
  6. agi_app_flight_telemetry-0.1.0/setup.py +47 -0
  7. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/__init__.py +33 -0
  8. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/README.md +62 -0
  9. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/dag_templates/flight_to_weather.json +92 -0
  10. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/notebook_import_views.toml +56 -0
  11. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/pipeline_view.dot +15 -0
  12. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/pyproject.toml +10 -0
  13. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/app_args_form.py +256 -0
  14. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/app_settings.toml +107 -0
  15. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/connectors/data_connectors.toml +27 -0
  16. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/flight/__init__.py +17 -0
  17. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/flight/flight.py +285 -0
  18. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/flight/flight_args.py +252 -0
  19. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/flight/reduction.py +225 -0
  20. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/flight_worker/__init__.py +6 -0
  21. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/flight_worker/dataset.7z +0 -0
  22. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/flight_worker/flight_worker.py +262 -0
  23. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/flight_worker/pyproject.toml +52 -0
  24. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/src/pre_prompt.json +1 -0
  25. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry/project/flight_telemetry_project/uv_config.toml +5 -0
  26. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry.egg-info/PKG-INFO +49 -0
  27. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry.egg-info/SOURCES.txt +11 -0
  28. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry.egg-info/dependency_links.txt +1 -0
  29. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry.egg-info/entry_points.txt +3 -0
  30. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry.egg-info/requires.txt +1 -0
  31. agi_app_flight_telemetry-0.1.0/src/agi_app_flight_telemetry.egg-info/top_level.txt +1 -0
@@ -0,0 +1,22 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2025, Jean-Pierre Morard, THALES SIX GTS France SAS
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
7
+ following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
10
+ disclaimer.
11
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
12
+ disclaimer in the documentation and/or other materials provided with the distribution.
13
+ 3. Neither the name of Jean-Pierre MORARD nor the names of its contributors, or THALES SIX GTS France SAS, may be used
14
+ to endorse or promote products derived from this software without specific prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
21
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,49 @@
1
+ Metadata-Version: 2.4
2
+ Name: agi-app-flight-telemetry
3
+ Version: 0.1.0
4
+ Summary: AGILAB flight telemetry app project
5
+ Author: Jean-Pierre Morard
6
+ Maintainer: Jean-Pierre Morard
7
+ License-Expression: BSD-3-Clause
8
+ Project-URL: Documentation, https://thalesgroup.github.io/agilab
9
+ Project-URL: Source, https://github.com/ThalesGroup/agilab/tree/main/src/agilab/lib/agi-app-flight-telemetry
10
+ Project-URL: Issues, https://github.com/ThalesGroup/agilab/issues
11
+ Project-URL: Homepage, https://github.com/ThalesGroup/agilab
12
+ Project-URL: Repository, https://github.com/ThalesGroup/agilab
13
+ Project-URL: Discussions, https://github.com/ThalesGroup/agilab/discussions
14
+ Project-URL: Changelog, https://github.com/ThalesGroup/agilab/releases
15
+ Keywords: agilab,apps,reproducibility,workflow-orchestration
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Development Status :: 4 - Beta
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Operating System :: MacOS
23
+ Classifier: Operating System :: Microsoft :: Windows
24
+ Classifier: Operating System :: POSIX :: Linux
25
+ Requires-Python: >=3.11
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: agi-core<2027.0,>=2026.05.13
29
+ Dynamic: license-file
30
+
31
+ # agi-app-flight-telemetry
32
+
33
+ [![PyPI version](https://img.shields.io/pypi/v/agi-app-flight-telemetry.svg?cacheSeconds=300)](https://pypi.org/project/agi-app-flight-telemetry/)
34
+ [![Python versions](https://img.shields.io/pypi/pyversions/agi-app-flight-telemetry.svg)](https://pypi.org/project/agi-app-flight-telemetry/)
35
+ [![License: BSD 3-Clause](https://img.shields.io/pypi/l/agi-app-flight-telemetry)](https://opensource.org/licenses/BSD-3-Clause)
36
+
37
+ `agi-app-flight-telemetry` publishes the `flight_telemetry_project` AGILAB app project as a self-contained
38
+ package payload. The package advertises the project through the `agilab.apps`
39
+ entry point group so `AgiEnv(app="flight_telemetry_project")` can resolve it without a
40
+ monorepo checkout.
41
+
42
+ ## Install
43
+
44
+ ```bash
45
+ pip install agi-app-flight-telemetry
46
+ ```
47
+
48
+ Most users install these app packages through the umbrella `agi-apps` package or
49
+ through `agilab[ui]` / `agilab[examples]`.
@@ -0,0 +1,19 @@
1
+ # agi-app-flight-telemetry
2
+
3
+ [![PyPI version](https://img.shields.io/pypi/v/agi-app-flight-telemetry.svg?cacheSeconds=300)](https://pypi.org/project/agi-app-flight-telemetry/)
4
+ [![Python versions](https://img.shields.io/pypi/pyversions/agi-app-flight-telemetry.svg)](https://pypi.org/project/agi-app-flight-telemetry/)
5
+ [![License: BSD 3-Clause](https://img.shields.io/pypi/l/agi-app-flight-telemetry)](https://opensource.org/licenses/BSD-3-Clause)
6
+
7
+ `agi-app-flight-telemetry` publishes the `flight_telemetry_project` AGILAB app project as a self-contained
8
+ package payload. The package advertises the project through the `agilab.apps`
9
+ entry point group so `AgiEnv(app="flight_telemetry_project")` can resolve it without a
10
+ monorepo checkout.
11
+
12
+ ## Install
13
+
14
+ ```bash
15
+ pip install agi-app-flight-telemetry
16
+ ```
17
+
18
+ Most users install these app packages through the umbrella `agi-apps` package or
19
+ through `agilab[ui]` / `agilab[examples]`.
@@ -0,0 +1,84 @@
1
+ [project]
2
+ version = "0.1.0"
3
+ name = "agi-app-flight-telemetry"
4
+ description = "AGILAB flight telemetry app project"
5
+ requires-python = ">=3.11"
6
+ readme = "README.md"
7
+ authors = [
8
+ { name = "Jean-Pierre Morard" }
9
+ ]
10
+ maintainers = [{ name = "Jean-Pierre Morard" }]
11
+ license = "BSD-3-Clause"
12
+ license-files = ["LICENSE"]
13
+
14
+ classifiers = [
15
+ "Intended Audience :: Developers",
16
+ "Development Status :: 4 - Beta",
17
+ "Programming Language :: Python :: 3",
18
+ "Programming Language :: Python :: 3.11",
19
+ "Programming Language :: Python :: 3.12",
20
+ "Programming Language :: Python :: 3.13",
21
+ "Operating System :: MacOS",
22
+ "Operating System :: Microsoft :: Windows",
23
+ "Operating System :: POSIX :: Linux",
24
+ ]
25
+
26
+ keywords = [
27
+ "agilab",
28
+ "apps",
29
+ "reproducibility",
30
+ "workflow-orchestration",
31
+ ]
32
+
33
+ dependencies = ["agi-core>=2026.05.13,<2027.0"]
34
+
35
+ [project.urls]
36
+ Documentation = "https://thalesgroup.github.io/agilab"
37
+ Source = "https://github.com/ThalesGroup/agilab/tree/main/src/agilab/lib/agi-app-flight-telemetry"
38
+ Issues = "https://github.com/ThalesGroup/agilab/issues"
39
+ Homepage = "https://github.com/ThalesGroup/agilab"
40
+ Repository = "https://github.com/ThalesGroup/agilab"
41
+ Discussions = "https://github.com/ThalesGroup/agilab/discussions"
42
+ Changelog = "https://github.com/ThalesGroup/agilab/releases"
43
+
44
+ [project.entry-points."agilab.apps"]
45
+ flight_telemetry = "agi_app_flight_telemetry:project_root"
46
+ flight_telemetry_project = "agi_app_flight_telemetry:project_root"
47
+
48
+ [dependency-groups]
49
+ dev = [
50
+ "pytest",
51
+ ]
52
+
53
+ [tool.uv.sources.agi-core]
54
+ path = "../../core/agi-core"
55
+ editable = true
56
+
57
+ [build-system]
58
+ requires = ["setuptools>=68", "wheel"]
59
+ build-backend = "setuptools.build_meta"
60
+
61
+ [tool.setuptools]
62
+ include-package-data = false
63
+ package-dir = {"" = "src"}
64
+ packages = ["agi_app_flight_telemetry"]
65
+
66
+ [tool.setuptools.package-data]
67
+ "agi_app_flight_telemetry" = [
68
+ "project/**/*",
69
+ ]
70
+
71
+ [tool.setuptools.exclude-package-data]
72
+ "agi_app_flight_telemetry" = [
73
+ "project/**/.venv/**",
74
+ "project/**/__pycache__/**",
75
+ "project/**/*.pyc",
76
+ "project/**/*.pyo",
77
+ "project/**/*.pyx",
78
+ "project/**/*.c",
79
+ "project/**/*.so",
80
+ "project/**/uv.lock",
81
+ ]
82
+
83
+ [tool.pytest.ini_options]
84
+ testpaths = ["test"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,47 @@
1
+ from __future__ import annotations
2
+
3
+ import importlib.util
4
+ from pathlib import Path
5
+
6
+ from setuptools import setup
7
+ from setuptools.command.build_py import build_py as _build_py
8
+ from setuptools.command.sdist import sdist as _sdist
9
+
10
+ APP_PROJECT = 'flight_telemetry_project'
11
+ PACKAGE_IMPORT = 'agi_app_flight_telemetry'
12
+
13
+
14
+ def _load_build_support():
15
+ module_path = Path(__file__).resolve().parents[4] / "src" / "agilab" / "lib" / "app_project_build_support.py"
16
+ if not module_path.exists():
17
+ return None
18
+ spec = importlib.util.spec_from_file_location("agilab_app_project_build_support", module_path)
19
+ if spec is None or spec.loader is None:
20
+ raise RuntimeError(f"Unable to load app project build support from {module_path}")
21
+ module = importlib.util.module_from_spec(spec)
22
+ spec.loader.exec_module(module)
23
+ return module
24
+
25
+
26
+ def _copy_payload(target_root: Path) -> None:
27
+ support = _load_build_support()
28
+ if support is None:
29
+ return
30
+ changed = support.copy_app_project_payload(APP_PROJECT, target_root)
31
+ for pyproject_path in changed:
32
+ print(f"[{PACKAGE_IMPORT}] sanitized packaged app manifest: {pyproject_path}")
33
+
34
+
35
+ class build_py(_build_py):
36
+ def run(self):
37
+ super().run()
38
+ _copy_payload(Path(self.build_lib) / PACKAGE_IMPORT / "project")
39
+
40
+
41
+ class sdist(_sdist):
42
+ def make_release_tree(self, base_dir, files):
43
+ super().make_release_tree(base_dir, files)
44
+ _copy_payload(Path(base_dir) / "src" / PACKAGE_IMPORT / "project")
45
+
46
+
47
+ setup(cmdclass={"build_py": build_py, "sdist": sdist})
@@ -0,0 +1,33 @@
1
+ """Installed AGILAB app project provider for flight_telemetry_project."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+
7
+ APP_SLUG = 'flight_telemetry'
8
+ PROJECT_NAME = 'flight_telemetry_project'
9
+ PACKAGE_NAME = 'agi-app-flight-telemetry'
10
+
11
+
12
+ def package_root() -> Path:
13
+ return Path(__file__).resolve().parent
14
+
15
+
16
+ def project_root() -> Path:
17
+ packaged_root = package_root() / "project" / PROJECT_NAME
18
+ if packaged_root.exists():
19
+ return packaged_root
20
+ source_root = Path(__file__).resolve().parents[4] / "apps" / "builtin" / PROJECT_NAME
21
+ return source_root if source_root.exists() else packaged_root
22
+
23
+
24
+ def metadata() -> dict[str, str]:
25
+ return {
26
+ "slug": APP_SLUG,
27
+ "project": PROJECT_NAME,
28
+ "package": PACKAGE_NAME,
29
+ "project_root": str(project_root()),
30
+ }
31
+
32
+
33
+ __all__ = ["APP_SLUG", "PACKAGE_NAME", "PROJECT_NAME", "metadata", "package_root", "project_root"]
@@ -0,0 +1,62 @@
1
+ # Flight Telemetry Project
2
+
3
+ `flight_telemetry_project` is the AGILAB install id for this built-in public flight example.
4
+
5
+ The project focuses on a simple but useful workflow:
6
+ - ingest flight data from files under shared storage
7
+ - turn that input into a dataframe dataset under shared storage
8
+ - inspect the result in the default AGILAB `view_maps` page and the optional
9
+ `view_maps_network` page
10
+
11
+ ## What it is good for
12
+
13
+ - a compact end-to-end AGILAB demo around real-world flight data
14
+ - validating the `PROJECT -> ORCHESTRATE -> WORKFLOW -> ANALYSIS` flow in one
15
+ packaged public app
16
+ - showing how a raw data source becomes a reusable dataset for visual exploration
17
+
18
+ ## What is not implemented in the public version
19
+
20
+ This public built-in example is intentionally narrow. It does **not** implement:
21
+ - search-index ingestion inside this app; use an external app for that connector path
22
+ - richer trajectory-centric study workflows
23
+ - multi-stage trajectory reconstruction or scenario stitching
24
+ - dedicated cross-run comparison views for complex flight studies
25
+ - advanced trajectory replay, alignment, or domain-specific experiment dashboards
26
+
27
+ The public version is meant to stay approachable: one small app that demonstrates
28
+ data ingestion, pipeline reuse, and visual exploration without exposing a larger
29
+ specialized workflow.
30
+
31
+ ## Main outputs
32
+
33
+ Each run produces a structured flight dataframe dataset that can then be reused by
34
+ analysis pages and downstream pipeline stages.
35
+
36
+ Workers also emit a `reduce_summary_worker_<id>.json` `ReduceArtifact` beside
37
+ the dataframe outputs. That summary records the reducer name, row count,
38
+ aircraft/source-file counts, written output files, and trajectory distance/time-span
39
+ fields so Release Decision can surface the flight run as first-class evidence.
40
+
41
+ ## Typical flow
42
+
43
+ 1. Select `flight_telemetry_project` in `PROJECT`.
44
+ 2. Configure the input source in `ORCHESTRATE`.
45
+ 3. Run the ingestion step.
46
+ 4. Inspect or extend the generated recipe in `WORKFLOW`.
47
+ 5. Explore the resulting dataset in `view_maps`, then open `view_maps_network`
48
+ when you want the network-style analysis route.
49
+
50
+ Notebook imports do not try to infer flight UI intent from arbitrary code cells.
51
+ The app declares compatible import views in `notebook_import_views.toml`, so the
52
+ generic notebook importer can write a `notebook_import_view_plan.json` sidecar
53
+ that matches declared flight views to produced artifacts.
54
+
55
+ ## What this teases in AGILAB
56
+
57
+ This public example is only the entry point. The same framework can also support:
58
+ - trajectory-focused studies with custom app logic and dedicated pages
59
+ - replayable experiment pipelines built from generated or saved steps
60
+ - richer domain-specific overlays on top of processed flight artifacts
61
+ - distributed preprocessing and repeatable multi-run comparisons
62
+ - domain-specific workflows that go beyond a generic dataframe export
@@ -0,0 +1,92 @@
1
+ {
2
+ "schema": "agilab.multi_app_dag.v1",
3
+ "dag_id": "flight-to-weather-template",
4
+ "label": "Flight to weather review",
5
+ "description": "App-owned DAG template that hands flight reduce context to the weather forecast review app.",
6
+ "execution": {
7
+ "mode": "sequential_dependency_order",
8
+ "runner_status": "controlled_contract_stage_execution",
9
+ "adapter": "controlled_contract_dag",
10
+ "stage_bindings": {
11
+ "flight_context": "flight_telemetry_project.flight_context",
12
+ "weather_forecast_review": "weather_forecast_project.weather_forecast_review"
13
+ }
14
+ },
15
+ "nodes": [
16
+ {
17
+ "id": "flight_context",
18
+ "app": "flight_telemetry_project",
19
+ "execution": {
20
+ "entrypoint": "flight_telemetry_project.flight_context",
21
+ "params": {
22
+ "data_source": "file",
23
+ "files": "*",
24
+ "nfile": 1,
25
+ "nskip": 0,
26
+ "nread": 0,
27
+ "sampling_rate": 1.0,
28
+ "datemin": "2020-01-01",
29
+ "datemax": "2021-01-01",
30
+ "output_format": "parquet"
31
+ },
32
+ "stages": [],
33
+ "data_in": "flight/dataset",
34
+ "data_out": "flight/dataframe",
35
+ "reset_target": false
36
+ },
37
+ "purpose": "Run the flight scenario and produce trajectory summary context for downstream review.",
38
+ "produces": [
39
+ {
40
+ "id": "flight_reduce_summary",
41
+ "kind": "reduce_summary",
42
+ "path": "flight_analysis/reduce_summary_worker_0.json"
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "id": "weather_forecast_review",
48
+ "app": "weather_forecast_project",
49
+ "execution": {
50
+ "entrypoint": "weather_forecast_project.weather_forecast_review",
51
+ "params": {
52
+ "files": "*.csv",
53
+ "nfile": 1,
54
+ "station": "Paris-Montsouris",
55
+ "target_column": "tmax_c",
56
+ "lags": 7,
57
+ "horizon_days": 7,
58
+ "validation_days": 9,
59
+ "n_estimators": 100,
60
+ "random_state": 42
61
+ },
62
+ "stages": [],
63
+ "data_in": "weather_forecast/dataset",
64
+ "data_out": "weather_forecast/results",
65
+ "reset_target": false
66
+ },
67
+ "purpose": "Use flight summary context to produce forecast quality metrics for review.",
68
+ "consumes": [
69
+ {
70
+ "id": "flight_reduce_summary",
71
+ "kind": "reduce_summary",
72
+ "path": "flight_analysis/reduce_summary_worker_0.json"
73
+ }
74
+ ],
75
+ "produces": [
76
+ {
77
+ "id": "forecast_metrics",
78
+ "kind": "summary_metrics",
79
+ "path": "forecast_analysis/forecast_metrics.json"
80
+ }
81
+ ]
82
+ }
83
+ ],
84
+ "edges": [
85
+ {
86
+ "from": "flight_context",
87
+ "to": "weather_forecast_review",
88
+ "artifact": "flight_reduce_summary",
89
+ "handoff": "Use flight trajectory reduce summary as the forecast-review context."
90
+ }
91
+ ]
92
+ }
@@ -0,0 +1,56 @@
1
+ schema = "agilab.notebook_import_views.v1"
2
+ app = "flight_telemetry_project"
3
+ description = "App-owned notebook import view declarations for flight artifacts."
4
+
5
+ [[views]]
6
+ id = "flight_map_dataframe"
7
+ module = "view_maps"
8
+ label = "Flight map"
9
+ description = "Inspect imported flight dataframe artifacts as latitude/longitude map layers."
10
+ priority = 10
11
+ required_artifacts_any = [
12
+ "flight/dataframe/*.parquet",
13
+ "flight/dataframe/*.csv",
14
+ "*/flight/dataframe/*.parquet",
15
+ "*/flight/dataframe/*.csv",
16
+ ]
17
+ optional_artifacts = [
18
+ "flight/dataframe/*.json",
19
+ "*/flight/dataframe/*.json",
20
+ "reduce_summary_worker_*.json",
21
+ "*/reduce_summary_worker_*.json",
22
+ ]
23
+ launch_note = "Open this first for the public flight demo dataframe map."
24
+
25
+ [views.settings_hints]
26
+ dataset_subpath = "flight/dataframe"
27
+ default_view = "view_maps"
28
+
29
+ [[views]]
30
+ id = "flight_network_overlay"
31
+ module = "view_maps_network"
32
+ label = "Flight network overlay"
33
+ description = "Reuse flight trajectory artifacts with optional topology and allocation overlays."
34
+ priority = 20
35
+ required_artifacts_any = [
36
+ "flight/dataframe/*.parquet",
37
+ "flight/dataframe/*.csv",
38
+ "*/flight/dataframe/*.parquet",
39
+ "*/flight/dataframe/*.csv",
40
+ "*trajectory*.parquet",
41
+ "*trajectory*.csv",
42
+ ]
43
+ optional_artifacts = [
44
+ "pipeline/topology.*",
45
+ "*/pipeline/topology.*",
46
+ "pipeline/edges.*",
47
+ "*/pipeline/edges.*",
48
+ "pipeline/routing_edges.*",
49
+ "*/pipeline/routing_edges.*",
50
+ "pipeline/allocations*.*",
51
+ "*/pipeline/allocations*.*",
52
+ ]
53
+ launch_note = "Use this when the imported notebook also produced topology, edge, allocation, or trajectory overlay files."
54
+
55
+ [views.query_params]
56
+ datadir_rel = "flight/dataframe"
@@ -0,0 +1,15 @@
1
+ digraph flight_pipeline {
2
+ rankdir=LR;
3
+ graph [fontname="Helvetica", fontsize=10];
4
+ node [shape=box, style="rounded,filled", fillcolor="#EEF7F2", color="#3F6B57", fontname="Helvetica", fontsize=10];
5
+ edge [color="#4F8068", arrowsize=0.8];
6
+
7
+ dataset [label="Flight telemetry input\nCSV trajectories"];
8
+ decode [label="Trajectory parsing\nlat/lon/time normalization"];
9
+ enrich [label="Route enrichment\nsegment distance + timing"];
10
+ reduce [label="Reduce summary\nworker trajectory metrics"];
11
+ artifacts [label="Map-ready artifacts\ntrajectory CSV + summaries"];
12
+ analysis [label="ANALYSIS views\nmaps + barycentric review"];
13
+
14
+ dataset -> decode -> enrich -> reduce -> artifacts -> analysis;
15
+ }
@@ -0,0 +1,10 @@
1
+ [project]
2
+ name = "flight_telemetry_project"
3
+ version = "0.1.0"
4
+ description = "Built-in AGILab example app (flight telemetry preprocessing)"
5
+ requires-python = ">=3.11"
6
+ dependencies = ["agi-env>=2026.05.13.post3,<2027.0", "agi-node>=2026.05.13.post3,<2027.0", "agi-cluster>=2026.05.13.post3,<2027.0", "polars[rtcompat]", "pydantic", "py7zr", "streamlit>=1.56.0"]
7
+
8
+ [build-system]
9
+ requires = ["setuptools"]
10
+ build-backend = "setuptools.build_meta"