Skip to content

Instantly share code, notes, and snippets.

@klinquist
Created September 7, 2021 13:50
Show Gist options
  • Save klinquist/4cc5d539eb099d2aefdeec5fa2f036e5 to your computer and use it in GitHub Desktop.
Save klinquist/4cc5d539eb099d2aefdeec5fa2f036e5 to your computer and use it in GitHub Desktop.
Count APRS radios in use by region
const aprs = require('aprs-parser');
const stream = new aprs.APRSISConnector;
stream.connect('W1ADV');
const geolib = require('geolib');
const stats = {
us: {},
eu: {},
jp: {}
};
stream.on('aprs', (event) => {
const radio = event && event.data && event.data.radio;
if (radio && event.data.latitude && event.data.longitude) {
let dist;
dist = geolib.getDistance({ latitude: event.data.latitude, longitude: event.data.longitude }, { latitude: 37.090200, longitude: -95.712900 });
if (dist < 2574950) {
if (!stats.us[radio]) {
stats.us[radio] = 0;
}
stats.us[radio]++;
}
dist = geolib.getDistance({ latitude: event.data.latitude, longitude: event.data.longitude }, { latitude: 54.526000, longitude: 15.255100 });
if (dist < 2574950) {
if (!stats.eu[radio]) {
stats.eu[radio] = 0;
}
stats.eu[radio]++;
}
dist = geolib.getDistance({ latitude: event.data.latitude, longitude: event.data.longitude }, { latitude: 36.5314844, longitude: 138.0617335 });
if (dist < 965606) {
if (!stats.jp[radio]) {
stats.jp[radio] = 0;
}
stats.jp[radio]++;
}
}
});
setInterval(() => {
console.log(stats);
},60000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment