new release
This commit is contained in:
commit
d65abe1b08
49
.gitignore
vendored
49
.gitignore
vendored
@ -1,5 +1,44 @@
|
||||
scripts/events.xml
|
||||
scripts/geolocation.js
|
||||
## Visual Studio Code
|
||||
# Visual Studio Code files
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
*.code-workspace
|
||||
|
||||
# Local History for Visual Studio Code
|
||||
.history/
|
||||
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
## MacOS / OSX
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
## Project Files
|
||||
wsgi/.idea
|
||||
www/dlsv
|
||||
www/event.xml
|
||||
@ -7,9 +46,7 @@ www/events.xml
|
||||
www/geolocation.js
|
||||
www/geolocationTable.js
|
||||
www/stations.xml
|
||||
|
||||
.vscode/settings.json
|
||||
|
||||
www/index.html
|
||||
|
||||
www/favicon.ico
|
||||
scripts/*.json
|
||||
scripts/*.xml
|
||||
|
14
scripts/fetchEvents.sh
Executable file
14
scripts/fetchEvents.sh
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
# get starting date
|
||||
# find gdate or date command ( OSX: brew install coreutils)
|
||||
# the date command on OSX is not compatible to the linux date command
|
||||
datecmd=$((which gdate || which date )| grep bin)
|
||||
STIME="${1:-$(${datecmd} -d 6-month-ago +%Y-%m-%d)}"
|
||||
STIME="${STIME:-$(date +%Y-%m-%d)}"
|
||||
|
||||
# get output filename
|
||||
OUTPUT="${2:--}"
|
||||
|
||||
# fetch events
|
||||
curl -s -o ${OUTPUT} "https://fdsnws.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query?starttime=${STIME}&minlat=50.0&maxlat=53.0&minlon=4.0&maxlon=10.0&minmag=0.7"
|
@ -1,4 +0,0 @@
|
||||
#!/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"
|
@ -1,4 +1,4 @@
|
||||
#! /usr/bin/env python
|
||||
#! /usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
'''
|
||||
@ -8,12 +8,12 @@
|
||||
The output will will be a javascript structure to be included in the
|
||||
SeisObs map service.
|
||||
|
||||
The script should be updated regulary keep the total number of all
|
||||
The script should be updated regularly keep the total number of all
|
||||
AJAX calls to the Nominatim service small, e. g. :
|
||||
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://fdsnws.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query?minlat=50&maxlat=54&minlon=3&maxlon=10&minmag=1" | mkGeolocationTable.py > geolocationTable.js
|
||||
|
||||
License
|
||||
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
Copyright 2020-2021 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
|
||||
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
|
||||
@ -27,30 +27,32 @@
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
$Id$
|
||||
'''
|
||||
|
||||
def mkGeolocationTable(file=''):
|
||||
# imports
|
||||
## imports
|
||||
|
||||
# XML ElementTree
|
||||
try:
|
||||
import xml.etree.cElementTree as ET
|
||||
except ImportError:
|
||||
import xml.etree.ElementTree as ET
|
||||
from sys import stdin
|
||||
import warnings
|
||||
from time import sleep
|
||||
from geopy.geocoders import Photon
|
||||
import urllib2 as URL
|
||||
|
||||
# json
|
||||
import json as JSON
|
||||
|
||||
# constants
|
||||
namespaces = {'sc3': 'http://geofon.gfz-potsdam.de/ns/seiscomp3-schema/0.7',
|
||||
'qml': 'http://quakeml.org/xmlns/bed/1.2'}
|
||||
# sys stdin
|
||||
from sys import stdin
|
||||
|
||||
def simple_warning(message, category, filename, lineno, file=None, line=None):
|
||||
return 'Warning: %s\n' % (message)
|
||||
warnings.formatwarning = simple_warning
|
||||
# geopy
|
||||
from geopy.geocoders import Photon
|
||||
from geopy.extra.rate_limiter import RateLimiter
|
||||
from geopy.exc import GeocoderServiceError
|
||||
|
||||
## constants
|
||||
URL = 'https://photon.komoot.io/reverse?lon={lng:.3f}&lat={lat:.3f}&limit=5'
|
||||
NAMESPACES = {'sc3': 'http://geofon.gfz-potsdam.de/ns/seiscomp3-schema/0.7',
|
||||
'qml': 'http://quakeml.org/xmlns/bed/1.2'}
|
||||
|
||||
# try loading the file
|
||||
geolocationTable = {}
|
||||
@ -61,31 +63,35 @@ def mkGeolocationTable(file=''):
|
||||
geolocationTable = JSON.loads(jsonfileContent)
|
||||
except:
|
||||
geolocationTable = {}
|
||||
warnings.warn('Could not parse file %s' %file)
|
||||
logging.warning('Could not parse file %s' %file)
|
||||
|
||||
# parse event.xml
|
||||
DOM = ET.parse(stdin).getroot()
|
||||
geolocator = Photon()
|
||||
reverse_geolocate = RateLimiter(geolocator.reverse, min_delay_seconds=1)
|
||||
|
||||
# iterate over all events
|
||||
for event in DOM.iterfind('qml:eventParameters/qml:event', namespaces):
|
||||
count = 0
|
||||
for event in DOM.iterfind('qml:eventParameters/qml:event', NAMESPACES):
|
||||
count += 1
|
||||
publicID = event.attrib['publicID'].split('/')[2]
|
||||
lat = event.find('./qml:origin/qml:latitude/qml:value', namespaces).text
|
||||
lng = event.find('./qml:origin/qml:longitude/qml:value', namespaces).text
|
||||
evaluationMode = event.find('./qml:origin/qml:evaluationMode', namespaces).text
|
||||
lat = float(event.find('./qml:origin/qml:latitude/qml:value', NAMESPACES).text)
|
||||
lng = float(event.find('./qml:origin/qml:longitude/qml:value', NAMESPACES).text)
|
||||
evaluationMode = event.find('./qml:origin/qml:evaluationMode', NAMESPACES).text
|
||||
|
||||
if publicID in geolocationTable:
|
||||
warnings.warn('Skipping cached event %s' %(publicID))
|
||||
logging.warning('Skipping cached event {id}'.format(id=publicID))
|
||||
elif evaluationMode == 'automatic':
|
||||
warnings.warn('Skipping automatic event %s' %(publicID))
|
||||
logging.warning('Skipping automatic event {id}'.format(id=publicID))
|
||||
else:
|
||||
logging.info('Processing event {id}'.format(id=publicID))
|
||||
try:
|
||||
location = geolocator.reverse("{lat}, {lng}".format(lat=lat, lng=lng))
|
||||
except:
|
||||
warnings.warn('Reverse Geolocation failed. Skipping event.')
|
||||
sleep(1.1)
|
||||
locations = reverse_geolocate("{lat:.3f}, {lng:.3f}".format(lat=lat, lng=lng),exactly_one=False,limit=5)
|
||||
except GeocoderServiceError:
|
||||
logging.warning('Reverse Geolocation failed. Skipping event.')
|
||||
continue
|
||||
place = []
|
||||
for location in locations:
|
||||
try:
|
||||
place = location.raw['properties']['city']
|
||||
except KeyError:
|
||||
@ -98,30 +104,52 @@ def mkGeolocationTable(file=''):
|
||||
try:
|
||||
place = location.raw['properties']['county']
|
||||
except KeyError:
|
||||
warnings.warn('Could not extract city for event {0} at {1} N / {2} E (URL: {3})'.format(publicID, lat, lng, url))
|
||||
warnings.warn('Sucessfully looked up location for event {0}.'.format(publicID))
|
||||
logging.debug('Could not extract city for event {id} at {lat:.3f} N / {lng:.3f} E (Service: {url}), trying next returned result'
|
||||
.format(id=publicID, lat=lat, lng=lng, url=URL.format(lat=lat,lng=lng)))
|
||||
logging.debug(location.raw)
|
||||
if not place:
|
||||
logging.critical('Could not extract city for event {id} at {lat:.3f} N / {lng:.3f} E (Service: {url})'
|
||||
.format(id=publicID, lat=lat, lng=lng, url=URL.format(lat=lat,lng=lng)))
|
||||
geolocationTable[publicID] = place
|
||||
sleep(1.1)
|
||||
|
||||
# dump json
|
||||
print 'var geolocationTable = '+JSON.dumps(geolocationTable, sort_keys=True)+';'
|
||||
print('var geolocationTable = {0};'.format(JSON.dumps(geolocationTable, sort_keys=True)))
|
||||
logging.info("processed %d events", count)
|
||||
|
||||
# __main__
|
||||
if __name__ == "__main__":
|
||||
def printline(line):
|
||||
print line
|
||||
# use module logging
|
||||
import logging
|
||||
|
||||
# parse arguments
|
||||
import argparse
|
||||
versionText = '$Revision$ ($Date$, $Author$)'.replace('$', '').replace(':','')
|
||||
versionText = 'r20211017 (2021-10-17)'
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Reverese geocoding lookup of events in xml format (stdin).',
|
||||
description='Reverse geocoding lookup of events in xml format (stdin).',
|
||||
epilog=versionText)
|
||||
parser.add_argument('-v', '-V', '--version', action='version',
|
||||
version=versionText)
|
||||
parser.add_argument('-V', '--version', action='version', version=versionText,
|
||||
help="show version")
|
||||
parser.add_argument('-f', '--file', action='store', dest='file',
|
||||
help='read in JSON file containing old output.')
|
||||
group = parser.add_mutually_exclusive_group()
|
||||
group.add_argument("-v", "--verbose", action="store_true",
|
||||
help="increase output verbosity")
|
||||
group.add_argument("-q", "--quiet", action="store_true",
|
||||
help="disable output")
|
||||
group.add_argument("-d", "--debug", action="store_true",
|
||||
help="show debugging output",
|
||||
)
|
||||
cla = parser.parse_args()
|
||||
|
||||
# set logging level
|
||||
if cla.quiet:
|
||||
logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.ERROR)
|
||||
elif cla.verbose:
|
||||
logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)
|
||||
elif cla.debug:
|
||||
logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG)
|
||||
else:
|
||||
logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.WARN)
|
||||
|
||||
# call mkGeolocationTable(...)
|
||||
mkGeolocationTable(file=cla.file)
|
||||
|
@ -4,7 +4,7 @@
|
||||
**********************************************************************/
|
||||
|
||||
/* License
|
||||
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
Copyright 2020-2021 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
|
||||
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
|
||||
@ -19,7 +19,7 @@
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
$Id$
|
||||
Version r20211017 (2021-10-17)
|
||||
*/
|
||||
|
||||
/* adding row(s) to a table and format date strings afterwards */
|
||||
|
@ -4,7 +4,7 @@
|
||||
**********************************************************************/
|
||||
|
||||
/* License
|
||||
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
Copyright 2020-2021 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
|
||||
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
|
||||
@ -19,7 +19,7 @@
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
$Id$
|
||||
Version r20211017 (2021-10-17)
|
||||
*/
|
||||
|
||||
/* adding row(s) to a table and format date strings afterwards */
|
||||
|
56
www/external/TileLayer.Grayscale.js
vendored
56
www/external/TileLayer.Grayscale.js
vendored
@ -1,56 +0,0 @@
|
||||
/*
|
||||
* L.TileLayer.Grayscale is a regular tilelayer with grayscale makeover.
|
||||
*/
|
||||
|
||||
L.TileLayer.Grayscale = L.TileLayer.extend({
|
||||
options: {
|
||||
quotaRed: 21,
|
||||
quotaGreen: 71,
|
||||
quotaBlue: 8,
|
||||
quotaDividerTune: 0,
|
||||
quotaDivider: function() {
|
||||
return this.quotaRed + this.quotaGreen + this.quotaBlue + this.quotaDividerTune;
|
||||
}
|
||||
},
|
||||
|
||||
initialize: function (url, options) {
|
||||
options = options || {}
|
||||
options.crossOrigin = true;
|
||||
L.TileLayer.prototype.initialize.call(this, url, options);
|
||||
|
||||
this.on('tileload', function(e) {
|
||||
this._makeGrayscale(e.tile);
|
||||
});
|
||||
},
|
||||
|
||||
_createTile: function () {
|
||||
var tile = L.TileLayer.prototype._createTile.call(this);
|
||||
tile.crossOrigin = "Anonymous";
|
||||
return tile;
|
||||
},
|
||||
|
||||
_makeGrayscale: function (img) {
|
||||
if (img.getAttribute('data-grayscaled'))
|
||||
return;
|
||||
|
||||
img.crossOrigin = '';
|
||||
var canvas = document.createElement("canvas");
|
||||
canvas.width = img.width;
|
||||
canvas.height = img.height;
|
||||
var ctx = canvas.getContext("2d");
|
||||
ctx.drawImage(img, 0, 0);
|
||||
|
||||
var imgd = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||
var pix = imgd.data;
|
||||
for (var i = 0, n = pix.length; i < n; i += 4) {
|
||||
pix[i] = pix[i + 1] = pix[i + 2] = (this.options.quotaRed * pix[i] + this.options.quotaGreen * pix[i + 1] + this.options.quotaBlue * pix[i + 2]) / this.options.quotaDivider();
|
||||
}
|
||||
ctx.putImageData(imgd, 0, 0);
|
||||
img.setAttribute('data-grayscaled', true);
|
||||
img.src = canvas.toDataURL();
|
||||
}
|
||||
});
|
||||
|
||||
L.tileLayer.grayscale = function (url, options) {
|
||||
return new L.TileLayer.Grayscale(url, options);
|
||||
};
|
12
www/external/easyPrint/easyPrint.css
vendored
12
www/external/easyPrint/easyPrint.css
vendored
@ -1,20 +1,16 @@
|
||||
|
||||
.leaflet-control-easyPrint a {
|
||||
background:#fff url(print.png) no-repeat 5px;
|
||||
.leaflet-control-easyPrint-button a {
|
||||
background:#fff url(external/easyPrint/print.png) no-repeat 5px;
|
||||
background-size:16px 16px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media print {
|
||||
|
||||
//@media print {
|
||||
html {padding: 0px!important;}
|
||||
.leaflet-control-easyPrint-button{display: none!important;}
|
||||
|
||||
}
|
||||
|
||||
#map {
|
||||
//#map {
|
||||
width: 1200;
|
||||
height: 800;
|
||||
}
|
||||
|
3
www/external/sprintf.min.js
vendored
3
www/external/sprintf.min.js
vendored
@ -1,3 +0,0 @@
|
||||
/*! sprintf-js v1.1.2 | Copyright (c) 2007-present, Alexandru Mărășteanu <hello@alexei.ro> | BSD-3-Clause */
|
||||
!function(){"use strict";var g={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function y(e){return function(e,t){var r,n,i,s,a,o,p,c,l,u=1,f=e.length,d="";for(n=0;n<f;n++)if("string"==typeof e[n])d+=e[n];else if("object"==typeof e[n]){if((s=e[n]).keys)for(r=t[u],i=0;i<s.keys.length;i++){if(null==r)throw new Error(y('[sprintf] Cannot access property "%s" of undefined value "%s"',s.keys[i],s.keys[i-1]));r=r[s.keys[i]]}else r=s.param_no?t[s.param_no]:t[u++];if(g.not_type.test(s.type)&&g.not_primitive.test(s.type)&&r instanceof Function&&(r=r()),g.numeric_arg.test(s.type)&&"number"!=typeof r&&isNaN(r))throw new TypeError(y("[sprintf] expecting number but found %T",r));switch(g.number.test(s.type)&&(c=0<=r),s.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,s.width?parseInt(s.width):0);break;case"e":r=s.precision?parseFloat(r).toExponential(s.precision):parseFloat(r).toExponential();break;case"f":r=s.precision?parseFloat(r).toFixed(s.precision):parseFloat(r);break;case"g":r=s.precision?String(Number(r.toPrecision(s.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}g.json.test(s.type)?d+=r:(!g.number.test(s.type)||c&&!s.sign?l="":(l=c?"+":"-",r=r.toString().replace(g.sign,"")),o=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",p=s.width-(l+r).length,a=s.width&&0<p?o.repeat(p):"",d+=s.align?l+r+a:"0"===o?l+a+r:a+l+r)}return d}(function(e){if(p[e])return p[e];var t,r=e,n=[],i=0;for(;r;){if(null!==(t=g.text.exec(r)))n.push(t[0]);else if(null!==(t=g.modulo.exec(r)))n.push("%");else{if(null===(t=g.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var s=[],a=t[2],o=[];if(null===(o=g.key.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(o[1]);""!==(a=a.substring(o[0].length));)if(null!==(o=g.key_access.exec(a)))s.push(o[1]);else{if(null===(o=g.index_access.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(o[1])}t[2]=s}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}r=r.substring(t[0].length)}return p[e]=n}(e),arguments)}function e(e,t){return y.apply(null,[e].concat(t||[]))}var p=Object.create(null);"undefined"!=typeof exports&&(exports.sprintf=y,exports.vsprintf=e),"undefined"!=typeof window&&(window.sprintf=y,window.vsprintf=e,"function"==typeof define&&define.amd&&define(function(){return{sprintf:y,vsprintf:e}}))}();
|
||||
//# sourceMappingURL=sprintf.min.js.map
|
1
www/external/sprintf.min.js.map
vendored
1
www/external/sprintf.min.js.map
vendored
File diff suppressed because one or more lines are too long
@ -13,16 +13,15 @@
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.3/css/jquery.tablesorter.pager.min.css" integrity="sha512-TWYBryfpFn3IugX13ZCIYHNK3/2sZk3dyXMKp3chZL+0wRuwFr1hDqZR9Qd5SONzn+Lja10hercP2Xjuzz5O3g==" crossorigin="anonymous" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.6.0/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="anonymous" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet-dvf/0.3.1/css/dvf.min.css" integrity="sha512-Ts/IYE5D8PaMBUDHcf6O57lOiV923cai3sEXo0WjhakpTxlwodQQJx1YA2t1mDUKO6fIXEngkKFLQNMXK/kBZg==" crossorigin="anonymous" />
|
||||
<link type="text/css" rel="stylesheet" href="https://api.mqcdn.com/sdk/mapquest-js/v1.3.2/mapquest.css"/>
|
||||
<link rel="stylesheet" href="external/easyPrint/easyPrint.css"/>
|
||||
|
||||
<!-- jQuery & jQueryUI -->
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- Localtime & sprintf -->
|
||||
<!-- Localtime, sprintf, showdown -->
|
||||
<script type="text/javascript" src="external/jquery.localtime-0.9.1.min.js"></script> <!-- current 2020-07-15 -->
|
||||
<script type="text/javascript" src="external/sprintf.min.js"></script> <!-- version 1.1.2 downloaded 2020-07-15 -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/sprintf/1.1.2/sprintf.min.js" integrity="sha512-pmG0OkYtZVB2EqETE5HPsEaok7sNZFfStp5rNdpHv0tGQjbt1z8Qjzhtx88/4wsttOtDwq5DZGJyKyzEe7ribg==" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.9.1/showdown.min.js" integrity="sha512-L03kznCrNOfVxOUovR6ESfCz9Gfny7gihUX/huVbQB9zjODtYpxaVtIaAkpetoiyV2eqWbvxMH9fiSv5enX7bw==" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- Tablesorter -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.3/js/jquery.tablesorter.min.js" integrity="sha512-qzgd5cYSZcosqpzpn7zF2ZId8f/8CHmFKZ8j7mU4OUXTNRd5g+ZHBPsgKEwoqxCtdQvExE5LprwwPAgoicguNg==" crossorigin="anonymous"></script>
|
||||
@ -33,10 +32,9 @@
|
||||
|
||||
<!-- Leaflet -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.6.0/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin="anonymous"></script>
|
||||
<!-- <script type="text/javascript" src="external/TileLayer.Grayscale.js"></script> --> <! version of 2017-11-01 downloaded 2020-07-15 -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet-dvf/0.3.1/leaflet-dvf.markers.min.js" integrity="sha512-R/iucaxFnDFUTdZRxUvxzc+sypDQhqnxInBmNjgGE0RaiMl/ektVB1wFS/L0xDZmLFPpEGR0Kw3GEBgtQNFHyg==" crossorigin="anonymous"></script>
|
||||
<script src="external/jQuery.print.min.js"></script>
|
||||
<script src="external/easyPrint/bundle.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet-providers/1.10.1/leaflet-providers.min.js" integrity="sha512-Ifxj89Ujg72gC/psKB9ystryRYiopmDud2EmNTKC9kz192aQwDKVK1FzWsyPc37tgU0UmRQlNnBM++ZnwIXJ9Q==" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/leaflet.browser.print@1.0.5/dist/leaflet.browser.print.min.js" integrity="sha256-1MQvHEnVXSKwR+XIVswRSBla/B5ohkp5+HJtritIkgE=" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- Map, Events & Stations -->
|
||||
<script type="text/javascript" src="misc.js"></script>
|
||||
@ -156,20 +154,19 @@
|
||||
<p class="table-caption">Download als <a id="stations-csv-link" href="link" download="stations.csv">CSV-Datei</a>.</p>
|
||||
</div>
|
||||
<!-- More -->
|
||||
<div class="tab" id="moretab"><!--include virtual="more.html.de" --></div>
|
||||
<div class="tab more_de" id="moretab">
|
||||
<p>Text wird geladen ...</p>
|
||||
</div>
|
||||
<!-- Info -->
|
||||
<div class="tab" id="infotab">
|
||||
<div id="infoaccordion">
|
||||
<h3 class="aheader">Navigation / Links</h3>
|
||||
<!--#include virtual="info.inc.de" -->
|
||||
<div class="info_de"><p>Text wird geladen ...</p></div>
|
||||
<h3 class="aheader">Copyright / Lizenz</h3>
|
||||
<!--#include virtual="copyright.inc.de" -->
|
||||
<div class="copyright_de"><p>Text wird geladen ...</p></div>
|
||||
<h3 class="aheader">Impressum</h3>
|
||||
<!--#include virtual="impressum.inc.de" -->
|
||||
<div>
|
||||
<div class="imprint_de"><p>Text wird geladen ...</p></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- Logo -->
|
||||
|
@ -13,16 +13,15 @@
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.3/css/jquery.tablesorter.pager.min.css" integrity="sha512-TWYBryfpFn3IugX13ZCIYHNK3/2sZk3dyXMKp3chZL+0wRuwFr1hDqZR9Qd5SONzn+Lja10hercP2Xjuzz5O3g==" crossorigin="anonymous" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.6.0/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="anonymous" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet-dvf/0.3.1/css/dvf.min.css" integrity="sha512-Ts/IYE5D8PaMBUDHcf6O57lOiV923cai3sEXo0WjhakpTxlwodQQJx1YA2t1mDUKO6fIXEngkKFLQNMXK/kBZg==" crossorigin="anonymous" />
|
||||
<link type="text/css" rel="stylesheet" href="https://api.mqcdn.com/sdk/mapquest-js/v1.3.2/mapquest.css"/>
|
||||
<link rel="stylesheet" href="external/easyPrint/easyPrint.css"/>
|
||||
|
||||
<!-- jQuery & jQueryUI -->
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- Localtime & sprintf -->
|
||||
<!-- Localtime, sprintf, showdown -->
|
||||
<script type="text/javascript" src="external/jquery.localtime-0.9.1.min.js"></script> <!-- current 2020-07-15 -->
|
||||
<script type="text/javascript" src="external/sprintf.min.js"></script> <!-- version 1.1.2 downloaded 2020-07-15 -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/sprintf/1.1.2/sprintf.min.js" integrity="sha512-pmG0OkYtZVB2EqETE5HPsEaok7sNZFfStp5rNdpHv0tGQjbt1z8Qjzhtx88/4wsttOtDwq5DZGJyKyzEe7ribg==" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.9.1/showdown.min.js" integrity="sha512-L03kznCrNOfVxOUovR6ESfCz9Gfny7gihUX/huVbQB9zjODtYpxaVtIaAkpetoiyV2eqWbvxMH9fiSv5enX7bw==" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- Tablesorter -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.3/js/jquery.tablesorter.min.js" integrity="sha512-qzgd5cYSZcosqpzpn7zF2ZId8f/8CHmFKZ8j7mU4OUXTNRd5g+ZHBPsgKEwoqxCtdQvExE5LprwwPAgoicguNg==" crossorigin="anonymous"></script>
|
||||
@ -33,10 +32,9 @@
|
||||
|
||||
<!-- Leaflet -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.6.0/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin="anonymous"></script>
|
||||
<!-- <script type="text/javascript" src="external/TileLayer.Grayscale.js"></script> --> <! version of 2017-11-01 downloaded 2020-07-15 -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet-dvf/0.3.1/leaflet-dvf.markers.min.js" integrity="sha512-R/iucaxFnDFUTdZRxUvxzc+sypDQhqnxInBmNjgGE0RaiMl/ektVB1wFS/L0xDZmLFPpEGR0Kw3GEBgtQNFHyg==" crossorigin="anonymous"></script>
|
||||
<script src="external/jQuery.print.min.js"></script>
|
||||
<script src="external/easyPrint/bundle.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet-providers/1.10.1/leaflet-providers.min.js" integrity="sha512-Ifxj89Ujg72gC/psKB9ystryRYiopmDud2EmNTKC9kz192aQwDKVK1FzWsyPc37tgU0UmRQlNnBM++ZnwIXJ9Q==" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/leaflet.browser.print@1.0.5/dist/leaflet.browser.print.min.js" integrity="sha256-1MQvHEnVXSKwR+XIVswRSBla/B5ohkp5+HJtritIkgE=" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- Map, Events & Stations -->
|
||||
<script type="text/javascript" src="misc.js"></script>
|
||||
@ -156,20 +154,19 @@
|
||||
<p class="table-caption">Download as <a id="stations-csv-link" href="link" download="stations.csv">CSV file</a>.</p>
|
||||
</div>
|
||||
<!-- More -->
|
||||
<div class="tab" id="moretab"><!--include virtual="more.html.de" --></div>
|
||||
<div class="tab more_en" id="moretab">
|
||||
<p>Text loading ...</p>
|
||||
</div>
|
||||
<!-- Info -->
|
||||
<div class="tab" id="infotab">
|
||||
<div id="infoaccordion">
|
||||
<h3 class="aheader">Navigation / Links</h3>
|
||||
<!--#include virtual="info.inc.de" -->
|
||||
<h3 class="aheader">Copyright / License</h3>
|
||||
<!--#include virtual="copyright.inc.de" -->
|
||||
<div class="info_en"><p>Text loading ...</p></div>
|
||||
<h3 class="aheader">Copyright / Lizenz</h3>
|
||||
<div class="copyright_en"><p>Text loading ...</p></div>
|
||||
<h3 class="aheader">Imprint</h3>
|
||||
<!--#include virtual="impressum.inc.de" -->
|
||||
<div>
|
||||
<div class="imprint_en"><p>Text loading ...</p></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- Logo -->
|
||||
|
@ -18,4 +18,5 @@
|
||||
<ul>
|
||||
<li>Homepage der <a class="extern" target="_blank" href="http://www.rag.de">RAG</a></li>
|
||||
<li><a class="extern" target="_blank" href="http://www.bid.rag.de">Bürgerinformationssystem</a> der RAG</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
45
www/map.js
45
www/map.js
@ -4,7 +4,7 @@
|
||||
**********************************************************************/
|
||||
|
||||
/* License
|
||||
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
Copyright 2020-2021 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
|
||||
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
|
||||
@ -19,7 +19,7 @@
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see https://www.gnu.org/licenses/.
|
||||
|
||||
$Id$
|
||||
Version r20211017 (2021-10-17)
|
||||
*/
|
||||
|
||||
/* add station marker */
|
||||
@ -140,39 +140,27 @@ 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']);
|
||||
|
||||
// create baselayer
|
||||
switch ( config['map']['baselayer'] ) {
|
||||
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',
|
||||
maxZoom: 16
|
||||
}).addTo(map);
|
||||
L.tileLayer.provider('Esri.WorldGrayCanvas').addTo(map);
|
||||
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('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);
|
||||
L.tileLayer.provider('Esri.WorldImagery').addTo(map);
|
||||
break;
|
||||
case 'opentopo': // add OpenTopoMap tile layer https://opentopomap.org/
|
||||
map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
|
||||
L.tileLayer('https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png',
|
||||
{
|
||||
attribution: 'Kartendaten: © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, SRTM | Kartendarstellung: © <a href="http://opentopomap.org/">OpenTopoMap</a> (<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>)'
|
||||
}).addTo(map);
|
||||
case 'opentopo': // add OpenTopoMap tile layer
|
||||
L.tileLayer.provider('OpenTopoMap').addTo(map);
|
||||
break;
|
||||
case 'osmde': // add OpenStreetMap.DE tile layer, default
|
||||
null;
|
||||
default:
|
||||
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="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',
|
||||
}).addTo(map);
|
||||
L.tileLayer.provider('OpenStreetMap.DE').addTo(map);
|
||||
break;
|
||||
case 'mapnik': // add OpenStreetMap.Mapni tile layer
|
||||
L.tileLayer.provider('OpenStreetMap.Mapnik').addTo(map);
|
||||
break;
|
||||
default: // use OpenStreetMap.DE as default
|
||||
L.tileLayer.provider(config['map']['baselayer']).addTo(map);
|
||||
};
|
||||
|
||||
// add controls
|
||||
@ -218,5 +206,8 @@ $(document).ready(function() {
|
||||
});
|
||||
|
||||
// print icon
|
||||
L.easyPrint().addTo(map);
|
||||
L.control.browserPrint({
|
||||
title: 'print map',
|
||||
position: 'topright',
|
||||
}).addTo(map);
|
||||
});
|
||||
|
@ -4,7 +4,7 @@
|
||||
**********************************************************************/
|
||||
|
||||
/* License
|
||||
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
Copyright 2020-2021 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
|
||||
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
|
||||
@ -19,7 +19,7 @@
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see https://www.gnu.org/licenses/.
|
||||
|
||||
$Id$
|
||||
Version r20211017 (2021-10-17)
|
||||
*/
|
||||
|
||||
/* add station marker */
|
||||
@ -140,39 +140,27 @@ 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']);
|
||||
|
||||
// create baselayer
|
||||
switch ( config['map']['baselayer'] ) {
|
||||
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',
|
||||
maxZoom: 16
|
||||
}).addTo(map);
|
||||
L.tileLayer.provider('Esri.WorldGrayCanvas').addTo(map);
|
||||
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('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);
|
||||
L.tileLayer.provider('Esri.WorldImagery').addTo(map);
|
||||
break;
|
||||
case 'opentopo': // add OpenTopoMap tile layer https://opentopomap.org/
|
||||
map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']);
|
||||
L.tileLayer('https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png',
|
||||
{
|
||||
attribution: 'Kartendaten: © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors, SRTM | Kartendarstellung: © <a href="http://opentopomap.org/">OpenTopoMap</a> (<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>)'
|
||||
}).addTo(map);
|
||||
case 'opentopo': // add OpenTopoMap tile layer
|
||||
L.tileLayer.provider('OpenTopoMap').addTo(map);
|
||||
break;
|
||||
case 'osmde': // add OpenStreetMap.DE tile layer, default
|
||||
null;
|
||||
default:
|
||||
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="https://openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',
|
||||
}).addTo(map);
|
||||
L.tileLayer.provider('OpenStreetMap.DE').addTo(map);
|
||||
break;
|
||||
case 'mapnik': // add OpenStreetMap.Mapni tile layer
|
||||
L.tileLayer.provider('OpenStreetMap.Mapnik').addTo(map);
|
||||
break;
|
||||
default: // use OpenStreetMap.DE as default
|
||||
L.tileLayer.provider(config['map']['baselayer']).addTo(map);
|
||||
};
|
||||
|
||||
// add controls
|
||||
@ -218,5 +206,8 @@ $(document).ready(function() {
|
||||
});
|
||||
|
||||
// print icon
|
||||
L.easyPrint().addTo(map);
|
||||
L.control.browserPrint({
|
||||
title: 'print map',
|
||||
position: 'topright',
|
||||
}).addTo(map);
|
||||
});
|
||||
|
27
www/misc.js
27
www/misc.js
@ -4,7 +4,7 @@
|
||||
**********************************************************************/
|
||||
|
||||
/* License
|
||||
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
Copyright 2020-2021 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
|
||||
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
|
||||
@ -19,7 +19,7 @@
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
$Id$
|
||||
Version r20211017 (2021-10-17)
|
||||
*/
|
||||
|
||||
/* calculate marker radius from magnitude
|
||||
@ -113,6 +113,7 @@ var config = {
|
||||
centerDefault: [51.85, 7.0],
|
||||
timespan: 180,
|
||||
latlngDelta: 0.1,
|
||||
baselayer: 'OpenStreetMap.DE',
|
||||
},
|
||||
station: {
|
||||
markerColor: 'darkgreen',
|
||||
@ -136,7 +137,7 @@ var config = {
|
||||
},
|
||||
tab: {
|
||||
active: 0,
|
||||
disabled: [2],
|
||||
// disabled: [2],
|
||||
max: 4,
|
||||
},
|
||||
};
|
||||
@ -222,4 +223,24 @@ $(document).ready(function() {
|
||||
}).on("ajaxStop", function() {
|
||||
$("#spinner").hide();
|
||||
});
|
||||
|
||||
// load more tab content
|
||||
$.get("more_de.md", function( data ) {
|
||||
var converter = new showdown.Converter();
|
||||
$('.more_de').html(converter.makeHtml(data));
|
||||
});
|
||||
$.get("more_en.md", function( data ) {
|
||||
var converter = new showdown.Converter();
|
||||
$('.more_en').html(converter.makeHtml(data));
|
||||
});
|
||||
// load info tab content
|
||||
$.get("info.inc.de", function( data ) {
|
||||
$('.info_de, .info_en').html(data);
|
||||
});
|
||||
$.get("copyright.inc.de", function( data ) {
|
||||
$('.copyright_de, .copyright_en').html(data);
|
||||
});
|
||||
$.get("impressum.inc.de", function( data ) {
|
||||
$('.imprint_de, .imprint_en').html(data);
|
||||
});
|
||||
});
|
||||
|
@ -1 +0,0 @@
|
||||
Das seismologische Netz der Ruhr-Universität besteht aus 13 Stationen. Zwei breitbandige Stationen (BUG und IBBN) sind gleichzeitig Bestandteil des Deutschen Seismologischen Regionalnetzes (GRSN). Sie befinden sich in der Nähe der Ruhr-Universität in einem stillgelegten Stollen der Zeche Klosterbusch bzw. bei Ibbenbüren. Weitere Außenstationen gibt es bei Rheinberg (BRHE) und Hünxe (ZERL, westliches Ruhrgebiet), bei Haltern (BAVN, nörldiches Ruhrgebiet) und Hamm (HMES, östliches Ruhrgebiet). In Ibbenbüren ergänzen die kurzperiodischen Stationen IBBE und IBBS das Stationsnetz. Im Bereich der Ruhr-Universität werden weiterhin 5 kurzperiodische Stationen (BTEZ, BSHA, BKLB, BHOF, BULI) betrieben, die zur Ortung von Ereignissen im Ruhrgebiet verwendet werden. Das von den Seismometern registrierte Messsignal wird an den Stationen digitalisiert und kontinuierlich an die Auswertezentrale an der Ruhr-Universität Bochum übertragen.
|
9
www/more_de.md
Normal file
9
www/more_de.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Seismologisches Observatorium
|
||||
## Stationsnetz
|
||||
|
||||
Das seismologische Observatorium der Ruhr-Universität Bochum betreibt mehrere seismologische Stationen im Ruhrgebiet, im Raum Ibbenbüren und im Alpenvorland. Zwei breitbandige Stationen (BUG und IBBN) sind gleichzeitig Bestandteil des Deutschen Seismologischen Regionalnetzes (GRSN). Sie befinden sich in der Nähe der Ruhr-Universität in einem stillgelegten Stollen der Zeche Klosterbusch bzw. bei Ibbenbüren.
|
||||
|
||||
## Seismologische Netzwerke
|
||||
### RuhrNet (RN)
|
||||
### FloodRisk (YD)
|
||||
### AlpArray (Z3)
|
9
www/more_en.md
Normal file
9
www/more_en.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Seismological Observatory
|
||||
## Station Network
|
||||
|
||||
The seismological observatory of the Ruhr-University Bochum (Germany) maintains several seismolocical stations in the Ruhr area, around Ibbenbueren and in the foreland of the Alps. Two broadband stations (BUG and IBBN) are also part of the German Regional Seismological Network (GRSN). These are located near the Ruhr-University in an abandoned coal mine and near the city of Ibbenbueren.
|
||||
|
||||
## Seismological Networks
|
||||
### RuhrNet (RN)
|
||||
### FloodRisk (YD)
|
||||
### AlpArray (Z3)
|
@ -4,7 +4,7 @@
|
||||
**********************************************************************/
|
||||
|
||||
/* License
|
||||
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
Copyright 2020-2021 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
|
||||
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
|
||||
@ -19,7 +19,7 @@
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
$Id$
|
||||
Version r20211017 (2021-10-17)
|
||||
*/
|
||||
|
||||
/* Load the stations using ajax */
|
||||
|
@ -4,7 +4,7 @@
|
||||
**********************************************************************/
|
||||
|
||||
/* License
|
||||
Copyright 2020 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
Copyright 2020-2021 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
|
||||
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
|
||||
@ -19,7 +19,7 @@
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
$Id$
|
||||
Version r20211017 (2021-10-17)
|
||||
*/
|
||||
|
||||
/* Load the stations using ajax */
|
||||
|
Loading…
Reference in New Issue
Block a user