• Stars
    star
    519
  • Rank 85,261 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Google Earth Engine tool for identifying satellite radar interference.

Many military radars interfere with open source satellite imagery when they're turned on. A new tool lets anyone monitor when and where these radars are deployed. This repository contains the source code for this tool.

A Tour of the Bellingcat Radar Interference Tracker

Below is a screenshot of the tool in use with five labeled components, each of which we will look at individually. In this example, the tool is centered on a MIM-104 Patriot PAC-2 missile defense system stationed in Dammam, Saudi Arabia. The imagery displayed is an aggregate images taken in January, 2022.

  1. The dot at the center of the screen indicates the location at which Radio Frequency Interference (RFI) is being measured. Users can measure RFI at any location by simply clicking on the map at the point they wish to investigate.

  2. The graph on the left shows historical Radio Frequency Interference (RFI) at the location of the blue point in the center of the map. The red and blue stripes on the map correspond to the large spikes in this graph, which generally indicate the presence of a military radar or another source of C-band interference. In this example, we can see that this radar was turned on at some point in mid-2021. Hovering over the graph will display the date that the imagery was captured, and clicking on the graph will load imagery from that period. Users can download the graph by clicking on the button

  3. This line indicates the date and level of aggregation (year, month, day) of the imagery being displayed.

  4. The dropdown menu allows users to aggregate satellite imagery at three levels; Aggregating by year is time consuming, but useful for dragnet monitoring. If a radar is detected at any point in a given year, it will be visible in this layer. Aggregating by month or day is much quicker, and useful if you’ve already found a radar and want to investigate it further. The opacity of the radar layer can be toggled with the slider on the right.

  5. To visit the locations of known radars, select one of the locations from this dropdown menu.

How it works

While most satellite imagery is optical, meaning it captures sunlight reflected by the earth’s surface, Synthetic Aperture Radar (SAR) satellites such as Sentinel-1 work by emitting pulses of radio waves and measuring how much of the signal is reflected back. This is similar to the way a bat uses sonar to “see” in the dark: by emitting calls and listening to echoes.

Coincidentally, the radars on some missile defence batteries and other military radars operate using frequencies in the NATO G-band (4,000 to 6,000 Gigahertz) which overlaps with the civilian C-band (4,000, to 8,000 Gigahertz), commonly used by open source SAR satellites.

In the simplest terms, this means that when the radar on the likes of a Patriot battery is turned on, Sentinel-1 picks up both the echo from its own pulse of radio waves, as well as a powerful blast of radio waves from the ground-based radar. This shows up as a stripe of interference perpendicular to the orbital path of the satellite:

Sentinel-1 works by illuminating a 250 kilometre (km) long and 5km wide swath of land below the satellite with a pulse of C-band radio waves. If a powerful ground-based radar creates interference, the entire 250-by-5 km swath in which it is located will be affected, creating a bright stripe in the image.

Other military radars that operate on the same C-band frequency include naval radars such as the Japanese FCS-3, the Chinese Type-381 and the Russian S-400 Surface to Air Missile system. All should be detectable when switched on and in view of Sentinel-1.

How to find a military radar

in order to monitor a large area for the presence of ground-based radars in the past seven years, follow these steps:

  1. Navigate to your area of interest by dragging the map and zooming in or out.

  2. Where it says “Display imagery aggregated by”, select “Year” from the dropdown menu.

  3. Click on a random date in each year to load data from that entire year

    • For example, clicking on June 10th, 2018 will load a composite image for all of 2018.
    • Repeat this for each year.
  4. If you spot interference, click on it to reveal the dates that the signal is detected.

  5. Zoom to the interference stripe and gradually decrease opacity to find the source of the interference using the high resolution satellite basemap.

More Repositories

1

octosuite

GitHub Data Analysis Framework.
Python
1,786
star
2

telegram-phone-number-checker

Check if phone numbers are connected to Telegram accounts.
Python
1,056
star
3

instagram-location-search

Finds Instagram location IDs near a specified latitude and longitude.
Python
548
star
4

auto-archiver

Automatically archive links to videos, images, and social media content from Google Sheets (and more).
Python
532
star
5

open-questions

Want to contribute? These are difficult, long-term projects that could be valuable to open source investigators at Bellingcat and around the world.
Jupyter Notebook
328
star
6

tiktok-hashtag-analysis

Provides tools to analyze hashtags within posts scraped from TikTok.
Python
298
star
7

ukraine-timemap

TimeMap instance for Civilian Harm in Ukraine
JavaScript
243
star
8

ShadowFinder

Find possible locations of shadows around the world
Python
223
star
9

open-source-research-notebooks

Jupyter notebooks helping open source researchers, journalists, and fact-checkers use command line tools and code projects for digital investigations.
Jupyter Notebook
195
star
10

wayback-google-analytics

A lightweight tool for scraping current and historic Google Analytics data
Python
181
star
11

osm-search

A user friendly way to search OpenStreetMap data for features in proximity to each other.
Vue
161
star
12

EDGAR

Tool for the retrieval of corporate and financial data from the SEC
Python
105
star
13

reddit-post-scraping-tool

Given a subreddit name and a keyword, this program returns all top (by default) posts that contain the specified keyword.
Visual Basic .NET
80
star
14

whisperbox-transcribe

Easy to deploy API for transcribing and translating audio / video using OpenAI's whisper model.
Python
59
star
15

cloud-free-subregion

Google Earth Engine application that finds Sentinel-2 images that are cloud-free in a particular area of interest.
JavaScript
54
star
16

tiktok-timestamp

A tiny client side tool that retrieves the timestamp from Tiktok videos.
HTML
45
star
17

name-variant-search

A tool for searching common variations of a human name
JavaScript
40
star
18

vk-url-scraper

Scrape VK URLs to fetch info and media - python API or command line tool.
Python
40
star
19

knewkarma

A Reddit data analysis toolkit
Python
39
star
20

avoc

Working repo for the 2024 Bellingcat Tech Fellowship.
CSS
36
star
21

geoclustering

Command-line tool for clustering geolocations 📍
Python
30
star
22

uniform-timezone

Extension to standardize dates and times to the same timezone across social media websites.
JavaScript
30
star
23

facebook-downloader

Facebook video downloader
Python
26
star
24

twitter-geocode-searches

Analysis for "Geofenced Searches on Twitter: A Case Study Detailing South Asia’s Covid Crisis", published on May 19, 2021.
HTML
24
star
25

RS4OSINT

Guide to Remote Sensing for OSINT
TeX
23
star
26

google-apps-script

A collection of handy Google Apps Script code snippets
JavaScript
21
star
27

telegram-group-joiner

Online tool to automatically join public/private telegram groups.
JavaScript
18
star
28

cisticola

Coordinates scrapers and interfaces with database
Python
17
star
29

youtube-comment-scraper

A script to scrape youtube comments and checks whether a user commented on all of the given videos
Python
17
star
30

alias-generator

Node module to generate likely aliases for a given human name
JavaScript
16
star
31

polyphemus

Scraper for Odysee: alt-tech platform for sharing video
Python
14
star
32

quitobaquito

Methodology for "The Disappearance of Quitobaquito Springs: Tracking Hydrologic Change with Google Earth Engine," published on October 1, 2020.
Jupyter Notebook
12
star
33

hackathon-submission-template

Template repository and README for submissions to Bellingcat's Global Hackathon
9
star
34

o9a-product-scripts

Scripts used in research for a Bellingcat article about the Order of Nine Angles
Python
6
star
35

likee-downloader

A program for downloading videos from Likee, given a username
Python
4
star
36

gesara-entity-viz

Generates an interactive visualisation of named entities in English-language posts archived in a database of Telegram channels that have posted about the GESARA conspiracy theory.
TypeScript
3
star
37

vis-tj-kg-map-2022

Interactive map for the Tajikistan-Kyrgyzstan Border Clash 2022
JavaScript
2
star
38

search-grid-generator

A Vue App for quickly generating KML Search Grids
Vue
2
star
39

smart-image-sorter

User friendly zero-shot image classification using open-source models from HuggingFace's library
Jupyter Notebook
2
star
40

coronavirus-aid-data

Data for "What Restaurants and Maps Can Tell us About Billions of Dollars of Covid-19 Relief Funds," published on December 4, 2020.
2
star
41

who-killed-abelardo

visualization of audios in map
Vue
1
star
42

.github

Community health files and organization profile for @bellingcat
1
star