AI prompts
base on skytrack is a planespotting and aircraft OSINT tool made using Python 🛩🔍 <img alt="skytrack banner" width="700" src="https://github.com/ANG13T/skytrack/blob/main/assets/data/skytrack_banner.png">
## About
skytrack is a command-line based plane spotting and aircraft OSINT reconnaissance tool made using Python.
It can gather aircraft information using various data sources, generate a PDF report for a specified aircraft, and convert between ICAO and Tail Number designations.
Whether you are a hobbyist plane spotter or an experienced aircraft analyst, skytrack can help you identify and enumerate aircraft for general purpose reconnaissance.
## What is Planespotting & Aircraft OSINT?
Planespotting is the art of tracking down and observing aircraft. While planespotting mostly consists of photography and videography of aircraft, aircraft information gathering and OSINT is a crucial step in the planespotting process. OSINT (Open Source Intelligence) describes a methodology of using publicy accessible data sources to obtain data about a specific subject — in this case planes!
## Aircraft Information
- Tail Number 🛫
- Aircraft Type ⚙️
- ICAO24 Designation 🔎
- Manufacturer Details 🛠
- Flight Logs 📄
- Aircraft Owner ✈️
- Model 🛩
- Much more!
## Usage
To run skytrack on your machine, follow the steps below:
```bash
$ git clone https://github.com/ANG13T/skytrack
$ cd skytrack
$ pip install -r requirements.txt
$ python skytrack.py
```
skytrack works best for Python version 3.
## Preview
<img alt="skytrack preview" width="500" src="https://github.com/ANG13T/skytrack/blob/main/assets/data/skytrack_preview.png">
## Features
skytrack features three main functions for aircraft information gathering and display options. They include the following:
### Aircraft Reconnaissance & OSINT
skytrack obtains general information about the aircraft given its tail number or ICAO designator.
The tool sources this information using several reliable data sets.
Once the data is collected, it is displayed in the terminal within a table layout.
<img alt="skytrack display" height="300" src="https://github.com/ANG13T/skytrack/blob/main/assets/data/display_1.png">
### PDF Aircraft Information Report
skytrack also enables you the save the collected aircraft information into a PDF.
The PDF includes all the aircraft data in a visual layout for later reference.
The PDF report will be entitled "skytrack_report.pdf"
<img alt="skytrack display" height="300" src="https://github.com/ANG13T/skytrack/blob/main/assets/data/display_2.png">
### Tail Number to ICAO Converter
There are two standard identification formats for specifying aircraft: Tail Number and ICAO Designation. The tail number (aka N-Number) is an alphanumerical ID starting with the letter "N" used to identify aircraft. The ICAO type designation is a six-character fixed-length ID in the hexadecimal format.
Both standards are highly pertinent for aircraft reconnaissance as they both can be used to search for a specific aircraft in data sources.
However, converting them from one format to another can be rather cumbersome as it follows a tricky algorithm. To streamline this process, skytrack includes a standard converter.
<img alt="skytrack display" height="150" src="https://github.com/ANG13T/skytrack/blob/main/assets/data/display_3.png">
<details>
<summary><bold>Further Explanation</bold></summary>
<br />
<p>ICAO and Tail Numbers follow a mapping system like the following:</p>
<p>ICAO address N-Number (Tail Number)</p>
<p>a00001 N1</p>
<p>a00002 N1A</p>
<p>a00003 N1AA</p>
You can learn more about aircraft registration numbers [here](https://www.faa.gov/licenses_certificates/aircraft_certification/aircraft_registry/special_nnumbers)
</details>
> :warning: Converter only works for USA-registered aircraft
## Data Sources & APIs Used
[ICAO Aircraft Type Designators Listings](https://www.icao.int/publications/doc8643/pages/search.aspx)
[FlightAware](flightaware.com)
[Wikipedia](wikipedia.org)
[Aviation Safety Website](https://aviation-safety.net)
[Jet Photos Website](https://www.jetphotos.com)
[OpenSky API](https://opensky-network.org/datasets/metadata/aircraftDatabase.csv)
[Aviation Weather METAR](https://aviationweather.gov)
[Airport Codes Dataset](https://pkgstore.datahub.io/core/airport-codes/airport-codes/archive/dfadb79d7ba34a49242332f2eaf4f1b0/airport-codes.csv)
## Contributing
skytrack is open to any contributions. Please fork the repository and make a pull request with the features or fixes you want to implement.
## Upcoming
- Obtain Latest Flown Airports
- Obtain Airport Information
- Obtain ATC Frequency Information
## Support
If you enjoyed skytrack, please consider [becoming a sponsor](https://github.com/sponsors/ANG13T) or donating on [buymeacoffee](https://www.buymeacoffee.com/angelinatsuboi) in order to fund my future projects.
To check out my other works, visit my [GitHub profile](https://github.com/ANG13T).
", Assign "at most 3 tags" to the expected json: {"id":"6098","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"