atracker

所属分类:数值算法/人工智能
开发工具:GO
文件大小:0KB
下载次数:0
上传日期:2021-07-17 06:53:10
上 传 者sh-1993
说明:  飞机跟踪和通知客户端。在设定的共线矩形边界内跟踪所有飞机,并在下列情况之一发生时通知:...,
(Aircraft tracking and notification client. Track all aircraft within the set cordinate rectangular bounds and notifiy when one of the filtered aircraft is present.)

文件列表:
TODO.md (276, 2021-07-16)
config_template.yaml (186, 2021-07-16)
go.mod (232, 2021-07-16)
go.sum (60098, 2021-07-16)
internal/ (0, 2021-07-16)
internal/cache/ (0, 2021-07-16)
internal/cache/fid.go (1792, 2021-07-16)
internal/config/ (0, 2021-07-16)
internal/config/load.go (1274, 2021-07-16)
internal/config/validation.go (901, 2021-07-16)
internal/filter/ (0, 2021-07-16)
internal/filter/aircraft.go (737, 2021-07-16)
internal/filter/scan.go (519, 2021-07-16)
internal/radar/ (0, 2021-07-16)
internal/radar/apiobfuscation.go (703, 2021-07-16)
internal/radar/flightdata.go (1443, 2021-07-16)
internal/radar/scanner.go (3755, 2021-07-16)
internal/radar/tracker.go (1460, 2021-07-16)
internal/util/ (0, 2021-07-16)
internal/util/cords.go (655, 2021-07-16)
main.go (1009, 2021-07-16)

# **ATracker** Aircraft tracking and notification client. Track all aircraft within the set cordinate rectangular bounds and notifiy when one of the filtered aircraft is present. ## **Config** From the template `config_template.yaml`, a copy of it needs to be made and named `config.yaml`. Once that is done, the following config options could be set: - **radarBounds.topRightCords.latitude=** latitude cordinate for top right edge of the bounds. - **radarBounds.topRightCords.longitude=** longitude cordinate for top right edge of the bounds. - **radarBounds.bottomLeftCords.latitude=** latitude cordinate for bottom left edge of the bounds. - **radarBounds.bottomLeftCords.longitude=** longitude cordinate for bottom left edge of the bounds. - **aircraft=** list of all special aircrafts to be filtered. All aircrafts in this list must be designated by their ICAO code. - **redis.addr=** the redis server address which will be used for caching flight ids. - **redis.port=** the redis server port which will be used for caching flight ids. ## **Caching** To avoid duplicate notifications for the same aircraft, each aircraft, by their fid, is assisted a TTL of 5 minutes once detected. This caching is done via Redis with the TTL currently not user configurable. ## **Push Notification** As the software currently sits, the "push notification" is done via standard output. Plans to extend this are in the works as I am working on implementing a universal push notification service with atracker being one of the supported platforms. ## **Captcha Prevention** As discovered via R/D of the internal API that I use to retrieve aircraft data, frequest aircraft info requests result in Cloudflare sending captchas to solve. To prevent this, scans of the bounds only occur every 10 seconds. Similarly, the number of concurrent aircraft workers goroutines is set to 5. Within each worker, a random timeout between [0,10] seconds is set. Thus, as a result, there can be delay in the notifiaction. Until further optimization is done to lower these values, these values have been upperbounded to higher values to avoid high congestion resulting in temp bans and captchas. ## **Installation & Runtime** The following steps must be done for the tool to run: 1. Install Go v1.16. 2. Clone repo and install dependencies with `go mod download`. 3. Configure the filter and the bounds of the tracker as designated in [config](https://github.com/kingcobra2468/atracker/blob/master/#config). 4. Two ways of running the tool: 1. Either build the tool with `go build` and then run it was `./atracker` *Note that* `config.yaml` *must be present in same directory as* `atracker` *binary*. 2. Run without build via `go run main.go`.

近期下载者

相关文件


收藏者