Compare commits
16 Commits
support/if
...
release/r2
| Author | SHA1 | Date | |
|---|---|---|---|
| 43d809cc18 | |||
| e3f27aac7e | |||
| b7a09e98e3 | |||
| 2251f25fcb | |||
| 9bb73b9ab5 | |||
| 87af90f047 | |||
| aed22c7567 | |||
| 703834c9da | |||
| 26d6b0f252 | |||
| 3b5b07968e | |||
| 23ccbb8d9b | |||
| dff6994a2b | |||
| 31fb40a220 | |||
| 1d286c3f50 | |||
| 70f933d8e2 | |||
| 2134402e93 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1,5 +1,6 @@
|
|||||||
* text=auto !eol
|
* text=auto !eol
|
||||||
scripts/mkEvents.csh -text
|
scripts/mkEvents.csh -text
|
||||||
|
wsgi/showEnv.py -text
|
||||||
www/.htaccess -text
|
www/.htaccess -text
|
||||||
www/copyright.inc.de -text
|
www/copyright.inc.de -text
|
||||||
www/external/TileLayer.Grayscale.js -text
|
www/external/TileLayer.Grayscale.js -text
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,3 +1,5 @@
|
|||||||
|
scripts/events.xml
|
||||||
|
scripts/geolocation.js
|
||||||
wsgi/.idea
|
wsgi/.idea
|
||||||
www/dlsv
|
www/dlsv
|
||||||
www/event.xml
|
www/event.xml
|
||||||
@@ -5,3 +7,5 @@ www/events.xml
|
|||||||
www/geolocation.js
|
www/geolocation.js
|
||||||
www/geolocationTable.js
|
www/geolocationTable.js
|
||||||
www/stations.xml
|
www/stations.xml
|
||||||
|
|
||||||
|
.vscode/settings.json
|
||||||
|
|||||||
@@ -1 +1,4 @@
|
|||||||
curl -o events.xml "https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query?starttime=2014-08-01&orderby=time&minlat=50.92&maxlat=52.76&minlon=4.26&maxlon=9.74&minmag=1.1"
|
#!/bin/bash
|
||||||
|
|
||||||
|
STIME=$1
|
||||||
|
curl -o events.xml "https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query?starttime=${STIME}&orderby=time&minlat=50.92&maxlat=52.76&minlon=4.26&maxlon=9.74&minmag=1.1"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
curl -s "https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query?minlat=50&maxlat=54&minlon=3&maxlon=10&minmag=1" | mkGeolocationTable.py > geolocationTable.js
|
curl -s "https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query?minlat=50&maxlat=54&minlon=3&maxlon=10&minmag=1" | mkGeolocationTable.py > geolocationTable.js
|
||||||
|
|
||||||
License
|
License
|
||||||
Copyright 2014 Kasper D. Fischer <kasper.fischer@rub.de>
|
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the Free
|
under the terms of the GNU General Public License as published by the Free
|
||||||
@@ -39,6 +39,8 @@ def mkGeolocationTable(file=''):
|
|||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
from sys import stdin
|
from sys import stdin
|
||||||
import warnings
|
import warnings
|
||||||
|
from time import sleep
|
||||||
|
from geopy.geocoders import Photon
|
||||||
import urllib2 as URL
|
import urllib2 as URL
|
||||||
import json as JSON
|
import json as JSON
|
||||||
|
|
||||||
@@ -51,6 +53,7 @@ def mkGeolocationTable(file=''):
|
|||||||
warnings.formatwarning = simple_warning
|
warnings.formatwarning = simple_warning
|
||||||
|
|
||||||
# try loading the file
|
# try loading the file
|
||||||
|
geolocationTable = {}
|
||||||
if file :
|
if file :
|
||||||
try:
|
try:
|
||||||
jsonfile = open(file)
|
jsonfile = open(file)
|
||||||
@@ -62,6 +65,7 @@ def mkGeolocationTable(file=''):
|
|||||||
|
|
||||||
# parse event.xml
|
# parse event.xml
|
||||||
DOM = ET.parse(stdin).getroot()
|
DOM = ET.parse(stdin).getroot()
|
||||||
|
geolocator = Photon()
|
||||||
|
|
||||||
# iterate over all events
|
# iterate over all events
|
||||||
for event in DOM.iterfind('qml:eventParameters/qml:event', namespaces):
|
for event in DOM.iterfind('qml:eventParameters/qml:event', namespaces):
|
||||||
@@ -75,37 +79,30 @@ def mkGeolocationTable(file=''):
|
|||||||
elif evaluationMode == 'automatic':
|
elif evaluationMode == 'automatic':
|
||||||
warnings.warn('Skipping automatic event %s' %(publicID))
|
warnings.warn('Skipping automatic event %s' %(publicID))
|
||||||
else:
|
else:
|
||||||
#warnings.warn('Processing event %s' %publicID)
|
try:
|
||||||
# send and evaluate nominatim request
|
location = geolocator.reverse("{lat}, {lng}".format(lat=lat, lng=lng))
|
||||||
url = 'https://open.mapquestapi.com/nominatim/v1/reverse.php?lat={0}&lon={1}&zoom=10&format=json'.format(lat, lng)
|
except:
|
||||||
response = URL.urlopen(url)
|
warnings.warn('Reverse Geolocation failed. Skipping event.')
|
||||||
if ( response.msg == 'OK' ):
|
sleep(1.1)
|
||||||
data = JSON.loads(response.read())
|
continue
|
||||||
city = []
|
place = []
|
||||||
|
try:
|
||||||
|
place = location.raw['properties']['city']
|
||||||
|
except KeyError:
|
||||||
try:
|
try:
|
||||||
|
place = location.raw['properties']['town']
|
||||||
|
except KeyError:
|
||||||
try:
|
try:
|
||||||
city = data['address']['city']
|
place = location.raw['properties']['village']
|
||||||
except:
|
except KeyError:
|
||||||
warnings.warn('Request {3} for event {0} at {1} N / {2} E did not provide city attribute\n\t(Response: {4})'.format(publicID, lat, lng, url, data))
|
|
||||||
try:
|
try:
|
||||||
city = data['address']['town']
|
place = location.raw['properties']['county']
|
||||||
warnings.warn('Using attribute town ({1}) for event {0}'.format(publicID, city))
|
except KeyError:
|
||||||
except:
|
warnings.warn('Could not extract city for event {0} at {1} N / {2} E (URL: {3})'.format(publicID, lat, lng, url))
|
||||||
try:
|
warnings.warn('Sucessfully looked up location for event {0}.'.format(publicID))
|
||||||
city = data['address']['county']
|
geolocationTable[publicID] = place
|
||||||
warnings.warn('Using attribute county ({1}) for event {0}'.format(publicID, city))
|
sleep(1.1)
|
||||||
except:
|
|
||||||
warnings.warn('Skipping event')
|
|
||||||
continue
|
|
||||||
countryCode = data['address']['country_code'].upper()
|
|
||||||
if ( countryCode == 'DE' ):
|
|
||||||
geolocationTable[publicID] = city.encode('utf-8')
|
|
||||||
else:
|
|
||||||
geolocationTable[publicID] = '{0} ({1})'.format(city.encode('utf-8'), countryCode)
|
|
||||||
except:
|
|
||||||
warnings.warn('Could not extract city for event {0} at {1} N / {2} E (URL: {3})'.format(publicID, lat, lng, url))
|
|
||||||
else:
|
|
||||||
warnings.warn('Request {0} failed'.format(url))
|
|
||||||
# dump json
|
# dump json
|
||||||
print 'var geolocationTable = '+JSON.dumps(geolocationTable, sort_keys=True)+';'
|
print 'var geolocationTable = '+JSON.dumps(geolocationTable, sort_keys=True)+';'
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
:license
|
:license
|
||||||
Copyright 2015 Kasper Fischer <kasper.fischer@ruhr-uni-bochum.de>
|
Copyright 2020 Kasper Fischer <kasper.fischer@ruhr-uni-bochum.de>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -133,7 +133,7 @@ def fancy_plot(st, wsgi=False, img_format='png', color=True):
|
|||||||
|
|
||||||
|
|
||||||
def trace_dayplot(st, deltat = None,
|
def trace_dayplot(st, deltat = None,
|
||||||
ftype='bandpass', fmin=1.0, fmax=7.0,
|
ftype='none', fmin=1.0, fmax=7.0,
|
||||||
col=('b', 'r', 'g'), interval=20, outpattern='',
|
col=('b', 'r', 'g'), interval=20, outpattern='',
|
||||||
wsgi=False):
|
wsgi=False):
|
||||||
"""
|
"""
|
||||||
@@ -260,18 +260,24 @@ def main(backend=None, args=None, wsgi=False):
|
|||||||
if args['stime']:
|
if args['stime']:
|
||||||
otime = UTCDateTime(args['stime'])
|
otime = UTCDateTime(args['stime'])
|
||||||
else:
|
else:
|
||||||
otime = UTCDateTime() - 3600 - deltat
|
otime = UTCDateTime() - 3600. - deltat
|
||||||
network = args['station'].split('.')[0]
|
network = args['station'].split('.')[0]
|
||||||
station = args['station'].split('.')[1]
|
station = args['station'].split('.')[1]
|
||||||
if args['type'] == 'dayplot':
|
if args['type'] == 'dayplot':
|
||||||
channel = 'BHZ'
|
if network == 'Z3':
|
||||||
|
channel = 'HHZ'
|
||||||
|
else:
|
||||||
|
channel = 'BHZ'
|
||||||
else:
|
else:
|
||||||
if args['length'] < 3600:
|
if args['length'] < 3600.:
|
||||||
channel = 'HH?'
|
channel = 'HH?'
|
||||||
else:
|
else:
|
||||||
channel = 'BH?'
|
if network == 'Z3':
|
||||||
|
channel = 'HH?'
|
||||||
|
else:
|
||||||
|
channel = 'BH?'
|
||||||
else:
|
else:
|
||||||
otime = UTCDateTime('2014-11-15T11:35:25Z')
|
otime = UTCDateTime() - 3600.
|
||||||
deltat = 30
|
deltat = 30
|
||||||
network = 'GR'
|
network = 'GR'
|
||||||
station = 'BUG'
|
station = 'BUG'
|
||||||
|
|||||||
17
wsgi/showEnv.py
Normal file
17
wsgi/showEnv.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
def application(environ, start_response):
|
||||||
|
"""
|
||||||
|
Function application - Wrapper to process wsgi request
|
||||||
|
:param environ: contains information on the wsgi environment
|
||||||
|
:type environ: dict
|
||||||
|
:param start_response: function to process response header by the wsgi server
|
||||||
|
:type start_response: function
|
||||||
|
:return: response to be sent to the client by the wsgi server
|
||||||
|
:rtype: list
|
||||||
|
"""
|
||||||
|
|
||||||
|
from cgi import FieldStorage
|
||||||
|
|
||||||
|
form = FieldStorage(fp=environ['wsgi.input'], environ=environ)
|
||||||
|
|
||||||
|
start_response('200 OK', [('Content-Type', 'text/html')])
|
||||||
|
return [form]
|
||||||
@@ -7,7 +7,7 @@ Subversion information:
|
|||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
license: gpl3
|
license: gpl3
|
||||||
Copyright 2012-2015 Seismological Observatory, Ruhr-University Bochum
|
Copyright 2012-2020 Seismological Observatory, Ruhr-University Bochum
|
||||||
http://www.gmg.ruhr-uni-bochum.de/geophysik/seisobs
|
http://www.gmg.ruhr-uni-bochum.de/geophysik/seisobs
|
||||||
Contributors:
|
Contributors:
|
||||||
Martina Rische <martina.rische@rub.de>
|
Martina Rische <martina.rische@rub.de>
|
||||||
|
|||||||
@@ -1 +1,7 @@
|
|||||||
Allow from all
|
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"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
/* License
|
/* License
|
||||||
Copyright 2014 Kasper D. Fischer <kasper.fischer@rub.de>
|
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the Free
|
under the terms of the GNU General Public License as published by the Free
|
||||||
@@ -40,22 +40,23 @@ function addTableRow(row, table) {
|
|||||||
|
|
||||||
/* do reverse geolocation lookup */
|
/* do reverse geolocation lookup */
|
||||||
function getGeolocation(id, lat, lng) {
|
function getGeolocation(id, lat, lng) {
|
||||||
if ( !geolocationTable[id] ) {
|
if ( $.inArray(id, geolocationTable) == -1 ) {
|
||||||
$.getJSON( config['ajax']['nominatimURL'], { lat: lat, lon: lng, zoom: 10, format: "json" } )
|
$.getJSON( config['ajax']['nominatimURL'], { lat: lat, lon: lng } )
|
||||||
.done(function( json ) {
|
.done(function( json ) {
|
||||||
var city = json.address["city"];
|
if ( json.features[0] ) {
|
||||||
var country = json.address["country"];
|
var city = json.features[0].properties.city;
|
||||||
var countryCode = json.address["country_code"].toUpperCase();
|
var countryCode = json.features[0].properties.country;
|
||||||
geolocationTable[id] = city;
|
geolocationTable[id] = city;
|
||||||
( country != "Deutschland" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
|
( countryCode != "Germany" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
|
||||||
if ( city ) {
|
if ( city ) {
|
||||||
$("#eventstable a.toggle[eventid="+id+"]").text(geolocationTable[id]);
|
$("#eventstable a.toggle[eventid="+id+"]").text(geolocationTable[id]);
|
||||||
var sort = [[0,1],[1,1],[2,1]];
|
var sort = [[0,1],[1,1],[2,1]];
|
||||||
$("#eventstable").trigger("update", [true]);
|
$("#eventstable").trigger("update", [true]);
|
||||||
$("#eventstable").trigger("updateCache");
|
$("#eventstable").trigger("updateCache");
|
||||||
$("#eventstable").trigger("sorton", [sort]);
|
$("#eventstable").trigger("sorton", [sort]);
|
||||||
} else {
|
} else {
|
||||||
console.log("Nominatim did not provide a city tag for "+lat+" / "+lng);
|
// console.log("Nominatim did not provide a city tag for "+lat+" / "+lng);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
.fail(function( jqxhr, textStatus, error ) {
|
.fail(function( jqxhr, textStatus, error ) {
|
||||||
@@ -88,7 +89,7 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
|
|||||||
} else {
|
} else {
|
||||||
request_data = {
|
request_data = {
|
||||||
starttime: sprintf("%d-%02d-%02d", rtime.getFullYear(), rtime.getMonth()+1, rtime.getDate()),
|
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']),
|
minlat: sprintf('%.2f', mapBounds.getSouth()-config['map']['latlngDelta']),
|
||||||
maxlat: sprintf('%.2f', mapBounds.getNorth()+config['map']['latlngDelta']),
|
maxlat: sprintf('%.2f', mapBounds.getNorth()+config['map']['latlngDelta']),
|
||||||
minlon: sprintf('%.2f', mapBounds.getWest()-config['map']['latlngDelta']),
|
minlon: sprintf('%.2f', mapBounds.getWest()-config['map']['latlngDelta']),
|
||||||
@@ -118,12 +119,10 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
|
|||||||
var evaluationStatus = $(this).find('origin > evaluationStatus').text();
|
var evaluationStatus = $(this).find('origin > evaluationStatus').text();
|
||||||
var type = $(this).find('type').last().text();
|
var type = $(this).find('type').last().text();
|
||||||
var location
|
var location
|
||||||
// get location, try this in order:
|
|
||||||
// regional map name, given value, cached value, or nominatim lookup
|
|
||||||
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() );
|
|
||||||
// create table row: Date, Time, Mag, 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)
|
// general event info (1st line)
|
||||||
var row = '<tr class="tablesorter-hasChildRow">'
|
var row = '<tr class="tablesorter-hasChildRow">'
|
||||||
+ '<td class="utctime-date">'+otime.split('.')[0]+'Z</td>'
|
+ '<td class="utctime-date">'+otime.split('.')[0]+'Z</td>'
|
||||||
@@ -137,6 +136,9 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
|
|||||||
// setting up download links (3nd line)
|
// setting up download links (3nd line)
|
||||||
var xmlurl = sprintf('%s?formatted=true&includearrivals=true&eventid=%s', config['ajax']['eventURL'], id);
|
var xmlurl = sprintf('%s?formatted=true&includearrivals=true&eventid=%s', config['ajax']['eventURL'], id);
|
||||||
var oTime = new Date(otime);
|
var oTime = new Date(otime);
|
||||||
|
if ( ~oTime ) {
|
||||||
|
oTime = new Date(otime.split('.')[0]);
|
||||||
|
};
|
||||||
var sTime = new Date(oTime.getTime()-10*1000.-oTime.getMilliseconds());
|
var sTime = new Date(oTime.getTime()-10*1000.-oTime.getMilliseconds());
|
||||||
var eTime = new Date(oTime.getTime()+50*1000.-oTime.getMilliseconds());
|
var eTime = new Date(oTime.getTime()+50*1000.-oTime.getMilliseconds());
|
||||||
var mseedurl = sprintf('%s?net=GE,GR,RN&cha=EH?,HH?&start=%04d-%02d-%02dT%02d:%02d:%02d&end=%04d-%02d-%02dT%02d:%02d:%02d', config['ajax']['mseedURL'], Number(sTime.getUTCFullYear()), Number(sTime.getUTCMonth())+1, Number(sTime.getUTCDate()), Number(sTime.getUTCHours()), Number(sTime.getUTCMinutes()), Number(sTime.getUTCSeconds()), Number(eTime.getUTCFullYear()), Number(eTime.getUTCMonth())+1, Number(eTime.getUTCDate()), Number(eTime.getUTCHours()), Number(eTime.getUTCMinutes()), Number(eTime.getUTCSeconds()));
|
var mseedurl = sprintf('%s?net=GE,GR,RN&cha=EH?,HH?&start=%04d-%02d-%02dT%02d:%02d:%02d&end=%04d-%02d-%02dT%02d:%02d:%02d', config['ajax']['mseedURL'], Number(sTime.getUTCFullYear()), Number(sTime.getUTCMonth())+1, Number(sTime.getUTCDate()), Number(sTime.getUTCHours()), Number(sTime.getUTCMinutes()), Number(sTime.getUTCSeconds()), Number(eTime.getUTCFullYear()), Number(eTime.getUTCMonth())+1, Number(eTime.getUTCDate()), Number(eTime.getUTCHours()), Number(eTime.getUTCMinutes()), Number(eTime.getUTCSeconds()));
|
||||||
@@ -155,11 +157,11 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
|
|||||||
if ((stime <= oTime && etime >= oTime ) || ( id == eventid )) {
|
if ((stime <= oTime && etime >= oTime ) || ( id == eventid )) {
|
||||||
var marker = addEventMarker(id, Number(lat), Number(lng), Number(mag), type);
|
var marker = addEventMarker(id, Number(lat), Number(lng), Number(mag), type);
|
||||||
var text = sprintf('<h3 eventid="%s">%s</h3>', id, location)
|
var text = sprintf('<h3 eventid="%s">%s</h3>', id, location)
|
||||||
+ sprintf('<p>Ereignis: %s</br>', id)
|
+ sprintf('<p>Ereignis: %s<br />', id)
|
||||||
+ sprintf('Type: %s</br>', type)
|
+ sprintf('Type: %s<br />', type)
|
||||||
+ sprintf('Magnitude: %3.1f</br>', Number(mag))
|
+ sprintf('Magnitude: %3.1f<br />', Number(mag))
|
||||||
+ sprintf('Ort: %.4f °N, %.4f °O </br>', Number(lat), Number(lng))
|
+ sprintf('Ort: %.4f °N, %.4f °O <br />', Number(lat), Number(lng))
|
||||||
+ sprintf('Tiefe: %.1f km</br>', Number(depth)/1000.)
|
+ sprintf('Tiefe: %.1f km<br />', Number(depth)/1000.)
|
||||||
+ sprintf('Zeit: <span class="utctime">%sZ</span></p>', otime.split('.')[0], otime.split('.')[0]);
|
+ sprintf('Zeit: <span class="utctime">%sZ</span></p>', otime.split('.')[0], otime.split('.')[0]);
|
||||||
marker.bindPopup(text);
|
marker.bindPopup(text);
|
||||||
};
|
};
|
||||||
@@ -426,7 +428,12 @@ $(document).ready(function() {
|
|||||||
typetext += '(bergbau-)induziertes Ereignis (Kreis)';
|
typetext += '(bergbau-)induziertes Ereignis (Kreis)';
|
||||||
break;
|
break;
|
||||||
case 'quarry blast':
|
case 'quarry blast':
|
||||||
typetext += 'Steinbruchsprengung (Rad)';
|
case 'controlled explosion':
|
||||||
|
case 'explosion':
|
||||||
|
typetext += 'Sprengung (Rad)';
|
||||||
|
break;
|
||||||
|
case 'nuclear explosion':
|
||||||
|
typetext += 'Atomwaffentest (Viereck)';
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
$("#events-type").append(typetext);
|
$("#events-type").append(typetext);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
/* License
|
/* License
|
||||||
Copyright 2014 Kasper D. Fischer <kasper.fischer@rub.de>
|
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the Free
|
under the terms of the GNU General Public License as published by the Free
|
||||||
@@ -40,22 +40,23 @@ function addTableRow(row, table) {
|
|||||||
|
|
||||||
/* do reverse geolocation lookup */
|
/* do reverse geolocation lookup */
|
||||||
function getGeolocation(id, lat, lng) {
|
function getGeolocation(id, lat, lng) {
|
||||||
if ( !geolocationTable[id] ) {
|
if ( $.inArray(id, geolocationTable) == -1 ) {
|
||||||
$.getJSON( config['ajax']['nominatimURL'], { lat: lat, lon: lng, zoom: 10, format: "json" } )
|
$.getJSON( config['ajax']['nominatimURL'], { lat: lat, lon: lng } )
|
||||||
.done(function( json ) {
|
.done(function( json ) {
|
||||||
var city = json.address["city"];
|
if ( json.features[0] ) {
|
||||||
var country = json.address["country"];
|
var city = json.features[0].properties.city;
|
||||||
var countryCode = json.address["country_code"].toUpperCase();
|
var countryCode = json.features[0].properties.country;
|
||||||
geolocationTable[id] = city;
|
geolocationTable[id] = city;
|
||||||
( country != "Deutschland" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
|
( countryCode != "Germany" ) ? geolocationTable[id] = geolocationTable[id] + " ("+countryCode+")" : null;
|
||||||
if ( city ) {
|
if ( city ) {
|
||||||
$("#eventstable a.toggle[eventid="+id+"]").text(geolocationTable[id]);
|
$("#eventstable a.toggle[eventid="+id+"]").text(geolocationTable[id]);
|
||||||
var sort = [[0,1],[1,1],[2,1]];
|
var sort = [[0,1],[1,1],[2,1]];
|
||||||
$("#eventstable").trigger("update", [true]);
|
$("#eventstable").trigger("update", [true]);
|
||||||
$("#eventstable").trigger("updateCache");
|
$("#eventstable").trigger("updateCache");
|
||||||
$("#eventstable").trigger("sorton", [sort]);
|
$("#eventstable").trigger("sorton", [sort]);
|
||||||
} else {
|
} else {
|
||||||
console.log("Nominatim did not provide a city tag for "+lat+" / "+lng);
|
// console.log("Nominatim did not provide a city tag for "+lat+" / "+lng);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
.fail(function( jqxhr, textStatus, error ) {
|
.fail(function( jqxhr, textStatus, error ) {
|
||||||
@@ -88,7 +89,7 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
|
|||||||
} else {
|
} else {
|
||||||
request_data = {
|
request_data = {
|
||||||
starttime: sprintf("%d-%02d-%02d", rtime.getFullYear(), rtime.getMonth()+1, rtime.getDate()),
|
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']),
|
minlat: sprintf('%.2f', mapBounds.getSouth()-config['map']['latlngDelta']),
|
||||||
maxlat: sprintf('%.2f', mapBounds.getNorth()+config['map']['latlngDelta']),
|
maxlat: sprintf('%.2f', mapBounds.getNorth()+config['map']['latlngDelta']),
|
||||||
minlon: sprintf('%.2f', mapBounds.getWest()-config['map']['latlngDelta']),
|
minlon: sprintf('%.2f', mapBounds.getWest()-config['map']['latlngDelta']),
|
||||||
@@ -118,12 +119,10 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
|
|||||||
var evaluationStatus = $(this).find('origin > evaluationStatus').text();
|
var evaluationStatus = $(this).find('origin > evaluationStatus').text();
|
||||||
var type = $(this).find('type').last().text();
|
var type = $(this).find('type').last().text();
|
||||||
var location
|
var location
|
||||||
// get location, try this in order:
|
|
||||||
// regional map name, given value, cached value, or nominatim lookup
|
|
||||||
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() );
|
|
||||||
// create table row: Date, Time, Mag, 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)
|
// general event info (1st line)
|
||||||
var row = '<tr class="tablesorter-hasChildRow">'
|
var row = '<tr class="tablesorter-hasChildRow">'
|
||||||
+ '<td class="utctime-date">'+otime.split('.')[0]+'Z</td>'
|
+ '<td class="utctime-date">'+otime.split('.')[0]+'Z</td>'
|
||||||
@@ -137,6 +136,9 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
|
|||||||
// setting up download links (3nd line)
|
// setting up download links (3nd line)
|
||||||
var xmlurl = sprintf('%s?formatted=true&includearrivals=true&eventid=%s', config['ajax']['eventURL'], id);
|
var xmlurl = sprintf('%s?formatted=true&includearrivals=true&eventid=%s', config['ajax']['eventURL'], id);
|
||||||
var oTime = new Date(otime);
|
var oTime = new Date(otime);
|
||||||
|
if ( ~oTime ) {
|
||||||
|
oTime = new Date(otime.split('.')[0]);
|
||||||
|
};
|
||||||
var sTime = new Date(oTime.getTime()-10*1000.-oTime.getMilliseconds());
|
var sTime = new Date(oTime.getTime()-10*1000.-oTime.getMilliseconds());
|
||||||
var eTime = new Date(oTime.getTime()+50*1000.-oTime.getMilliseconds());
|
var eTime = new Date(oTime.getTime()+50*1000.-oTime.getMilliseconds());
|
||||||
var mseedurl = sprintf('%s?net=GE,GR,RN&cha=EH?,HH?&start=%04d-%02d-%02dT%02d:%02d:%02d&end=%04d-%02d-%02dT%02d:%02d:%02d', config['ajax']['mseedURL'], Number(sTime.getUTCFullYear()), Number(sTime.getUTCMonth())+1, Number(sTime.getUTCDate()), Number(sTime.getUTCHours()), Number(sTime.getUTCMinutes()), Number(sTime.getUTCSeconds()), Number(eTime.getUTCFullYear()), Number(eTime.getUTCMonth())+1, Number(eTime.getUTCDate()), Number(eTime.getUTCHours()), Number(eTime.getUTCMinutes()), Number(eTime.getUTCSeconds()));
|
var mseedurl = sprintf('%s?net=GE,GR,RN&cha=EH?,HH?&start=%04d-%02d-%02dT%02d:%02d:%02d&end=%04d-%02d-%02dT%02d:%02d:%02d', config['ajax']['mseedURL'], Number(sTime.getUTCFullYear()), Number(sTime.getUTCMonth())+1, Number(sTime.getUTCDate()), Number(sTime.getUTCHours()), Number(sTime.getUTCMinutes()), Number(sTime.getUTCSeconds()), Number(eTime.getUTCFullYear()), Number(eTime.getUTCMonth())+1, Number(eTime.getUTCDate()), Number(eTime.getUTCHours()), Number(eTime.getUTCMinutes()), Number(eTime.getUTCSeconds()));
|
||||||
@@ -155,11 +157,11 @@ function ajaxLoadEvents(stime, etime, eventid, url, target) {
|
|||||||
if ((stime <= oTime && etime >= oTime ) || ( id == eventid )) {
|
if ((stime <= oTime && etime >= oTime ) || ( id == eventid )) {
|
||||||
var marker = addEventMarker(id, Number(lat), Number(lng), Number(mag), type);
|
var marker = addEventMarker(id, Number(lat), Number(lng), Number(mag), type);
|
||||||
var text = sprintf('<h3 eventid="%s">%s</h3>', id, location)
|
var text = sprintf('<h3 eventid="%s">%s</h3>', id, location)
|
||||||
+ sprintf('<p>Ereignis: %s</br>', id)
|
+ sprintf('<p>Ereignis: %s<br />', id)
|
||||||
+ sprintf('Type: %s</br>', type)
|
+ sprintf('Type: %s<br />', type)
|
||||||
+ sprintf('Magnitude: %3.1f</br>', Number(mag))
|
+ sprintf('Magnitude: %3.1f<br />', Number(mag))
|
||||||
+ sprintf('Ort: %.4f °N, %.4f °O </br>', Number(lat), Number(lng))
|
+ sprintf('Ort: %.4f °N, %.4f °O <br />', Number(lat), Number(lng))
|
||||||
+ sprintf('Tiefe: %.1f km</br>', Number(depth)/1000.)
|
+ sprintf('Tiefe: %.1f km<br />', Number(depth)/1000.)
|
||||||
+ sprintf('Zeit: <span class="utctime">%sZ</span></p>', otime.split('.')[0], otime.split('.')[0]);
|
+ sprintf('Zeit: <span class="utctime">%sZ</span></p>', otime.split('.')[0], otime.split('.')[0]);
|
||||||
marker.bindPopup(text);
|
marker.bindPopup(text);
|
||||||
};
|
};
|
||||||
@@ -426,8 +428,13 @@ $(document).ready(function() {
|
|||||||
typetext += '(mining-)induced event (circle)';
|
typetext += '(mining-)induced event (circle)';
|
||||||
break;
|
break;
|
||||||
case 'quarry blast':
|
case 'quarry blast':
|
||||||
|
case 'controlled explosion':
|
||||||
|
case 'explosion':
|
||||||
typetext += 'quarry blast (wheel)';
|
typetext += 'quarry blast (wheel)';
|
||||||
break;
|
break;
|
||||||
|
case 'nuclear explosion':
|
||||||
|
typetext += 'nuclear weapon test (square)';
|
||||||
|
break;
|
||||||
};
|
};
|
||||||
$("#events-type").append(typetext);
|
$("#events-type").append(typetext);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
<div class="accordioncontent">
|
<div class="accordioncontent">
|
||||||
<h4>Anschrift</h4>
|
<h4>Anschrift</h4>
|
||||||
Seismologisches Observatorium der</br>
|
Seismologisches Observatorium der<br />
|
||||||
Ruhr-Universität Bochum</br>
|
Ruhr-Universität Bochum<br />
|
||||||
NA 3/174</br>
|
NA 3/174<br />
|
||||||
44780 Bochum</br>
|
44780 Bochum<br />
|
||||||
Tel.: 0234 32-27574</br>
|
Tel.: 0234 32-27574<br />
|
||||||
Fax: 0234 32-07574</br>
|
Fax: 0234 32-07574<br />
|
||||||
|
|
||||||
<p>Die Ruhr-Universität ist eine Körperschaft des Öffentlichen Rechts. Sie wird durch ihren Rektor Herrn Prof. Dr. Elmar W. Weiler gesetzlich vertreten.</p>
|
<p>Die Ruhr-Universität ist eine Körperschaft des Öffentlichen Rechts. Sie wird durch ihren Rektor Herrn Prof. Dr. Elmar W. Weiler gesetzlich vertreten.</p>
|
||||||
<p>Zuständige Aufsichtsbehörde ist das Ministerium für Innovation, Wissenschaft und Forschung des Landes Nordrhein-Westfalen, Völklinger Straße 49, 40221 Düsseldorf.</p>
|
<p>Zuständige Aufsichtsbehörde ist das Ministerium für Innovation, Wissenschaft und Forschung des Landes Nordrhein-Westfalen, Völklinger Straße 49, 40221 Düsseldorf.</p>
|
||||||
<p>Umsatzsteuer-Identifikationsnummer: DE 127 056 261</p>
|
<p>Umsatzsteuer-Identifikationsnummer: DE 127 056 261</p>
|
||||||
|
|
||||||
<h4>Inhaltliche und technische Verantwortung für die Seiten des Seismologischen Observatoriums der Ruhr-Universität Bochum</h4>
|
<h4>Inhaltliche und technische Verantwortung für die Seiten des Seismologischen Observatoriums der Ruhr-Universität Bochum</h4>
|
||||||
Herr Dr. Kasper D. Fischer</br>
|
Herr Dr. Kasper D. Fischer<br />
|
||||||
Ruhr-Universität Bochum</br>
|
Ruhr-Universität Bochum<br />
|
||||||
44780 Bochum</br>
|
44780 Bochum<br />
|
||||||
Tel.: 0234 32-27574</br>
|
Tel.: 0234 32-27574<br />
|
||||||
Fax: 0234 32-07574</br>
|
Fax: 0234 32-07574<br />
|
||||||
E-Mail: kasper.fischer@ruhr-uni-bochum.de</br>
|
E-Mail: kasper.fischer@ruhr-uni-bochum.de<br />
|
||||||
|
|
||||||
<p>Meldungen über missbräuchliche Nutzungen, die von Stationen aus dem IP-Namensbereich ruhr-uni-bochum.de ausgehen, senden Sie bitte an die Email-Adresse
|
<p>Meldungen über missbräuchliche Nutzungen, die von Stationen aus dem IP-Namensbereich ruhr-uni-bochum.de ausgehen, senden Sie bitte an die Email-Adresse
|
||||||
abuse@ruhr-uni-bochum.de. Gleichfalls bittet die Ruhr-Universität um Mitteilung an dieselbe Email-Adresse, wenn rechtswidrige Inhalte durch Links auf Seiten der Ruhr-Universität zu
|
abuse@ruhr-uni-bochum.de. Gleichfalls bittet die Ruhr-Universität um Mitteilung an dieselbe Email-Adresse, wenn rechtswidrige Inhalte durch Links auf Seiten der Ruhr-Universität zu
|
||||||
|
|||||||
@@ -39,6 +39,8 @@
|
|||||||
<script type="text/javascript" src="external/leaflet.label.js"></script>
|
<script type="text/javascript" src="external/leaflet.label.js"></script>
|
||||||
<script src="external/jQuery.print.js"></script>
|
<script src="external/jQuery.print.js"></script>
|
||||||
<script src="external/leaflet.easyPrint.js"></script>
|
<script src="external/leaflet.easyPrint.js"></script>
|
||||||
|
<script src="https://open.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=RPOPuz3lA2GGBtVpEU0ugxtVoGba53Dt"></script>
|
||||||
|
<!-- <script src="https://www.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=RPOPuz3lA2GGBtVpEU0ugxtVoGba53Dt"></script> -->
|
||||||
|
|
||||||
<!-- Map, Events & Stations -->
|
<!-- Map, Events & Stations -->
|
||||||
<script type="text/javascript" src="misc.js"></script>
|
<script type="text/javascript" src="misc.js"></script>
|
||||||
@@ -115,7 +117,7 @@
|
|||||||
<span id="events-type">Symbole:</span>
|
<span id="events-type">Symbole:</span>
|
||||||
</p>
|
</p>
|
||||||
<p class="table-caption">
|
<p class="table-caption">
|
||||||
Nominatim Search Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img alt="Mapquest Logo" src="//developer.mapquest.com/content/osm/mq_logo.png" />
|
Reverse Geolocation courtesy of <a href="http://photon.komoot.de/" target="_blank">Photon by Komoot</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- Stations -->
|
<!-- Stations -->
|
||||||
@@ -178,6 +180,6 @@
|
|||||||
<div class="rublogo"><a href="http://www.gmg.ruhr-uni-bochum.de/geophysik/seisobs"><img class="rublogo" src="logo_RUB_155x30.png" alt="Ruhr-Universität Bochum" title="Ruhr-Universität Bochum" border="0"/></a></div>
|
<div class="rublogo"><a href="http://www.gmg.ruhr-uni-bochum.de/geophysik/seisobs"><img class="rublogo" src="logo_RUB_155x30.png" alt="Ruhr-Universität Bochum" title="Ruhr-Universität Bochum" border="0"/></a></div>
|
||||||
<!-- Map -->
|
<!-- Map -->
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<div id="spinner" class="spinner" style="display:none;"><img id="img-spinner" src="spinner.gif" alt="Loading"/></br>Loading ...</div>
|
<div id="spinner" class="spinner" style="display:none;"><img id="img-spinner" src="spinner.gif" alt="Loading"/><br />Loading ...</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<link rel="stylesheet" href="external/leaflet.css" />
|
<link rel="stylesheet" href="external/leaflet.css" />
|
||||||
<!-- link rel="stylesheet" href="external/css/dvf.css" type="text/css" media="screen" / -->
|
<!-- link rel="stylesheet" href="external/css/dvf.css" type="text/css" media="screen" / -->
|
||||||
<link rel="stylesheet" href="external/css/leaflet.label.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="external/css/leaflet.label.css" type="text/css" media="screen" />
|
||||||
<!-- <link rel="stylesheet" href="external/easyPrint.css"/> -->
|
<link rel="stylesheet" href="external/easyPrint.css"/>
|
||||||
|
|
||||||
<!-- jQuery & jQueryUI -->
|
<!-- jQuery & jQueryUI -->
|
||||||
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
|
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
|
||||||
@@ -37,8 +37,11 @@
|
|||||||
<script type="text/javascript" src="external/TileLayer.Grayscale.js"></script>
|
<script type="text/javascript" src="external/TileLayer.Grayscale.js"></script>
|
||||||
<script type="text/javascript" src="external/leaflet-dvf.markers.min.js"></script>
|
<script type="text/javascript" src="external/leaflet-dvf.markers.min.js"></script>
|
||||||
<script type="text/javascript" src="external/leaflet.label.js"></script>
|
<script type="text/javascript" src="external/leaflet.label.js"></script>
|
||||||
<!-- <script src="external/jQuery.print.js"></script> -->
|
<script src="external/jQuery.print.js"></script>
|
||||||
<!-- <script src="external/leaflet.easyPrint.js"></script> -->
|
<script src="external/leaflet.easyPrint.js"></script>
|
||||||
|
|
||||||
|
<script src="https://open.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=RPOPuz3lA2GGBtVpEU0ugxtVoGba53Dt"></script>
|
||||||
|
<!-- <script src="https://www.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=RPOPuz3lA2GGBtVpEU0ugxtVoGba53Dt"></script> -->
|
||||||
|
|
||||||
<!-- Map, Events & Stations -->
|
<!-- Map, Events & Stations -->
|
||||||
<script type="text/javascript" src="misc.js"></script>
|
<script type="text/javascript" src="misc.js"></script>
|
||||||
@@ -96,7 +99,6 @@
|
|||||||
<col width="50" />
|
<col width="50" />
|
||||||
<col width="50" />
|
<col width="50" />
|
||||||
<col />
|
<col />
|
||||||
<col width="30" />
|
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -116,7 +118,7 @@
|
|||||||
<span id="events-type">Symbols:</span>
|
<span id="events-type">Symbols:</span>
|
||||||
</p>
|
</p>
|
||||||
<p class="table-caption">
|
<p class="table-caption">
|
||||||
Nominatim Search Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img alt="Mapquest Logo" src="//developer.mapquest.com/content/osm/mq_logo.png" />
|
Reverse Geolocation courtesy of <a href="http://photon.komoot.de/" target="_blank">Photon by Komoot</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- Stations -->
|
<!-- Stations -->
|
||||||
@@ -179,6 +181,6 @@
|
|||||||
<div class="rublogo"><a href="http://www.gmg.ruhr-uni-bochum.de/geophysik/seisobs"><img class="rublogo" src="logo_RUB_155x30.png" alt="Ruhr-University Bochum" title="Ruhr-University Bochum" border="0"/></a></div>
|
<div class="rublogo"><a href="http://www.gmg.ruhr-uni-bochum.de/geophysik/seisobs"><img class="rublogo" src="logo_RUB_155x30.png" alt="Ruhr-University Bochum" title="Ruhr-University Bochum" border="0"/></a></div>
|
||||||
<!-- Map -->
|
<!-- Map -->
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<div id="spinner" class="spinner" style="display:none;"><img id="img-spinner" src="spinner.gif" alt="Loading"/></br>Loading ...</div>
|
<div id="spinner" class="spinner" style="display:none;"><img id="img-spinner" src="spinner.gif" alt="Loading"/><br />Loading ...</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<div class="accordioncontent">
|
<div class="accordioncontent">
|
||||||
<h4>Navigation zu den Internetseiten</h4>
|
<h4>Navigation zu den Internetseiten</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li>des <a class="intern" href="http://www.gmg.ruhr-uni-bochum.de/geophysik/seisobs">Seismologisches Observatorium</a></br> der Ruhr-Universität Bochum</li>
|
<li>des <a class="intern" href="http://www.gmg.ruhr-uni-bochum.de/geophysik/seisobs">Seismologisches Observatorium</a><br /> der Ruhr-Universität Bochum</li>
|
||||||
<li>der <a class="intern" href="http://www.gmg.ruhr-uni-bochum.de/geophysik/seismology">Arbeitsgruppe Seismologie</a></li>
|
<li>der <a class="intern" href="http://www.gmg.ruhr-uni-bochum.de/geophysik/seismology">Arbeitsgruppe Seismologie</a></li>
|
||||||
<li>des <a class="intern" href="http://www.gmg.ruhr-uni-bochum.de">Instituts für Geologie, Mineralogie und Geophysik</a></li>
|
<li>des <a class="intern" href="http://www.gmg.ruhr-uni-bochum.de">Instituts für Geologie, Mineralogie und Geophysik</a></li>
|
||||||
<li>der <a class="intern" href="http://www.rub.de">Ruhr-Universität Bochum</a></li>
|
<li>der <a class="intern" href="http://www.rub.de">Ruhr-Universität Bochum</a></li>
|
||||||
|
|||||||
66
www/map.js
66
www/map.js
@@ -4,7 +4,7 @@
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
/* License
|
/* License
|
||||||
Copyright 2014 Kasper D. Fischer <kasper.fischer@rub.de>
|
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the Free
|
under the terms of the GNU General Public License as published by the Free
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
for more details.
|
for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
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$
|
$Id$
|
||||||
*/
|
*/
|
||||||
@@ -32,7 +32,7 @@ function addStationMarker(id, lat, lng, station) {
|
|||||||
color: config['station']['markerColor'],
|
color: config['station']['markerColor'],
|
||||||
weight: 1,
|
weight: 1,
|
||||||
opacity: 1,
|
opacity: 1,
|
||||||
radius: config['station']['markerSize'][id] || config['station']['markerSize']['default'],
|
radius: config['station']['markerSize'][id] || config['station']['markerSize']['defaultSize'],
|
||||||
className: id+' stationMarker',
|
className: id+' stationMarker',
|
||||||
});
|
});
|
||||||
marker.bindLabel('Station '+station);
|
marker.bindLabel('Station '+station);
|
||||||
@@ -61,6 +61,12 @@ function addEventMarker(id, lat, lng, mag, type) {
|
|||||||
case 'earthquake':
|
case 'earthquake':
|
||||||
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
|
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
|
||||||
break;
|
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':
|
case 'explosion':
|
||||||
markerOptions['numberOfSides'] = 6;
|
markerOptions['numberOfSides'] = 6;
|
||||||
markerOptions['radius'] = 2.0*markerOptions['radius'];
|
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);
|
marker = L.regularPolygonMarker(L.latLng(lat, lng), markerOptions);
|
||||||
break;
|
break;
|
||||||
case 'quarry blast':
|
case 'quarry blast':
|
||||||
|
case 'controlled explosion':
|
||||||
markerOptions['numberOfPoints'] = 7;
|
markerOptions['numberOfPoints'] = 7;
|
||||||
markerOptions['innerRadius'] = 0.3*markerOptions['radius'];
|
markerOptions['innerRadius'] = 0.3*markerOptions['radius'];
|
||||||
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
|
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
|
||||||
@@ -133,19 +140,18 @@ function initMapLink() {
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
||||||
// create a map in the "map" div, set the view to a given place and zoom
|
// 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
|
// create baselayer
|
||||||
switch ( config['map']['baselayer'] ) {
|
switch ( config['map']['baselayer'] ) {
|
||||||
case 'osmde': // add OpenStreetMap.DE tile layer
|
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: '© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',
|
attribution: '© <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',
|
||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
break;
|
break;
|
||||||
case 'esrigray': // add ESRI Grayscale World Map (neither city nor road names)
|
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}',
|
L.tileLayer('//server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}',
|
||||||
{
|
{
|
||||||
attribution: 'Tiles © Esri — Esri, DeLorme, NAVTEQ',
|
attribution: 'Tiles © Esri — Esri, DeLorme, NAVTEQ',
|
||||||
@@ -153,30 +159,50 @@ $(document).ready(function() {
|
|||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
break;
|
break;
|
||||||
case 'aerial': // add ESRI WordImagery tile layer
|
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'
|
attribution: 'Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community'
|
||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
break;
|
break;
|
||||||
case 'mapquestgray': // add MapQuestOSM tile layer
|
case 'komoot': // add OpenStreetMap.DE tile layer
|
||||||
L.tileLayer.grayscale('http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
|
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',
|
||||||
{
|
{
|
||||||
subdomains: '1234',
|
attribution: 'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="https://www.komoot.de/">Komoot</a>',
|
||||||
detectRetina: true,
|
|
||||||
attribution: 'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="http://www.mapquest.com/">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png">',
|
|
||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
break;
|
break;
|
||||||
|
case 'mapquestgray': // add MapQuestOSM tile layer
|
||||||
|
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 © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="https://www.mapquest.com/">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png">',
|
||||||
|
//}).addTo(map);
|
||||||
|
//break;
|
||||||
case 'mapquest': // add MapQuestOSM tile layer
|
case 'mapquest': // add MapQuestOSM tile layer
|
||||||
null;
|
null;
|
||||||
default:
|
default:
|
||||||
L.tileLayer('http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
|
var mapLayer = MQ.mapLayer();
|
||||||
{
|
map = L.map('map', {
|
||||||
subdomains: '1234',
|
zoomControl: false,
|
||||||
detectRetina: true,
|
worldCopyJump: true,
|
||||||
attribution: 'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="http://www.mapquest.com/">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png">',
|
layers: mapLayer,
|
||||||
}).addTo(map);
|
}).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 © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="https://www.mapquest.com/">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png">',
|
||||||
|
//}).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
|
// create station and event layer
|
||||||
// stationLayer = L.geoJson().addTo(map);
|
// stationLayer = L.geoJson().addTo(map);
|
||||||
stationLayer = new L.MarkerGroup().addTo(map);
|
stationLayer = new L.MarkerGroup().addTo(map);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
/* License
|
/* License
|
||||||
Copyright 2014 Kasper D. Fischer <kasper.fischer@rub.de>
|
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the Free
|
under the terms of the GNU General Public License as published by the Free
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
for more details.
|
for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
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$
|
$Id$
|
||||||
*/
|
*/
|
||||||
@@ -32,7 +32,7 @@ function addStationMarker(id, lat, lng, station) {
|
|||||||
color: config['station']['markerColor'],
|
color: config['station']['markerColor'],
|
||||||
weight: 1,
|
weight: 1,
|
||||||
opacity: 1,
|
opacity: 1,
|
||||||
radius: config['station']['markerSize'][id] || config['station']['markerSize']['default'],
|
radius: config['station']['markerSize'][id] || config['station']['markerSize']['defaultSize'],
|
||||||
className: id+' stationMarker',
|
className: id+' stationMarker',
|
||||||
});
|
});
|
||||||
marker.bindLabel('Station '+station);
|
marker.bindLabel('Station '+station);
|
||||||
@@ -61,6 +61,12 @@ function addEventMarker(id, lat, lng, mag, type) {
|
|||||||
case 'earthquake':
|
case 'earthquake':
|
||||||
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
|
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
|
||||||
break;
|
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':
|
case 'explosion':
|
||||||
markerOptions['numberOfSides'] = 6;
|
markerOptions['numberOfSides'] = 6;
|
||||||
markerOptions['radius'] = 2.0*markerOptions['radius'];
|
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);
|
marker = L.regularPolygonMarker(L.latLng(lat, lng), markerOptions);
|
||||||
break;
|
break;
|
||||||
case 'quarry blast':
|
case 'quarry blast':
|
||||||
|
case 'controlled explosion':
|
||||||
markerOptions['numberOfPoints'] = 7;
|
markerOptions['numberOfPoints'] = 7;
|
||||||
markerOptions['innerRadius'] = 0.3*markerOptions['radius'];
|
markerOptions['innerRadius'] = 0.3*markerOptions['radius'];
|
||||||
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
|
marker = L.starMarker(L.latLng(lat, lng), markerOptions);
|
||||||
@@ -133,19 +140,19 @@ function initMapLink() {
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
||||||
// create a map in the "map" div, set the view to a given place and zoom
|
// 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
|
// create baselayer
|
||||||
switch ( config['map']['baselayer'] ) {
|
switch ( config['map']['baselayer'] ) {
|
||||||
case 'osmde': // add OpenStreetMap.DE tile layer
|
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: '© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',
|
attribution: '© <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',
|
||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
break;
|
break;
|
||||||
case 'esrigray': // add ESRI Grayscale World Map (neither city nor road names)
|
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}',
|
L.tileLayer('//server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}',
|
||||||
{
|
{
|
||||||
attribution: 'Tiles © Esri — Esri, DeLorme, NAVTEQ',
|
attribution: 'Tiles © Esri — Esri, DeLorme, NAVTEQ',
|
||||||
@@ -153,29 +160,48 @@ $(document).ready(function() {
|
|||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
break;
|
break;
|
||||||
case 'aerial': // add ESRI WordImagery tile layer
|
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'
|
attribution: 'Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community'
|
||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
break;
|
break;
|
||||||
case 'mapquestgray': // add MapQuestOSM tile layer
|
case 'komoot': // add OpenStreetMap.DE tile layer
|
||||||
L.tileLayer.grayscale('http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
|
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',
|
||||||
{
|
{
|
||||||
subdomains: '1234',
|
attribution: 'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="https://www.komoot.de/">Komoot</a>',
|
||||||
detectRetina: true,
|
|
||||||
attribution: 'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="http://www.mapquest.com/">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png">',
|
|
||||||
}).addTo(map);
|
}).addTo(map);
|
||||||
break;
|
break;
|
||||||
|
case 'mapquestgray': // add MapQuestOSM tile layer
|
||||||
|
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 © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="https://www.mapquest.com/">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png">',
|
||||||
|
//}).addTo(map);
|
||||||
|
//break;
|
||||||
case 'mapquest': // add MapQuestOSM tile layer
|
case 'mapquest': // add MapQuestOSM tile layer
|
||||||
null;
|
null;
|
||||||
default:
|
default:
|
||||||
L.tileLayer('http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg',
|
var mapLayer = MQ.mapLayer();
|
||||||
{
|
map = L.map('map', {
|
||||||
subdomains: '1234',
|
zoomControl: false,
|
||||||
detectRetina: true,
|
worldCopyJump: true,
|
||||||
attribution: 'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="http://www.mapquest.com/">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png">',
|
layers: mapLayer,
|
||||||
}).addTo(map);
|
}).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 © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> | Tiles Courtesy of <a href="https://www.mapquest.com/">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png">',
|
||||||
|
//}).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
|
// create station and event layer
|
||||||
// stationLayer = L.geoJson().addTo(map);
|
// stationLayer = L.geoJson().addTo(map);
|
||||||
@@ -216,6 +242,5 @@ $(document).ready(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// print icon
|
// print icon
|
||||||
// L.easyPrint().addTo(map);
|
L.easyPrint().addTo(map);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
36
www/misc.js
36
www/misc.js
@@ -4,7 +4,7 @@
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
/* License
|
/* License
|
||||||
Copyright 2014 Kasper D. Fischer <kasper.fischer@rub.de>
|
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the Free
|
under the terms of the GNU General Public License as published by the Free
|
||||||
@@ -90,14 +90,13 @@ var eventDetails = {};
|
|||||||
var stationTable = {};
|
var stationTable = {};
|
||||||
var config = {
|
var config = {
|
||||||
ajax: {
|
ajax: {
|
||||||
timeout: 10000, // 10 seconds
|
timeout: 20000, // 20 seconds
|
||||||
eventURL: '/fdsnws/event/1/query',
|
eventURL: 'https://fdsnws.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query',
|
||||||
dlsvURL: 'dlsv',
|
dlsvURL: 'dlsv',
|
||||||
mseedURL: '/fdsnws/dataselect/1/query',
|
mseedURL: 'https://fdsnws.geophysik.ruhr-uni-bochum.de/fdsnws/dataselect/1/query',
|
||||||
stationURL: '/fdsnws/station/1/query',
|
stationURL: 'https://fdsnws.geophysik.ruhr-uni-bochum.de/fdsnws/station/1/query',
|
||||||
nominatimURL: '//open.mapquestapi.com/nominatim/v1/reverse.php',
|
nominatimURL: 'https://photon.komoot.de/reverse',
|
||||||
// nominatimURL: '//nominatim.openstreetmap.org/reverse',
|
timespan: 180,
|
||||||
timespan: 60,
|
|
||||||
},
|
},
|
||||||
event: {
|
event: {
|
||||||
evaluationBlacklist: ['automatic', 'preliminary', 'rejected'],
|
evaluationBlacklist: ['automatic', 'preliminary', 'rejected'],
|
||||||
@@ -106,7 +105,9 @@ var config = {
|
|||||||
markerColorH: 'red',
|
markerColorH: 'red',
|
||||||
minMag: 1.2,
|
minMag: 1.2,
|
||||||
minMagDelta: 0.1,
|
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: {
|
map: {
|
||||||
zoomDefault: 9,
|
zoomDefault: 9,
|
||||||
@@ -119,7 +120,7 @@ var config = {
|
|||||||
markerColor: 'darkgreen',
|
markerColor: 'darkgreen',
|
||||||
markerOpacity: 1,
|
markerOpacity: 1,
|
||||||
markerSize: {
|
markerSize: {
|
||||||
default: 8,
|
defaultSize: 8,
|
||||||
GE_IBBN: 10,
|
GE_IBBN: 10,
|
||||||
GR_BUG: 10,
|
GR_BUG: 10,
|
||||||
GR_KAST: 10,
|
GR_KAST: 10,
|
||||||
@@ -129,7 +130,11 @@ var config = {
|
|||||||
NL_WIT: 3,
|
NL_WIT: 3,
|
||||||
NL_WTSB: 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: {
|
tab: {
|
||||||
active: 0,
|
active: 0,
|
||||||
@@ -140,13 +145,18 @@ var config = {
|
|||||||
var networkURL = {
|
var networkURL = {
|
||||||
GE: 'http://dx.doi.org/10.14470/TR560404',
|
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',
|
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',
|
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 = {
|
var networkText = {
|
||||||
GE: '<a href="'+networkURL['GE']+'" target="_blank">GEOFON</a> Program, GFZ Potsdam',
|
GE: '<a href="'+networkURL['GE']+'" target="_blank">GEOFON Seismic Network</a> - Deutsches GeoForschungsZentrum GFZ',
|
||||||
GR: '<a href="'+networkURL['GR']+'" target="_blank">German Regional Seismic Network</a>, BGR Hannover',
|
GR: '<a href="'+networkURL['GR']+'" target="_blank">German Regional Seismic Network</a>, BGR Hannover',
|
||||||
|
NH: '<a href="'+networkURL['NH']+'" target="_blank">Geologischer Dienst NRW</a>, Krefeld',
|
||||||
NL: '<a href="'+networkURL['NL']+'" target="_blank">Netherlands Seismic Network</a>, The Netherlands',
|
NL: '<a href="'+networkURL['NL']+'" target="_blank">Netherlands Seismic Network</a>, The Netherlands',
|
||||||
RN: 'RuhrNet - Ruhr-University Bochum, Germany',
|
RN: '<a href="'+networkURL['RN']+'" target="_blank">RuhrNet - Ruhr-University Bochum, Germany</a>',
|
||||||
|
YD: '<a href="'+networkURL['YD']+'" target="_blank">FloodRisk Seismic Network</a>',
|
||||||
};
|
};
|
||||||
var bochumStation = ['BUG', 'IBBN', 'KERA', 'KARP'];
|
var bochumStation = ['BUG', 'IBBN', 'KERA', 'KARP'];
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,29 @@ var specialEvents = [
|
|||||||
//'bug2014ilxd', // Bassum
|
//'bug2014ilxd', // Bassum
|
||||||
//'bug2014gfzw', // Darmstadt
|
//'bug2014gfzw', // Darmstadt
|
||||||
//'bug2014datb', // Groningen
|
//'bug2014datb', // Groningen
|
||||||
'bug2013yvko', // Haltern 3.4
|
// 'bug2013yvko', // Haltern 3.4
|
||||||
'bug2015fdpy', // Darmstadt 3.0
|
// '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
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
/* License
|
/* License
|
||||||
Copyright 2014 Kasper D. Fischer <kasper.fischer@rub.de>
|
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the Free
|
under the terms of the GNU General Public License as published by the Free
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Load the stations using ajax */
|
/* Load the stations using ajax */
|
||||||
function loadStations(stime, etime) {
|
function loadStations(station, stime, etime) {
|
||||||
var mapBounds = map.getBounds();
|
var mapBounds = map.getBounds();
|
||||||
var N = mapBounds.getNorth();
|
var N = mapBounds.getNorth();
|
||||||
var E = mapBounds.getEast();
|
var E = mapBounds.getEast();
|
||||||
@@ -37,14 +37,23 @@ function loadStations(stime, etime) {
|
|||||||
var etime = new Date();
|
var etime = new Date();
|
||||||
etime.setDate(etime.getDate()+1);
|
etime.setDate(etime.getDate()+1);
|
||||||
};
|
};
|
||||||
var request_data = {
|
if ( !station ) {
|
||||||
endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
var request_data = {
|
||||||
startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
||||||
level: 'channel',
|
startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
||||||
minlat: S-config['map']['latlngDelta'],
|
level: 'station',
|
||||||
maxlat: N+config['map']['latlngDelta'],
|
minlat: S-config['map']['latlngDelta'],
|
||||||
minlon: W-config['map']['latlngDelta'],
|
maxlat: N+config['map']['latlngDelta'],
|
||||||
maxlon: E+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({
|
$.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
@@ -61,13 +70,13 @@ function loadStations(stime, etime) {
|
|||||||
lng = $(this).find('Longitude:first').text(),
|
lng = $(this).find('Longitude:first').text(),
|
||||||
stationID = network+'_'+station,
|
stationID = network+'_'+station,
|
||||||
stationText = network+'.'+station;
|
stationText = network+'.'+station;
|
||||||
if ( !stationTable[stationID] ) {
|
if ( !stationTable[stationID] && $.inArray(stationID, config['station']['stationBlacklist']) <0 ) {
|
||||||
// general station info (1st line)
|
// general station info (1st line)
|
||||||
var row = sprintf('<tr><td><a href="#" class="toggle">%s</a></td><td><a href="#" class="toggle">%s</a></td><td class="ar">%7.4f</td><td class="ar">%7.4f</td></tr>' , network, station, Number(lat), Number(lng));
|
var row = sprintf('<tr><td><a href="#" class="toggle">%s</a></td><td><a href="#" class="toggle">%s</a></td><td class="ar">%7.4f</td><td class="ar">%7.4f</td></tr>' , network, station, Number(lat), Number(lng));
|
||||||
// setting up network details (2nd line)
|
// setting up network details (2nd line)
|
||||||
row += sprintf('<tr class="tablesorter-childRow station-details"><td colspan="4">%s', networkText[network] || '');
|
row += sprintf('<tr class="tablesorter-childRow station-details"><td colspan="4">%s', networkText[network] || '');
|
||||||
row += ( $.inArray(station, bochumStation)+1 ) ? '</br><em>Betreiber:</em> Ruhr-Universität Bochum</td></tr>' : '</td></tr>' ;
|
row += ( $.inArray(station, bochumStation)+1 ) ? '<br /><em>Betreiber:</em> Ruhr-Universität Bochum</td></tr>' : '</td></tr>' ;
|
||||||
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)
|
// setting up station details (3rd line)
|
||||||
row += '<tr class="tablesorter-childRow station-details"><td colspan="4">';
|
row += '<tr class="tablesorter-childRow station-details"><td colspan="4">';
|
||||||
row += stationDetails(station, network, lat, lng, stationID, stationText, $(this));
|
row += stationDetails(station, network, lat, lng, stationID, stationText, $(this));
|
||||||
@@ -81,7 +90,7 @@ function loadStations(stime, etime) {
|
|||||||
sc3mlRespURL = URL + '&level=response&format=sc3ml';
|
sc3mlRespURL = URL + '&level=response&format=sc3ml';
|
||||||
dlsvFile = sprintf('%s_%s.dlsv', network.toUpperCase(), station.toUpperCase());
|
dlsvFile = sprintf('%s_%s.dlsv', network.toUpperCase(), station.toUpperCase());
|
||||||
row += '<tr class="tablesorter-childRow station-download"><td colspan="4">'
|
row += '<tr class="tablesorter-childRow station-download"><td colspan="4">'
|
||||||
+ sprintf('Download details: <a download="%s.xml" href="%s" target="_blank">FDSNxml</a> or <a download="%s.sc3" href="%s" target="_blank">SC3ml</a></br> ', stationID, fdsnxmlURL, stationID, sc3mlURL)
|
+ sprintf('Download details: <a download="%s.xml" href="%s" target="_blank">FDSNxml</a> or <a download="%s.sc3" href="%s" target="_blank">SC3ml</a><br /> ', stationID, fdsnxmlURL, stationID, sc3mlURL)
|
||||||
+ sprintf('Response files: <a download="%s_response.xml" href="%s" target="_blank">FDSNxml</a>, <a download="%s_response.sc3" href="%s" target="_blank">SC3ml</a> ', stationID, fdsnxmlRespURL, stationID, sc3mlRespURL)
|
+ sprintf('Response files: <a download="%s_response.xml" href="%s" target="_blank">FDSNxml</a>, <a download="%s_response.sc3" href="%s" target="_blank">SC3ml</a> ', stationID, fdsnxmlRespURL, stationID, sc3mlRespURL)
|
||||||
+ sprintf('or <a href="%s" download="%s" type="application/octet-stream">datalessSEED</a>', config['ajax']['dlsvURL'] + '/' + dlsvFile, dlsvFile.toLowerCase())
|
+ sprintf('or <a href="%s" download="%s" type="application/octet-stream">datalessSEED</a>', config['ajax']['dlsvURL'] + '/' + dlsvFile, dlsvFile.toLowerCase())
|
||||||
+ '</td></tr>';
|
+ '</td></tr>';
|
||||||
@@ -114,7 +123,16 @@ function loadStations(stime, etime) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
// create stations csv download link
|
// 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));
|
$('#stations-csv-link').attr('href', config['ajax']['stationURL']+'?'+$.param(request_data));
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -124,13 +142,13 @@ function stationDetails(station, network, lat, lng, stationId, stationText, stat
|
|||||||
var elevation = stationObject.find('Elevation:first').text();
|
var elevation = stationObject.find('Elevation:first').text();
|
||||||
var name = stationObject.find('Site > Name').text();
|
var name = stationObject.find('Site > Name').text();
|
||||||
output = '<pre>'
|
output = '<pre>'
|
||||||
+ name + '</br>'
|
+ name + '<br />'
|
||||||
+ 'Position: ' + lat + '°N ' + lng + '°E, Höhe: ' + elevation + ' m NN</br>';
|
+ 'Position: ' + lat + '°N ' + lng + '°E, Höhe: ' + elevation + ' m NN<br />';
|
||||||
stationObject.find('Channel').each(function() {
|
stationObject.find('Channel').each(function() {
|
||||||
var code = $(this).attr('code');
|
var code = $(this).attr('code');
|
||||||
var sensor = $(this).find('Sensor > Type').text().split(',')[0];
|
var sensor = $(this).find('Sensor > Type').text().split(',')[0];
|
||||||
var sampleRate = $(this).find('SampleRate').text();
|
var sampleRate = $(this).find('SampleRate').text();
|
||||||
output += '</br>Kanal ' + code + ', Abtastrate ' + sampleRate + ' Hz, Sensor ' + sensor;
|
output += '<br />Kanal ' + code + ', Abtastrate ' + sampleRate + ' Hz, Sensor ' + sensor;
|
||||||
});
|
});
|
||||||
output += '</pre>';
|
output += '</pre>';
|
||||||
return output;
|
return output;
|
||||||
@@ -205,6 +223,20 @@ function initStationTable() {
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
loadStations();
|
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
|
// show / hide station info
|
||||||
$('#stationstable').delegate('.toggle', 'click' , function(){
|
$('#stationstable').delegate('.toggle', 'click' , function(){
|
||||||
// toggle visibility of selected row
|
// toggle visibility of selected row
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
/* License
|
/* License
|
||||||
Copyright 2014 Kasper D. Fischer <kasper.fischer@rub.de>
|
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the Free
|
under the terms of the GNU General Public License as published by the Free
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Load the stations using ajax */
|
/* Load the stations using ajax */
|
||||||
function loadStations(stime, etime) {
|
function loadStations(station, stime, etime) {
|
||||||
var mapBounds = map.getBounds();
|
var mapBounds = map.getBounds();
|
||||||
var N = mapBounds.getNorth();
|
var N = mapBounds.getNorth();
|
||||||
var E = mapBounds.getEast();
|
var E = mapBounds.getEast();
|
||||||
@@ -37,14 +37,23 @@ function loadStations(stime, etime) {
|
|||||||
var etime = new Date();
|
var etime = new Date();
|
||||||
etime.setDate(etime.getDate()+1);
|
etime.setDate(etime.getDate()+1);
|
||||||
};
|
};
|
||||||
var request_data = {
|
if ( !station ) {
|
||||||
endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
var request_data = {
|
||||||
startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
||||||
level: 'channel',
|
startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
||||||
minlat: S-config['map']['latlngDelta'],
|
level: 'station',
|
||||||
maxlat: N+config['map']['latlngDelta'],
|
minlat: S-config['map']['latlngDelta'],
|
||||||
minlon: W-config['map']['latlngDelta'],
|
maxlat: N+config['map']['latlngDelta'],
|
||||||
maxlon: E+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({
|
$.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
@@ -61,13 +70,13 @@ function loadStations(stime, etime) {
|
|||||||
lng = $(this).find('Longitude:first').text(),
|
lng = $(this).find('Longitude:first').text(),
|
||||||
stationID = network+'_'+station,
|
stationID = network+'_'+station,
|
||||||
stationText = network+'.'+station;
|
stationText = network+'.'+station;
|
||||||
if ( !stationTable[stationID] ) {
|
if ( !stationTable[stationID] && $.inArray(stationID, config['station']['stationBlacklist']) <0 ) {
|
||||||
// general station info (1st line)
|
// general station info (1st line)
|
||||||
var row = sprintf('<tr><td><a href="#" class="toggle">%s</a></td><td><a href="#" class="toggle">%s</a></td><td class="ar">%7.4f</td><td class="ar">%7.4f</td></tr>' , network, station, Number(lat), Number(lng));
|
var row = sprintf('<tr><td><a href="#" class="toggle">%s</a></td><td><a href="#" class="toggle">%s</a></td><td class="ar">%7.4f</td><td class="ar">%7.4f</td></tr>' , network, station, Number(lat), Number(lng));
|
||||||
// setting up network details (2nd line)
|
// setting up network details (2nd line)
|
||||||
row += sprintf('<tr class="tablesorter-childRow station-details"><td colspan="4">%s', networkText[network] || '');
|
row += sprintf('<tr class="tablesorter-childRow station-details"><td colspan="4">%s', networkText[network] || '');
|
||||||
row += ( $.inArray(station, bochumStation)+1 ) ? '</br><em>Operator:</em> Ruhr-University Bochum</td></tr>' : '</td></tr>' ;
|
row += ( $.inArray(station, bochumStation)+1 ) ? '<br /><em>Operator:</em> Ruhr-University Bochum, Germany</td></tr>' : '</td></tr>' ;
|
||||||
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)
|
// setting up station details (3rd line)
|
||||||
row += '<tr class="tablesorter-childRow station-details"><td colspan="4">';
|
row += '<tr class="tablesorter-childRow station-details"><td colspan="4">';
|
||||||
row += stationDetails(station, network, lat, lng, stationID, stationText, $(this));
|
row += stationDetails(station, network, lat, lng, stationID, stationText, $(this));
|
||||||
@@ -81,7 +90,7 @@ function loadStations(stime, etime) {
|
|||||||
sc3mlRespURL = URL + '&level=response&format=sc3ml';
|
sc3mlRespURL = URL + '&level=response&format=sc3ml';
|
||||||
dlsvFile = sprintf('%s_%s.dlsv', network.toUpperCase(), station.toUpperCase());
|
dlsvFile = sprintf('%s_%s.dlsv', network.toUpperCase(), station.toUpperCase());
|
||||||
row += '<tr class="tablesorter-childRow station-download"><td colspan="4">'
|
row += '<tr class="tablesorter-childRow station-download"><td colspan="4">'
|
||||||
+ sprintf('Download details: <a download="%s.xml" href="%s" target="_blank">FDSNxml</a> or <a download="%s.sc3" href="%s" target="_blank">SC3ml</a></br> ', stationID, fdsnxmlURL, stationID, sc3mlURL)
|
+ sprintf('Download details: <a download="%s.xml" href="%s" target="_blank">FDSNxml</a> or <a download="%s.sc3" href="%s" target="_blank">SC3ml</a><br /> ', stationID, fdsnxmlURL, stationID, sc3mlURL)
|
||||||
+ sprintf('Response files: <a download="%s_response.xml" href="%s" target="_blank">FDSNxml</a>, <a download="%s_response.sc3" href="%s" target="_blank">SC3ml</a> ', stationID, fdsnxmlRespURL, stationID, sc3mlRespURL)
|
+ sprintf('Response files: <a download="%s_response.xml" href="%s" target="_blank">FDSNxml</a>, <a download="%s_response.sc3" href="%s" target="_blank">SC3ml</a> ', stationID, fdsnxmlRespURL, stationID, sc3mlRespURL)
|
||||||
+ sprintf('or <a href="%s" download="%s" type="application/octet-stream">datalessSEED</a>', config['ajax']['dlsvURL'] + '/' + dlsvFile, dlsvFile.toLowerCase())
|
+ sprintf('or <a href="%s" download="%s" type="application/octet-stream">datalessSEED</a>', config['ajax']['dlsvURL'] + '/' + dlsvFile, dlsvFile.toLowerCase())
|
||||||
+ '</td></tr>';
|
+ '</td></tr>';
|
||||||
@@ -114,7 +123,16 @@ function loadStations(stime, etime) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
// create stations csv download link
|
// 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));
|
$('#stations-csv-link').attr('href', config['ajax']['stationURL']+'?'+$.param(request_data));
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -124,13 +142,13 @@ function stationDetails(station, network, lat, lng, stationId, stationText, stat
|
|||||||
var elevation = stationObject.find('Elevation:first').text();
|
var elevation = stationObject.find('Elevation:first').text();
|
||||||
var name = stationObject.find('Site > Name').text();
|
var name = stationObject.find('Site > Name').text();
|
||||||
output = '<pre>'
|
output = '<pre>'
|
||||||
+ name + '</br>'
|
+ name + '<br />'
|
||||||
+ 'Position: ' + lat + '°N ' + lng + '°E, height: ' + elevation + ' m a.s.l.</br>';
|
+ 'Position: ' + lat + '°N ' + lng + '°E, height: ' + elevation + ' m a.s.l.<br />';
|
||||||
stationObject.find('Channel').each(function() {
|
stationObject.find('Channel').each(function() {
|
||||||
var code = $(this).attr('code');
|
var code = $(this).attr('code');
|
||||||
var sensor = $(this).find('Sensor > Type').text().split(',')[0];
|
var sensor = $(this).find('Sensor > Type').text().split(',')[0];
|
||||||
var sampleRate = $(this).find('SampleRate').text();
|
var sampleRate = $(this).find('SampleRate').text();
|
||||||
output += '</br>Chanel ' + code + ', Samplingrate ' + sampleRate + ' Hz, Sensor ' + sensor;
|
output += '<br />Channel ' + code + ', Samplingrate ' + sampleRate + ' Hz, Sensor ' + sensor;
|
||||||
});
|
});
|
||||||
output += '</pre>';
|
output += '</pre>';
|
||||||
return output;
|
return output;
|
||||||
@@ -205,6 +223,20 @@ function initStationTable() {
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
loadStations();
|
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
|
// show / hide station info
|
||||||
$('#stationstable').delegate('.toggle', 'click' , function(){
|
$('#stationstable').delegate('.toggle', 'click' , function(){
|
||||||
// toggle visibility of selected row
|
// toggle visibility of selected row
|
||||||
|
|||||||
Reference in New Issue
Block a user