Member-only story

NATO AWACS flightpath analyse with Python

Johan Louwers

--

NATO AWACS

Disclaimer; this blogpost has been written based upon public available information only.

We’ve recently noticed increased interest from NATO partners in the ‘Gulf of Finland’ region. Multiple AWACS and SIGINT airframes have been observed simultaneously in this area, sparking various questions and discussions within the OSINT community. One such discussion revolves around whether St. Petersburg is within the scope of this interest. Essentially, the concern is whether the flight paths being conducted bring St. Petersburg within range of radar and SIGINT equipment.

NATO06 flight path on April the 11th 2024

Thanks to FlightRadar24, it’s relatively simple to track flights and download flight data. We’ve obtained the flight data from the NATO06 flight for analysis.

Interpret the base flight data

All .CSV files downloaded from FR24 that are present in a directory will be read by the below script. The script will combine all the files into a single .CSV file and make sure some required changes to the data structure are needed to be able to load this into Kepler.gl .

import pandas as pd
import glob

# Find all CSV files in the current directory
csv_files = glob.glob("*.csv")

df_list = []

# Iterate over each file and split the "Position" column into separate "Latitude" and "Longitude" columns
for file in csv_files:
df = pd.read_csv(file)
df["Position"] = df["Position"].str.replace('"','')
df[["Latitude", "Longitude"]] = df["Position"].str.split(",", expand=True)
df_list.append(df)

# Concatenate all the DataFrames into a single DataFrame
result = pd.concat(df_list, ignore_index=True)

# Create a new file with the "cleaned_merged_file.csv"
result.to_csv("cleaned_merged_file.csv", index=False)

By implementing the aforementioned logic in Python with our sample flight data and loading it into Kepler.gl, we can generate a visualization displaying the flight’s captured points from FR24, with colors indicating altitude.

--

--

No responses yet