https://github.com/b1naryth1ef/jambon
🐷 jambon helps you manage those fatty acmi files
https://github.com/b1naryth1ef/jambon
acmi dcs flight-simulator tacview
Last synced: about 1 year ago
JSON representation
🐷 jambon helps you manage those fatty acmi files
- Host: GitHub
- URL: https://github.com/b1naryth1ef/jambon
- Owner: b1naryth1ef
- License: mit
- Created: 2021-07-25T10:27:38.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-05-27T20:04:38.000Z (about 4 years ago)
- Last Synced: 2024-06-21T19:01:18.751Z (almost 2 years ago)
- Topics: acmi, dcs, flight-simulator, tacview
- Language: Go
- Homepage:
- Size: 43 KB
- Stars: 3
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# jambon - tacview / acmi file processing utility
jambon is a small utility designed to help process large tacview (ACMI). It includes CLI tools for searching objects within a tacview, determining object life span, trimming tacviews to specific time frames, and filtering out objects.
### Performance
jambon allows the user to optimize for speed or reduced memory usage when running ACMI processing commands. Commands that read ACMI files have a `--concurrency` flag which determines the number of data-processing routines that will be started. Generally speaking if a command outputs an ACMI file, a `--concurrency` of 1 will provide a consistent and small memory usage pattern. A larger concurrency value obviously results in less time processing but will require much more memory as data is buffered between stages.
## Searching
We can search by any object property and jambon will produce time frames for all relevant objects.
```bash
$ jambon search --property "Pilot=Tracer 1-1 | Apothecary" --file example.acmi
Processing file test.acmi...
Object 2051
First Seen: 2021-07-24T04:00:47Z (47.18)
Last Seen: 2021-07-24T04:23:00Z (1380.33)
Object 171523
First Seen: 2021-07-24T04:23:07Z (1387.45)
Last Seen: 2021-07-24T04:36:22Z (2182.34)
Object 348163
First Seen: 2021-07-24T04:36:54Z (2214.48)
Last Seen: 2021-07-24T04:49:39Z (2979.97)
Object 551171
First Seen: 2021-07-24T04:51:16Z (3076.77)
Last Seen: 2021-07-24T04:54:36Z (3276.82)
Object 578051
First Seen: 2021-07-24T04:54:39Z (3279.72)
Last Seen: 2021-07-24T05:32:01Z (5521.57)
```
Or perhaps you prefer structured data:
```bash
$ jambon search --property "Pilot=Tracer 1-1 | Apothecary" --file example.acmi --json | jq '.'
[
{
"object": {
"Id": 2051,
"Properties": [
{
"Key": "T",
"Value": "3.3380541|6.0067414|44.88||4.7|95.6|242348.11|-5254.55|92.5"
},
{
"Key": "Type",
"Value": "Air+FixedWing"
},
{
"Key": "Name",
"Value": "AV8BNA"
},
{
"Key": "Pilot",
"Value": "Tracer 1-1 | Apothecary"
},
{
"Key": "Group",
"Value": "Ford 3"
},
{
"Key": "Color",
"Value": "Blue"
},
{
"Key": "Coalition",
"Value": "Enemies"
},
{
"Key": "Country",
"Value": "us"
}
],
"Deleted": false
},
"first_seen": 47.18,
"last_seen": 1380.33
},
...
]
```
## Trimming
Once we have a time frame we can utilize the trim functionality to produce a much smaller ACMI file.
```
$ jambon trim --input before.acmi --start-at-offset-time 3279.72 --end-at-offset-time 5521.57 --output after.acmi
Collecting frames between 3279.72 and 5521.57...
Sorting 47240 collected frames...
Writing 47240 frames...
```