diff --git a/js/tracker.js b/js/tracker.js
index cec13d8..aa9a54c 100644
--- a/js/tracker.js
+++ b/js/tracker.js
@@ -34,6 +34,14 @@ var launches = null;
var receiverCanvas = null;
var sondePrefix = ["RS92", "RS92-SGP", "RS92-NGP", "RS41", "RS41-SG", "RS41-SGP", "RS41-SGM", "DFM", "DFM06", "DFM09", "DFM17", "M10", "M20", "iMet-4", "iMet-54", "LMS6", "LMS6-400", "LMS6-1680", "iMS-100", "MRZ", "chase"];
+var sondeCodes = {
+ "07":"iMet-1", "11":"LMS6-403", "13":"RS92", "14":"RS92", "17":"DFM-09", "19":"MRZ-N1", "22":"RS-11G", "23":"RS41", "24":"RS41", "34":"iMet-4", "35":"iMS-100", "41":"RS41", "42":"RS41", "52":"RS92-NGP", "54":"DFM-17",
+ "62":"MRZ-3MK", "63":"M20", "77":"M10", "82":"LMS6-1680", "84":"iMet-54"
+};
+var unsupportedSondeCodes = {
+ "15":"PAZA-12M", "16":"PAZA-22", "18":"DFM-06", "20":"MK3", "21":"1524LA LORAN-C/GL5000", "26":"SRS-C34", "27":"AVK-MRZ", "28":"AVK–AK2-02", "29":"MARZ2-2", "30":"RS2-80", "33":"GTS1-2/GFE(L)", "45":"CF-06", "58":"AVK-BAR",
+ "59":"M2K2-R", "68":"AVK-RZM-2", "69":"MARL-A/Vektor-M-RZM-2", "73":"MARL-A", "78":"RS90", "80":"RS92", "88":"MARL-A/Vektor-M-MRZ", "89":"MARL-A/Vektor-M-BAR", "97":"iMet-2", "99":"iMet-2"
+};
var got_positions = false;
var zoomed_in = false;
@@ -821,28 +829,27 @@ function showLaunchSites() {
for (var key in json) {
if (json.hasOwnProperty(key)) {
var latlon = [json[key].lat, json[key].lon];
- var sondes = json[key].rs_types.toString();
- sondes = sondes.replace(new RegExp("\\b07\\b"), "iMet-1 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b11\\b"), "LMS6-403 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b13\\b"), "RS92 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b14\\b"), "RS92 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b17\\b"), "DFM-09 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b19\\b"), "MRZ-N1 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b21\\b"), "RS-11G (possible to track)");
- sondes = sondes.replace(new RegExp("\\b22\\b"), "RS-11G (possible to track)");
- sondes = sondes.replace(new RegExp("\\b23\\b"), "RS41 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b24\\b"), "RS41 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b34\\b"), "iMet-4 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b35\\b"), "iMS-100 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b41\\b"), "RS41 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b42\\b"), "RS41 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b52\\b"), "RS92-NGP (possible to track)");
- sondes = sondes.replace(new RegExp("\\b54\\b"), "DFM-17 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b62\\b"), "MRZ-3MK (possible to track)");
- sondes = sondes.replace(new RegExp("\\b63\\b"), "M20 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b77\\b"), "M10 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b82\\b"), "LMS6-1680 (possible to track)");
- sondes = sondes.replace(new RegExp("\\b84\\b"), "iMet-54 (possible to track)");
+ var sondes = json[key].rs_types;
+ var sondesList = "";
+ for (var y = 0; y < sondes.length; y++) {
+ if (Array.isArray(sondes[y]) == false) {
+ sondes[y] = [sondes[y]];
+ }
+ if (sondeCodes.hasOwnProperty(sondes[y][0])) {
+ sondesList += sondeCodes[sondes[y][0]]
+ if (sondes[y].length > 1) {
+ sondesList += " (" + sondes[y][1] + " MHz)";
+ }
+ } else if (unsupportedSondeCodes.hasOwnProperty(sondes[y][0])) {
+ sondesList += unsupportedSondeCodes[sondes[y][0]];
+ sondesList += " (cannot track)";
+ } else {
+ sondesList += sondes[y][0] + " (unknown WMO code)";
+ }
+ if (y < sondes.length-1) {
+ sondesList += ", ";
+ }
+ }
var marker = new L.circleMarker(latlon, {color: '#696969', fillColor: "white", radius: 8});
var popup = new L.popup({ autoClose: false, closeOnClick: false });
marker.bindPopup(popup);
@@ -871,11 +878,11 @@ function showLaunchSites() {
if (tempDate) {
if (date < tempDate) {
tempDate = date;
- popupContent = "" + json[key].station_name + "
Sondes launched: " + sondes + "
Next launch: " + date.toString();
+ popupContent = "" + json[key].station_name + "
Sondes launched: " + sondesList + "
Next launch: " + date.toString();
}
} else {
tempDate = date;
- popupContent = "" + json[key].station_name + "
Sondes launched: " + sondes + "
Next launch: " + date.toString();
+ popupContent = "" + json[key].station_name + "
Sondes launched: " + sondesList + "
Next launch: " + date.toString();
}
}
var ascent_rate = 5;
@@ -921,7 +928,7 @@ function showLaunchSites() {
popupContent += "
Know when this site launches? Contribute here";
popupContent += "
";
} else {
- popupContent = "" + json[key].station_name + "
Sondes launched: " + sondes;
+ popupContent = "" + json[key].station_name + "
Sondes launched: " + sondesList;
popupContent += "
Know when this site launches? Contribute here";
}
popup.setContent(popupContent);
diff --git a/launchSites.json b/launchSites.json
index 357c6b7..b58aad4 100644
--- a/launchSites.json
+++ b/launchSites.json
@@ -668,7 +668,7 @@
{"station":"94711","rs_types":["42"],"lat":-31.4839,"lon":145.8294,"alt":264,"station_name":"Cobar (Australia)","times":["3:00:00","4:00:00","6:00:00"]},
{"station":"94750","rs_types":["41"],"lat":-34.9469,"lon":150.5353,"alt":122,"station_name":"Nowra Ran Air Station (Australia)"},
{"station":"94767","rs_types":["41"],"lat":-33.9464,"lon":151.1731,"alt":6,"station_name":"Sydney Airport (Australia)","times":["0:21:00"]},
- {"station":"94776","rs_types":["42"],"lat":-32.7933,"lon":151.8358,"alt":9,"station_name":"Williamtown Aerodrome (Australia)","times":["0:00:00"]},
+ {"station":"94776","rs_types":[["42","402.500"]],"lat":-32.7933,"lon":151.8358,"alt":9,"station_name":"Williamtown Aerodrome (Australia)","times":["0:00:00"]},
{"station":"94802","rs_types":["42"],"lat":-34.9414,"lon":117.8022,"alt":71,"station_name":"Albany Airport (Australia)","times":["4:00:00","5:00:00","6:00:00","2:00:00"]},
{"station":"94821","rs_types":["42"],"lat":-37.7472,"lon":140.7739,"alt":65,"station_name":"Mount Gambier Aerodrome (Australia)","times":["4:00:00","1:00:00"]},
{"station":"94866","rs_types":["41"],"lat":-37.6656,"lon":144.8322,"alt":132,"station_name":"Melbourne Airport (Australia)","times":["0:12:00","0:00:00"]},