Giter Club home page Giter Club logo

jambon's Introduction

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.

$ 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:

$ 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...

jambon's People

Contributors

b1naryth1ef avatar barinzaya avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

team-limakilo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.