{"id":19749879,"url":"https://github.com/b1naryth1ef/jambon","last_synced_at":"2025-04-30T09:31:41.665Z","repository":{"id":39675339,"uuid":"389320011","full_name":"b1naryth1ef/jambon","owner":"b1naryth1ef","description":"🐷 jambon helps you manage those fatty acmi files","archived":false,"fork":false,"pushed_at":"2022-05-27T20:04:38.000Z","size":44,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-21T19:01:18.751Z","etag":null,"topics":["acmi","dcs","flight-simulator","tacview"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/b1naryth1ef.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-25T10:27:38.000Z","updated_at":"2024-06-15T22:04:31.000Z","dependencies_parsed_at":"2022-09-20T07:24:30.513Z","dependency_job_id":null,"html_url":"https://github.com/b1naryth1ef/jambon","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1naryth1ef%2Fjambon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1naryth1ef%2Fjambon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1naryth1ef%2Fjambon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b1naryth1ef%2Fjambon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b1naryth1ef","download_url":"https://codeload.github.com/b1naryth1ef/jambon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224205709,"owners_count":17273335,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acmi","dcs","flight-simulator","tacview"],"created_at":"2024-11-12T02:29:09.787Z","updated_at":"2024-11-12T02:29:10.386Z","avatar_url":"https://github.com/b1naryth1ef.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jambon - tacview / acmi file processing utility\n\njambon 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.\n\n### Performance\n\njambon 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.\n\n## Searching\n\nWe can search by any object property and jambon will produce time frames for all relevant objects.\n\n```bash\n$ jambon search --property \"Pilot=Tracer 1-1 | Apothecary\" --file example.acmi\nProcessing file test.acmi...\nObject 2051\n  First Seen: 2021-07-24T04:00:47Z (47.18)\n  Last Seen:  2021-07-24T04:23:00Z (1380.33)\nObject 171523\n  First Seen: 2021-07-24T04:23:07Z (1387.45)\n  Last Seen:  2021-07-24T04:36:22Z (2182.34)\nObject 348163\n  First Seen: 2021-07-24T04:36:54Z (2214.48)\n  Last Seen:  2021-07-24T04:49:39Z (2979.97)\nObject 551171\n  First Seen: 2021-07-24T04:51:16Z (3076.77)\n  Last Seen:  2021-07-24T04:54:36Z (3276.82)\nObject 578051\n  First Seen: 2021-07-24T04:54:39Z (3279.72)\n  Last Seen:  2021-07-24T05:32:01Z (5521.57)\n```\n\nOr perhaps you prefer structured data:\n\n```bash\n$ jambon search --property \"Pilot=Tracer 1-1 | Apothecary\" --file example.acmi --json | jq '.'\n[\n  {\n    \"object\": {\n      \"Id\": 2051,\n      \"Properties\": [\n        {\n          \"Key\": \"T\",\n          \"Value\": \"3.3380541|6.0067414|44.88||4.7|95.6|242348.11|-5254.55|92.5\"\n        },\n        {\n          \"Key\": \"Type\",\n          \"Value\": \"Air+FixedWing\"\n        },\n        {\n          \"Key\": \"Name\",\n          \"Value\": \"AV8BNA\"\n        },\n        {\n          \"Key\": \"Pilot\",\n          \"Value\": \"Tracer 1-1 | Apothecary\"\n        },\n        {\n          \"Key\": \"Group\",\n          \"Value\": \"Ford 3\"\n        },\n        {\n          \"Key\": \"Color\",\n          \"Value\": \"Blue\"\n        },\n        {\n          \"Key\": \"Coalition\",\n          \"Value\": \"Enemies\"\n        },\n        {\n          \"Key\": \"Country\",\n          \"Value\": \"us\"\n        }\n      ],\n      \"Deleted\": false\n    },\n    \"first_seen\": 47.18,\n    \"last_seen\": 1380.33\n  },\n...\n]\n```\n\n## Trimming\n\nOnce we have a time frame we can utilize the trim functionality to produce a much smaller ACMI file.\n\n```\n$ jambon trim --input before.acmi --start-at-offset-time 3279.72 --end-at-offset-time 5521.57 --output after.acmi\nCollecting frames between 3279.72 and 5521.57...\nSorting 47240 collected frames...\nWriting 47240 frames...\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb1naryth1ef%2Fjambon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb1naryth1ef%2Fjambon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb1naryth1ef%2Fjambon/lists"}