From 2251f25fcb1c8438d105d6ac76d2b075b3d4fd37 Mon Sep 17 00:00:00 2001
From: "Kasper D. Fischer"
Date: Tue, 14 Jul 2020 19:31:46 +0200
Subject: [PATCH] Integrating changes made on web server
---
www/.htaccess | 6 +++++
www/events.js | 45 ++++++++++++++++----------------
www/events.js.en | 45 ++++++++++++++++----------------
www/index.html.en | 5 +++-
www/map.js | 38 ++++++++++++++++-----------
www/map.js.en | 62 +++++++++++++++++++++++++++++---------------
www/misc.js | 25 +++++++++++++-----
www/specialevents.js | 27 +++++++++++++++++--
www/stations.js | 56 ++++++++++++++++++++++++++++++---------
www/stations.js.en | 60 ++++++++++++++++++++++++++++++++----------
10 files changed, 253 insertions(+), 116 deletions(-)
diff --git a/www/.htaccess b/www/.htaccess
index 605d2f4..93cdb28 100644
--- a/www/.htaccess
+++ b/www/.htaccess
@@ -1 +1,7 @@
Allow from all
+Header always set Access-Control-Allow-Origin "https://fdsnws.geophysik.ruhr-uni-bochum.de"
+Header always append Access-Control-Allow-Origin "https://photon.komoot.de"
+Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
+Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
+Header always set Access-Control-Expose-Headers "Content-Security-Policy, Location"
+Header always set Access-Control-Max-Age "600"
diff --git a/www/events.js b/www/events.js
index 3bc68e5..6cd209f 100644
--- a/www/events.js
+++ b/www/events.js
@@ -40,27 +40,23 @@ function addTableRow(row, table) {
/* do reverse geolocation lookup */
function getGeolocation(id, lat, lng) {
- if ( !geolocationTable[id] ) {
+ if ( $.inArray(id, geolocationTable) == -1 ) {
$.getJSON( config['ajax']['nominatimURL'], { lat: lat, lon: lng } )
.done(function( json ) {
- var city = json.address["city"];
- if ( ~city ) { city = json.address["town"]; };
- if ( ~city ) { city = json.address["village"]; };
- var country = json.address["country"];
- var countryCode = json.address["country_code"].toUpperCase();
- var city = json.features[0].properties.city;
- var countryCode = json.features[0].properties.country;
- geolocationTable[id] = city;
- ( countryCode != "DE" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
- ( countryCode != "Germany" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
- if ( city ) {
- $("#eventstable a.toggle[eventid="+id+"]").text(geolocationTable[id]);
- var sort = [[0,1],[1,1],[2,1]];
- $("#eventstable").trigger("update", [true]);
- $("#eventstable").trigger("updateCache");
- $("#eventstable").trigger("sorton", [sort]);
- } else {
- // console.log("Nominatim did not provide a city tag for "+lat+" / "+lng);
+ if ( json.features[0] ) {
+ var city = json.features[0].properties.city;
+ var countryCode = json.features[0].properties.country;
+ geolocationTable[id] = city;
+ ( countryCode != "Germany" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
+ if ( city ) {
+ $("#eventstable a.toggle[eventid="+id+"]").text(geolocationTable[id]);
+ var sort = [[0,1],[1,1],[2,1]];
+ $("#eventstable").trigger("update", [true]);
+ $("#eventstable").trigger("updateCache");
+ $("#eventstable").trigger("sorton", [sort]);
+ } else {
+ // console.log("Nominatim did not provide a city tag for "+lat+" / "+lng);
+ };
};
})
.fail(function( jqxhr, textStatus, error ) {
@@ -93,7 +89,7 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
} else {
request_data = {
starttime: sprintf("%d-%02d-%02d", rtime.getFullYear(), rtime.getMonth()+1, rtime.getDate()),
- orderby: 'time',
+ orderby: 'time-asc',
minlat: sprintf('%.2f', mapBounds.getSouth()-config['map']['latlngDelta']),
maxlat: sprintf('%.2f', mapBounds.getNorth()+config['map']['latlngDelta']),
minlon: sprintf('%.2f', mapBounds.getWest()-config['map']['latlngDelta']),
@@ -124,7 +120,7 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
var type = $(this).find('type').last().text();
var location
// create table row: Date, Time, Mag, Location
- if ( !eventTable[id] && $.inArray(type, config['event']['typeWhitelist'] )+1 && $.inArray(evaluationStatus, config['event']['evaluationBlacklist'])<0 && Number(mag)+0.05 >= config['event']['minMag'] ) {
+ if ( !eventTable[id] && $.inArray(type, config['event']['typeWhitelist'] ) >= 0 && $.inArray(evaluationStatus, config['event']['evaluationBlacklist'])<0 && Number(mag)+0.05 >= config['event']['minMag'] ) {
geolocationTable[id] ? null : getGeolocation(id, lat, lng); // do AJAX lookup if not cached, location will be updated later
location = ( geolocationTable[id] || getLocation(lat, lng)[0] || $(this).find('description > text').text() );
// general event info (1st line)
@@ -432,7 +428,12 @@ $(document).ready(function() {
typetext += '(bergbau-)induziertes Ereignis (Kreis)';
break;
case 'quarry blast':
- typetext += 'Steinbruchsprengung (Rad)';
+ case 'controlled explosion':
+ case 'explosion':
+ typetext += 'Sprengung (Rad)';
+ break;
+ case 'nuclear explosion':
+ typetext += 'Atomwaffentest (Viereck)';
break;
};
$("#events-type").append(typetext);
diff --git a/www/events.js.en b/www/events.js.en
index 0c7c3c2..e06e2c9 100644
--- a/www/events.js.en
+++ b/www/events.js.en
@@ -40,27 +40,23 @@ function addTableRow(row, table) {
/* do reverse geolocation lookup */
function getGeolocation(id, lat, lng) {
- if ( !geolocationTable[id] ) {
+ if ( $.inArray(id, geolocationTable) == -1 ) {
$.getJSON( config['ajax']['nominatimURL'], { lat: lat, lon: lng } )
.done(function( json ) {
- var city = json.address["city"];
- if ( ~city ) { city = json.address["town"]; };
- if ( ~city ) { city = json.address["village"]; };
- var country = json.address["country"];
- var countryCode = json.address["country_code"].toUpperCase();
- var city = json.features[0].properties.city;
- var countryCode = json.features[0].properties.country;
- geolocationTable[id] = city;
- ( countryCode != "DE" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
- ( countryCode != "Germany" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
- if ( city ) {
- $("#eventstable a.toggle[eventid="+id+"]").text(geolocationTable[id]);
- var sort = [[0,1],[1,1],[2,1]];
- $("#eventstable").trigger("update", [true]);
- $("#eventstable").trigger("updateCache");
- $("#eventstable").trigger("sorton", [sort]);
- } else {
- // console.log("Nominatim did not provide a city tag for "+lat+" / "+lng);
+ if ( json.features[0] ) {
+ var city = json.features[0].properties.city;
+ var countryCode = json.features[0].properties.country;
+ geolocationTable[id] = city;
+ ( countryCode != "Germany" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
+ if ( city ) {
+ $("#eventstable a.toggle[eventid="+id+"]").text(geolocationTable[id]);
+ var sort = [[0,1],[1,1],[2,1]];
+ $("#eventstable").trigger("update", [true]);
+ $("#eventstable").trigger("updateCache");
+ $("#eventstable").trigger("sorton", [sort]);
+ } else {
+ // console.log("Nominatim did not provide a city tag for "+lat+" / "+lng);
+ };
};
})
.fail(function( jqxhr, textStatus, error ) {
@@ -93,7 +89,7 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
} else {
request_data = {
starttime: sprintf("%d-%02d-%02d", rtime.getFullYear(), rtime.getMonth()+1, rtime.getDate()),
- orderby: 'time',
+ orderby: 'time-asc',
minlat: sprintf('%.2f', mapBounds.getSouth()-config['map']['latlngDelta']),
maxlat: sprintf('%.2f', mapBounds.getNorth()+config['map']['latlngDelta']),
minlon: sprintf('%.2f', mapBounds.getWest()-config['map']['latlngDelta']),
@@ -123,8 +119,8 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
var evaluationStatus = $(this).find('origin > evaluationStatus').text();
var type = $(this).find('type').last().text();
var location
- // get location, try this in order:
- if ( !eventTable[id] && $.inArray(type, config['event']['typeWhitelist'] )+1 && $.inArray(evaluationStatus, config['event']['evaluationBlacklist'])<0 && Number(mag)+0.05 >= config['event']['minMag'] ) {
+ // create table row: Date, Time, Mag, Location
+ if ( !eventTable[id] && $.inArray(type, config['event']['typeWhitelist'] ) >= 0 && $.inArray(evaluationStatus, config['event']['evaluationBlacklist'])<0 && Number(mag)+0.05 >= config['event']['minMag'] ) {
geolocationTable[id] ? null : getGeolocation(id, lat, lng); // do AJAX lookup if not cached, location will be updated later
location = ( geolocationTable[id] || getLocation(lat, lng)[0] || $(this).find('description > text').text() );
// general event info (1st line)
@@ -432,8 +428,13 @@ $(document).ready(function() {
typetext += '(mining-)induced event (circle)';
break;
case 'quarry blast':
+ case 'controlled explosion':
+ case 'explosion':
typetext += 'quarry blast (wheel)';
break;
+ case 'nuclear explosion':
+ typetext += 'nuclear weapon test (square)';
+ break;
};
$("#events-type").append(typetext);
});
diff --git a/www/index.html.en b/www/index.html.en
index 47b3175..7d1e4e2 100755
--- a/www/index.html.en
+++ b/www/index.html.en
@@ -40,6 +40,9 @@
+
+
+
@@ -115,7 +118,7 @@
Symbols:
- Nominatim Search Courtesy of MapQuest
+ Reverse Geolocation courtesy of Photon by Komoot
diff --git a/www/map.js b/www/map.js
index d1e1dfd..5d7fd21 100644
--- a/www/map.js
+++ b/www/map.js
@@ -17,7 +17,7 @@
for more details.
You should have received a copy of the GNU General Public License along
- with this program. If not, see http://www.gnu.org/licenses/.
+ with this program. If not, see https://www.gnu.org/licenses/.
$Id$
*/
@@ -61,6 +61,12 @@ function addEventMarker(id, lat, lng, mag, type) {
case 'earthquake':
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
break;
+ case 'nuclear explosion':
+ markerOptions['numberOfSides'] = 4;
+ markerOptions['radius'] = 2.0*markerOptions['radius'];
+ markerOptions['innerRadius'] = 0.3*markerOptions['radius'];
+ marker = L.regularPolygonMarker(L.latLng(lat, lng), markerOptions);
+ break;
case 'explosion':
markerOptions['numberOfSides'] = 6;
markerOptions['radius'] = 2.0*markerOptions['radius'];
@@ -68,6 +74,7 @@ function addEventMarker(id, lat, lng, mag, type) {
marker = L.regularPolygonMarker(L.latLng(lat, lng), markerOptions);
break;
case 'quarry blast':
+ case 'controlled explosion':
markerOptions['numberOfPoints'] = 7;
markerOptions['innerRadius'] = 0.3*markerOptions['radius'];
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
@@ -138,9 +145,9 @@ $(document).ready(function() {
switch ( config['map']['baselayer'] ) {
case 'osmde': // add OpenStreetMap.DE tile layer
map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
- L.tileLayer('http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png',
+ L.tileLayer('https://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png',
{
- attribution: '© OpenStreetMap contributors, CC-BY-SA',
+ attribution: '© OpenStreetMap contributors, CC-BY-SA',
}).addTo(map);
break;
case 'esrigray': // add ESRI Grayscale World Map (neither city nor road names)
@@ -153,7 +160,7 @@ $(document).ready(function() {
break;
case 'aerial': // add ESRI WordImagery tile layer
map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
- L.tileLayer('http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
+ L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
{
attribution: 'Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community'
}).addTo(map);
@@ -162,18 +169,19 @@ $(document).ready(function() {
map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
L.tileLayer('//www.komoot.de/tiles/{s}/{z}/{x}/{y}.png',
{
- attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of Komoot',
+ attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of Komoot',
}).addTo(map);
break;
case 'mapquestgray': // add MapQuestOSM tile layer
- map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
- L.tileLayer.grayscale('http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
- {
- subdomains: '1234',
- detectRetina: true,
- attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of MapQuest ',
- }).addTo(map);
- break;
+ null;
+ // map = L.map('map', { zoomControl: false, worldCopyJump: true, layers: mapLayer }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
+ // L.tileLayer.grayscale('https://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
+ // {
+ // subdomains: '1234',
+ // detectRetina: true,
+ // attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of MapQuest ',
+ //}).addTo(map);
+ //break;
case 'mapquest': // add MapQuestOSM tile layer
null;
default:
@@ -183,11 +191,11 @@ $(document).ready(function() {
worldCopyJump: true,
layers: mapLayer,
}).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
- //L.tileLayer('http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
+ //L.tileLayer('https://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
//{
//subdomains: '1234',
//detectRetina: true,
- //attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of MapQuest ',
+ //attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of MapQuest ',
//}).addTo(map);
};
diff --git a/www/map.js.en b/www/map.js.en
index 6281eb5..7a46b22 100644
--- a/www/map.js.en
+++ b/www/map.js.en
@@ -17,7 +17,7 @@
for more details.
You should have received a copy of the GNU General Public License along
- with this program. If not, see http://www.gnu.org/licenses/.
+ with this program. If not, see https://www.gnu.org/licenses/.
$Id$
*/
@@ -61,6 +61,12 @@ function addEventMarker(id, lat, lng, mag, type) {
case 'earthquake':
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
break;
+ case 'nuclear explosion':
+ markerOptions['numberOfSides'] = 4;
+ markerOptions['radius'] = 2.0*markerOptions['radius'];
+ markerOptions['innerRadius'] = 0.3*markerOptions['radius'];
+ marker = L.regularPolygonMarker(L.latLng(lat, lng), markerOptions);
+ break;
case 'explosion':
markerOptions['numberOfSides'] = 6;
markerOptions['radius'] = 2.0*markerOptions['radius'];
@@ -68,6 +74,7 @@ function addEventMarker(id, lat, lng, mag, type) {
marker = L.regularPolygonMarker(L.latLng(lat, lng), markerOptions);
break;
case 'quarry blast':
+ case 'controlled explosion':
markerOptions['numberOfPoints'] = 7;
markerOptions['innerRadius'] = 0.3*markerOptions['radius'];
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
@@ -133,19 +140,19 @@ function initMapLink() {
$(document).ready(function() {
// create a map in the "map" div, set the view to a given place and zoom
- map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
- new L.Control.Zoom({ position: 'topright' }).addTo(map);
- new L.control.scale({position: 'bottomright', imperial: false}).addTo(map);
+
// create baselayer
switch ( config['map']['baselayer'] ) {
case 'osmde': // add OpenStreetMap.DE tile layer
- L.tileLayer('http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png',
+ map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
+ L.tileLayer('https://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png',
{
- attribution: '© OpenStreetMap contributors, CC-BY-SA',
+ attribution: '© OpenStreetMap contributors, CC-BY-SA',
}).addTo(map);
break;
case 'esrigray': // add ESRI Grayscale World Map (neither city nor road names)
+ map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
L.tileLayer('//server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}',
{
attribution: 'Tiles © Esri — Esri, DeLorme, NAVTEQ',
@@ -153,35 +160,48 @@ $(document).ready(function() {
}).addTo(map);
break;
case 'aerial': // add ESRI WordImagery tile layer
- L.tileLayer('http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
+ map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
+ L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
{
attribution: 'Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community'
}).addTo(map);
break;
case 'komoot': // add OpenStreetMap.DE tile layer
+ map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
L.tileLayer('//www.komoot.de/tiles/{s}/{z}/{x}/{y}.png',
{
- attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of Komoot',
+ attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of Komoot',
}).addTo(map);
break;
case 'mapquestgray': // add MapQuestOSM tile layer
- L.tileLayer.grayscale('http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
- {
- subdomains: '1234',
- detectRetina: true,
- attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of MapQuest ',
- }).addTo(map);
- break;
+ null;
+ // map = L.map('map', { zoomControl: false, worldCopyJump: true, layers: mapLayer }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
+ // L.tileLayer.grayscale('https://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
+ // {
+ // subdomains: '1234',
+ // detectRetina: true,
+ // attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of MapQuest ',
+ //}).addTo(map);
+ //break;
case 'mapquest': // add MapQuestOSM tile layer
null;
default:
- L.tileLayer('http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
- {
- subdomains: '1234',
- detectRetina: true,
- attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of MapQuest ',
- }).addTo(map);
+ var mapLayer = MQ.mapLayer();
+ map = L.map('map', {
+ zoomControl: false,
+ worldCopyJump: true,
+ layers: mapLayer,
+ }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
+ //L.tileLayer('https://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
+ //{
+ //subdomains: '1234',
+ //detectRetina: true,
+ //attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA | Tiles Courtesy of MapQuest ',
+ //}).addTo(map);
};
+ // add controls
+ new L.Control.Zoom({ position: 'topright' }).addTo(map);
+ new L.control.scale({position: 'bottomright', imperial: false}).addTo(map);
// create station and event layer
// stationLayer = L.geoJson().addTo(map);
diff --git a/www/misc.js b/www/misc.js
index e249cc4..d0a8c31 100644
--- a/www/misc.js
+++ b/www/misc.js
@@ -91,10 +91,10 @@ var stationTable = {};
var config = {
ajax: {
timeout: 20000, // 20 seconds
- eventURL: '/fdsnws/event/1/query',
+ eventURL: 'https://fdsnws.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query',
dlsvURL: 'dlsv',
- mseedURL: '/fdsnws/dataselect/1/query',
- stationURL: '/fdsnws/station/1/query',
+ mseedURL: 'https://fdsnws.geophysik.ruhr-uni-bochum.de/fdsnws/dataselect/1/query',
+ stationURL: 'https://fdsnws.geophysik.ruhr-uni-bochum.de/fdsnws/station/1/query',
nominatimURL: 'https://photon.komoot.de/reverse',
timespan: 180,
},
@@ -105,7 +105,9 @@ var config = {
markerColorH: 'red',
minMag: 1.2,
minMagDelta: 0.1,
- typeWhitelist: ['earthquake', 'induced or triggered event', 'quarry blast', 'explosion'],
+ typeWhitelist: ['earthquake', 'induced or triggered event', 'controlled explosion'],
+ // typeWhitelist: ['earthquake', 'induced or triggered event', 'controlled explosion', 'nuclear explosion'],
+ // typeWhitelist: ['earthquake', 'induced or triggered event'],
},
map: {
zoomDefault: 9,
@@ -128,7 +130,11 @@ var config = {
NL_WIT: 3,
NL_WTSB: 3,
},
- networkBlacklist: ['NL', 'X5'],
+ networkBlacklist: ['NL', 'X5', '1A', 'AM'],
+ stationBlacklist: ['RN_WEA2', 'RN_ACN', 'RN_BHE', 'RN_ENT', 'RN_GSH', 'RN_HES', 'RN_JCKS', 'RN_LOH',
+ 'RN_OLF', 'RN_PLH', 'RN_RWB', 'RN_SOR', 'RN_TDN', 'RN_WBS',
+ 'RN_HAM1', 'RN_HAM2', 'RN_HAM3', 'RN_HAM4', 'RN_HAM5', 'RN_HAM6', 'RN_HAM7', 'RN_HAM8', 'RN_HAM9',
+ 'RN_HAM10', 'RN_HAM11', 'RN_HAM12', 'RN_HAM13', 'RN_HAM14', 'RN_HAM15', 'RN_HAM16', 'RN_HAM17'],
},
tab: {
active: 0,
@@ -139,13 +145,18 @@ var config = {
var networkURL = {
GE: 'http://dx.doi.org/10.14470/TR560404',
GR: 'http://www.bgr.bund.de/DE/Themen/Erdbeben-Gefaehrdungsanalysen/Seismologie/Seismologie/Seismometer_Stationen/Stationsnetze/d_stationsnetz_node.html',
+ NH: 'http://www.gd.nrw.de/gg_le.htm',
NL: 'http://www.knmi.nl/seismologie/seismisch_network_knmi3.html',
+ RN: 'https://doi.org/10.7914/SN/RN',
+ YD: 'https://doi.org/10.7914/SN/YD_2020',
};
var networkText = {
- GE: 'GEOFON Program, GFZ Potsdam',
+ GE: 'GEOFON Seismic Network - Deutsches GeoForschungsZentrum GFZ',
GR: 'German Regional Seismic Network, BGR Hannover',
+ NH: 'Geologischer Dienst NRW, Krefeld',
NL: 'Netherlands Seismic Network, The Netherlands',
- RN: 'RuhrNet - Ruhr-University Bochum, Germany',
+ RN: 'RuhrNet - Ruhr-University Bochum, Germany',
+ YD: 'FloodRisk Seismic Network',
};
var bochumStation = ['BUG', 'IBBN', 'KERA', 'KARP'];
diff --git a/www/specialevents.js b/www/specialevents.js
index 5ecfd56..057017a 100644
--- a/www/specialevents.js
+++ b/www/specialevents.js
@@ -9,6 +9,29 @@ var specialEvents = [
//'bug2014ilxd', // Bassum
//'bug2014gfzw', // Darmstadt
//'bug2014datb', // Groningen
- 'bug2013yvko', // Haltern 3.4
- 'bug2015fdpy', // Darmstadt 3.0
+ // 'bug2013yvko', // Haltern 3.4
+ // 'bug2015fdpy', // Darmstadt 3.0
+ // 'bug2016ajgm', // CTBT violation North Korea
+ // 'bug2016cqkd', // Taunusstein 2.5
+ // 'bug2016hdae', // Aldenhoven 2.6
+ // 'bug2016hdaj', // Aldenhoven 2.4
+ // 'bug2016kkrq', // Bottrop 3.3
+ // 'bug2016qphy', // Central Italy 6.1
+ // 'bug2016rslt', // CTBT violation North Korea
+ // 'bug2016ueqo', // Darmstadt 2.4
+ // 'bug2016ufpi', // Darmstadt 3.0
+ // 'bug2016vico', // Central Italy 6.5
+ // 'bug2016vrnc', // Nörvenich 3.2
+ // 'bug2016zawb', // St Goar 3.2
+ // 'bug2017iyhl', // Hürtgenwald 2.1
+ // 'bug2017omwg', // Brühl 2.3
+ // 'bug2017rfxe', // CTBT violation North Korea 6.1
+ // 'bug2017rjvq', // Dreieich / Hessen 2.6
+ // 'bug2017vxmm', // Brühl / Hürth 3.1
+ // 'bug2018nyax' // Ochtendung 2.7
+ // 'bug2019cxga', // Ochtendung 3.0
+ // 'bug2019czbt', // Ochtendung 2.9
+ // 'bug2019fura', // Sprengung Duisburg-Hochheide (Weißer Riese) 2.0
+ // 'bug2019yeij', // Tektonisch, Hambach 2.2
+ 'bug2020fqxf' // Meckenheim, 2.5
];
diff --git a/www/stations.js b/www/stations.js
index fb41de5..00982ea 100644
--- a/www/stations.js
+++ b/www/stations.js
@@ -23,7 +23,7 @@
*/
/* Load the stations using ajax */
-function loadStations(stime, etime) {
+function loadStations(station, stime, etime) {
var mapBounds = map.getBounds();
var N = mapBounds.getNorth();
var E = mapBounds.getEast();
@@ -37,14 +37,23 @@ function loadStations(stime, etime) {
var etime = new Date();
etime.setDate(etime.getDate()+1);
};
- var request_data = {
- endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
- startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
- level: 'channel',
- minlat: S-config['map']['latlngDelta'],
- maxlat: N+config['map']['latlngDelta'],
- minlon: W-config['map']['latlngDelta'],
- maxlon: E+config['map']['latlngDelta'],
+ if ( !station ) {
+ var request_data = {
+ endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
+ startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
+ level: 'station',
+ minlat: S-config['map']['latlngDelta'],
+ maxlat: N+config['map']['latlngDelta'],
+ minlon: W-config['map']['latlngDelta'],
+ maxlon: E+config['map']['latlngDelta'],
+ };
+ } else {
+ var request_data = {
+ endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
+ startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
+ level: 'channel',
+ station: station,
+ };
};
$.ajax({
type: "GET",
@@ -61,13 +70,13 @@ function loadStations(stime, etime) {
lng = $(this).find('Longitude:first').text(),
stationID = network+'_'+station,
stationText = network+'.'+station;
- if ( !stationTable[stationID] ) {
+ if ( !stationTable[stationID] && $.inArray(stationID, config['station']['stationBlacklist']) <0 ) {
// general station info (1st line)
var row = sprintf('%s | %s | %7.4f | %7.4f |
' , network, station, Number(lat), Number(lng));
// setting up network details (2nd line)
row += sprintf('%s', networkText[network] || '');
row += ( $.inArray(station, bochumStation)+1 ) ? ' Betreiber: Ruhr-Universität Bochum |
' : '' ;
- if ( network == 'RN' || network == 'X5' || $.inArray(station, bochumStation)+1 ) {
+ if ( network == 'RN' || network == 'Z3' || network == '1A' || network == 'YD' || $.inArray(station, bochumStation)+1 ) {
// setting up station details (3rd line)
row += '';
row += stationDetails(station, network, lat, lng, stationID, stationText, $(this));
@@ -114,7 +123,16 @@ function loadStations(stime, etime) {
}
});
// create stations csv download link
- request_data['format'] = 'text';
+ var request_data = {
+ endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
+ startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
+ level: 'station',
+ minlat: S-config['map']['latlngDelta'],
+ maxlat: N+config['map']['latlngDelta'],
+ minlon: W-config['map']['latlngDelta'],
+ maxlon: E+config['map']['latlngDelta'],
+ format: 'text',
+ };
$('#stations-csv-link').attr('href', config['ajax']['stationURL']+'?'+$.param(request_data));
};
@@ -205,6 +223,20 @@ function initStationTable() {
**********************************************************************/
$(document).ready(function() {
loadStations();
+ loadStations('A100A');
+ loadStations('A101B');
+ loadStations('A102A');
+ loadStations('A103A');
+ loadStations('A103B');
+ loadStations('A104A');
+ loadStations('A104B');
+ loadStations('A105A');
+ loadStations('A106B');
+ loadStations('A107C');
+ loadStations('A108A');
+ loadStations('A109A');
+ // loadStations('KERA');
+ // loadStations('KARP');
// show / hide station info
$('#stationstable').delegate('.toggle', 'click' , function(){
// toggle visibility of selected row
diff --git a/www/stations.js.en b/www/stations.js.en
index 255ec32..c20f615 100644
--- a/www/stations.js.en
+++ b/www/stations.js.en
@@ -23,7 +23,7 @@
*/
/* Load the stations using ajax */
-function loadStations(stime, etime) {
+function loadStations(station, stime, etime) {
var mapBounds = map.getBounds();
var N = mapBounds.getNorth();
var E = mapBounds.getEast();
@@ -37,14 +37,23 @@ function loadStations(stime, etime) {
var etime = new Date();
etime.setDate(etime.getDate()+1);
};
- var request_data = {
- endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
- startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
- level: 'channel',
- minlat: S-config['map']['latlngDelta'],
- maxlat: N+config['map']['latlngDelta'],
- minlon: W-config['map']['latlngDelta'],
- maxlon: E+config['map']['latlngDelta'],
+ if ( !station ) {
+ var request_data = {
+ endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
+ startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
+ level: 'station',
+ minlat: S-config['map']['latlngDelta'],
+ maxlat: N+config['map']['latlngDelta'],
+ minlon: W-config['map']['latlngDelta'],
+ maxlon: E+config['map']['latlngDelta'],
+ };
+ } else {
+ var request_data = {
+ endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
+ startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
+ level: 'channel',
+ station: station,
+ };
};
$.ajax({
type: "GET",
@@ -61,13 +70,13 @@ function loadStations(stime, etime) {
lng = $(this).find('Longitude:first').text(),
stationID = network+'_'+station,
stationText = network+'.'+station;
- if ( !stationTable[stationID] ) {
+ if ( !stationTable[stationID] && $.inArray(stationID, config['station']['stationBlacklist']) <0 ) {
// general station info (1st line)
var row = sprintf(' |
%s | %s | %7.4f | %7.4f |
' , network, station, Number(lat), Number(lng));
// setting up network details (2nd line)
row += sprintf('%s', networkText[network] || '');
- row += ( $.inArray(station, bochumStation)+1 ) ? ' Operator: Ruhr-University Bochum |
' : '' ;
- if ( network == 'RN' || network == 'X5' || $.inArray(station, bochumStation)+1 ) {
+ row += ( $.inArray(station, bochumStation)+1 ) ? '
Operator: Ruhr-University Bochum, Germany' : '' ;
+ if ( network == 'RN' || network == 'Z3' || network == '1A' || network == 'YD' || $.inArray(station, bochumStation)+1 ) {
// setting up station details (3rd line)
row += '';
row += stationDetails(station, network, lat, lng, stationID, stationText, $(this));
@@ -114,7 +123,16 @@ function loadStations(stime, etime) {
}
});
// create stations csv download link
- request_data['format'] = 'text';
+ var request_data = {
+ endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
+ startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
+ level: 'station',
+ minlat: S-config['map']['latlngDelta'],
+ maxlat: N+config['map']['latlngDelta'],
+ minlon: W-config['map']['latlngDelta'],
+ maxlon: E+config['map']['latlngDelta'],
+ format: 'text',
+ };
$('#stations-csv-link').attr('href', config['ajax']['stationURL']+'?'+$.param(request_data));
};
@@ -130,7 +148,7 @@ function stationDetails(station, network, lat, lng, stationId, stationText, stat
var code = $(this).attr('code');
var sensor = $(this).find('Sensor > Type').text().split(',')[0];
var sampleRate = $(this).find('SampleRate').text();
- output += ' Chanel ' + code + ', Samplingrate ' + sampleRate + ' Hz, Sensor ' + sensor;
+ output += ' Channel ' + code + ', Samplingrate ' + sampleRate + ' Hz, Sensor ' + sensor;
});
output += '';
return output;
@@ -205,6 +223,20 @@ function initStationTable() {
**********************************************************************/
$(document).ready(function() {
loadStations();
+ loadStations('A100A');
+ loadStations('A101B');
+ loadStations('A102A');
+ loadStations('A103A');
+ loadStations('A103B');
+ loadStations('A104A');
+ loadStations('A104B');
+ loadStations('A105A');
+ loadStations('A106B');
+ loadStations('A107C');
+ loadStations('A108A');
+ loadStations('A109A');
+ // loadStations('KERA');
+ // loadStations('KARP');
// show / hide station info
$('#stationstable').delegate('.toggle', 'click' , function(){
// toggle visibility of selected row
|