Mergeing from trunk.
This commit is contained in:
commit
2d55865ed3
Notes:
subgit
2018-03-07 17:58:48 +01:00
r619 www/branches/life
144
www/events.js
144
www/events.js
@ -25,8 +25,7 @@
|
|||||||
/* do reverse geolocation lookup */
|
/* do reverse geolocation lookup */
|
||||||
function getGeolocation(id, lat, lng) {
|
function getGeolocation(id, lat, lng) {
|
||||||
if ( !geolocationTable[id] ) {
|
if ( !geolocationTable[id] ) {
|
||||||
// $.getJSON( "//nominatim.openstreetmap.org/reverse", { lat: lat, lon: lng, zoom: 10, format: "json" } )
|
$.getJSON( config['ajax']['nominatimURL'], { lat: lat, lon: lng, zoom: 10, format: "json" } )
|
||||||
$.getJSON( "//open.mapquestapi.com/nominatim/v1/reverse.php", { lat: lat, lon: lng, zoom: 10, format: "json" } )
|
|
||||||
.done(function( json ) {
|
.done(function( json ) {
|
||||||
var city = json.address["city"];
|
var city = json.address["city"];
|
||||||
var country = json.address["country"];
|
var country = json.address["country"];
|
||||||
@ -57,28 +56,26 @@ function ajaxLoadEvents(stime, etime) {
|
|||||||
var E = mapBounds.getEast();
|
var E = mapBounds.getEast();
|
||||||
var S = mapBounds.getSouth();
|
var S = mapBounds.getSouth();
|
||||||
var W = mapBounds.getWest();
|
var W = mapBounds.getWest();
|
||||||
var d = 0.1;
|
|
||||||
if ( !stime ) {
|
if ( !stime ) {
|
||||||
var stime = new Date();
|
var stime = new Date();
|
||||||
stime.setDate(stime.getDate()-180);
|
stime.setDate(stime.getDate()-config['map']['timespan']);
|
||||||
};
|
};
|
||||||
if ( !etime ) {
|
if ( !etime ) {
|
||||||
var etime = new Date();
|
var etime = new Date();
|
||||||
etime.setDate(etime.getDate()+1);
|
etime.setDate(etime.getDate()+1);
|
||||||
};
|
};
|
||||||
var url = "https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query"
|
|
||||||
var request_data = {
|
var request_data = {
|
||||||
starttime: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
starttime: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
||||||
endtime: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
endtime: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
||||||
minlat: S-d,
|
minlat: S-config['map']['latlngDelta'],
|
||||||
maxlat: N+d,
|
maxlat: N+config['map']['latlngDelta'],
|
||||||
minlon: W-d,
|
minlon: W-config['map']['latlngDelta'],
|
||||||
maxlon: E+d,
|
maxlon: E+config['map']['latlngDelta'],
|
||||||
minmag: config['event']['minMag']-0.1,
|
minmag: config['event']['minMag']-config['event']['minMagDelta'],
|
||||||
};
|
};
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
url: url,
|
url: config['ajax']['eventURL'],
|
||||||
data: request_data,
|
data: request_data,
|
||||||
dataType: "xml",
|
dataType: "xml",
|
||||||
success: function (xml) {
|
success: function (xml) {
|
||||||
@ -88,7 +85,6 @@ function ajaxLoadEvents(stime, etime) {
|
|||||||
var otime = $(this).find('origin > time > value').text();
|
var otime = $(this).find('origin > time > value').text();
|
||||||
var lng = $(this).find('origin > longitude > value').text();
|
var lng = $(this).find('origin > longitude > value').text();
|
||||||
var lat = $(this).find('origin > latitude > value').text();
|
var lat = $(this).find('origin > latitude > value').text();
|
||||||
var mag = $(this).find('magnitude > mag > value').text();
|
|
||||||
var evaluationMode = $(this).find('evaluationMode').text();
|
var evaluationMode = $(this).find('evaluationMode').text();
|
||||||
var evaluationStatus = $(this).find('evaluationStatus').text();
|
var evaluationStatus = $(this).find('evaluationStatus').text();
|
||||||
var type = $(this).find('type').last().text();
|
var type = $(this).find('type').last().text();
|
||||||
@ -110,7 +106,7 @@ function ajaxLoadEvents(stime, etime) {
|
|||||||
+ '<td><a href="#" class="toggle" eventid="'+id+'">'+location+'</a><a class="map-link" href="#" eventid="'+id+'">Karte</a></td>'
|
+ '<td><a href="#" class="toggle" eventid="'+id+'">'+location+'</a><a class="map-link" href="#" eventid="'+id+'">Karte</a></td>'
|
||||||
+ '</tr>';
|
+ '</tr>';
|
||||||
row += '<tr class="tablesorter-childRow">'
|
row += '<tr class="tablesorter-childRow">'
|
||||||
+ '<td colspan="4" eventid="'+id+'">not implemented</td></tr>';
|
+ '<td colspan="4" eventid="'+id+'">Daten werden geladen ...</td></tr>';
|
||||||
var added = $('#eventstable tbody').append(row);
|
var added = $('#eventstable tbody').append(row);
|
||||||
added.find('.tablesorter-childRow td').hide();
|
added.find('.tablesorter-childRow td').hide();
|
||||||
$('#eventstable').find('td.utctime-date').each(function() {
|
$('#eventstable').find('td.utctime-date').each(function() {
|
||||||
@ -148,53 +144,79 @@ function ajaxLoadEvents(stime, etime) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/* add row to table
|
/* ajaxLoadEventInfo */
|
||||||
obsolete */
|
function ajaxLoadEventInfo(id) {
|
||||||
function addEventRow(id, props) {
|
var request_data = {
|
||||||
$('#eventstable').tablesorter({
|
eventid: id,
|
||||||
sortList: "[[0,0], [1,1]], [2,1]",
|
includeArrivals: true,
|
||||||
resort: true,
|
|
||||||
showProcessing: true,
|
|
||||||
pager_size: 35
|
|
||||||
});
|
|
||||||
var html = '<tr class="tablesorter-hasChildRow">'
|
|
||||||
+ '<td class="utctime-date">'+props.date+'T'+props.time.split('.')[0]+'Z</td>'
|
|
||||||
+ '<td class="utctime-time">'+props.date+'T'+props.time.split('.')[0]+'Z</td>'
|
|
||||||
+ '<td class="ar">'+props.mag+'</td>'
|
|
||||||
+ '<td><a href="#" class="toggle">'+props.location+'</a><a class="map-link" href="#" eventid="'+id+'">Karte</a></td>'
|
|
||||||
+ '</tr>'
|
|
||||||
+ '<tr class="tablesorter-childRow">'
|
|
||||||
+ '<td colspan="4" eventid="'+id+'">'
|
|
||||||
+ "<pre>ID "+id+"\n\n"
|
|
||||||
+ "Origin\n"
|
|
||||||
+ "Date "+props.date+"\n"
|
|
||||||
+ "Time "+props.time+"\n"
|
|
||||||
+ "Latitude "+props.lat+" deg +/- "+props.lat_err+" km\n"
|
|
||||||
+ "Longitude "+props.lon+" deg +/- "+props.lon_err+" km\n"
|
|
||||||
+ "Depth "+props.depth+" km +/- "+props.depth_err+" km\n"
|
|
||||||
+ "Residual RMS "+props.rms+" s\n"
|
|
||||||
+ "Azimuthal gap "+props.gap+" deg\n\n"
|
|
||||||
+ props.no_phases + " Phase arrivals:\n"
|
|
||||||
+ "sta net dist azi phase time res wt sta\n";
|
|
||||||
for ( i = 0 ; i < props.no_phases ; i++ ) {
|
|
||||||
html += props.phases[i];
|
|
||||||
( i < props.no_phases -1 ) ? html += "\n" : null ;
|
|
||||||
};
|
};
|
||||||
html += "</pre></td></tr>\n";
|
$.ajax({
|
||||||
var added = $('#eventstable tbody').append(html);
|
type: "GET",
|
||||||
added.find('.tablesorter-childRow td').hide();
|
url: config['ajax']['eventURL'],
|
||||||
$('#eventstable').find('td.utctime-date').each(function() {
|
data: request_data,
|
||||||
$.localtime.formatObject($(this), "dd. MM. yyyy");
|
dataType: "xml",
|
||||||
$(this).removeClass('utctime-date');
|
success: function (xml) {
|
||||||
$(this).addClass('localtime-date');
|
eventDetails[id] = true;
|
||||||
|
$(xml).find('event').each(function () {
|
||||||
|
var event = $(this);
|
||||||
|
var mag = $(this).find('magnitude > mag > value').text();
|
||||||
|
var otime = $(this).find('origin > time > value').text();
|
||||||
|
var lng = $(this).find('origin > longitude > value').text();
|
||||||
|
var lng_err = $(this).find('origin > longitude > uncertainty').text();
|
||||||
|
var lat = $(this).find('origin > latitude > value').text();
|
||||||
|
var lat_err = $(this).find('origin > latitude > uncertainty').text();
|
||||||
|
var depth = $(this).find('origin > depth > value').text();
|
||||||
|
var depth_err = $(this).find('origin > depth > uncertainty').text();
|
||||||
|
var rms = $(this).find('origin > quality > standardError').text();
|
||||||
|
var gap = $(this).find('origin > quality > azimuthalGap').text();
|
||||||
|
var phases_count = $(this).find('origin > quality > usedPhaseCount').text();
|
||||||
|
var type = $(this).find('type').last().text();
|
||||||
|
// setting up general event info
|
||||||
|
var row = "<pre>"
|
||||||
|
+ sprintf("ID %49s\n", id)
|
||||||
|
+ sprintf("Type %47s\n\n", type)
|
||||||
|
+ "Origin\n"
|
||||||
|
+ sprintf("Date %18s\n", otime.split('T')[0])
|
||||||
|
+ sprintf("Time %18s UTC\n", otime.split('T')[1].substring(0, 11))
|
||||||
|
+ sprintf("Latitude %14.4f °N +- %4.1f km\n",Number(lat), Number(lat_err))
|
||||||
|
+ sprintf("Longitude %13.4f °E +- %4.1f km\n", Number(lng), Number(lng_err))
|
||||||
|
+ sprintf("Depth %14.1f km +- %4.1f km\n", Number(depth)/1000., Number(depth_err)/1000.)
|
||||||
|
+ sprintf("Magnitude %10.1f\n", Number(mag))
|
||||||
|
+ sprintf("Residual RMS %7.1f sec\n", Number(rms))
|
||||||
|
+ sprintf("Azimuthal gap %6.1f °\n\n", Number(gap))
|
||||||
|
+ sprintf("%d Phase arrivals:\n", Number(phases_count))
|
||||||
|
+ "sta net dist azi phase time res wt\n";
|
||||||
|
// adding phase info (TODO sort by distance)
|
||||||
|
$(this).find('origin > arrival').each(function() {
|
||||||
|
var pickid = $(this).find('pickID').text();
|
||||||
|
var azi = $(this).find('azimuth').text();
|
||||||
|
var dist = $(this).find('distance').text();
|
||||||
|
var tres = $(this).find('timeResidual').text();
|
||||||
|
var phase = $(this).find('phase').text();
|
||||||
|
var tweight = $(this).find('timeWeight').text();
|
||||||
|
if ( Number(tweight) > 0.0 ) {
|
||||||
|
var waveformid = event.find('pick[publicID="'+pickid+'"] > waveformID');
|
||||||
|
var networkcode = waveformid.attr('networkCode');
|
||||||
|
var stationcode = waveformid.attr('stationCode');
|
||||||
|
var channel = waveformid.attr('channelCode').substring(2,2);
|
||||||
|
var phasemode = event.find('pick[publicID="'+pickid+'"] > evaluationMode').text().substring(0,1).toUpperCase();
|
||||||
|
var picktime = event.find('pick[publicID="'+pickid+'"] > time > value').text().split('T')[1].substring(0,11);
|
||||||
|
row = row
|
||||||
|
+ sprintf('%-4s %2s %5.1f %5.1f %3s %1s %13s %5.1f %5.2f\n', stationcode, networkcode, Number(dist), Number(azi), phase, phasemode, picktime, Number(tres), Number(tweight));
|
||||||
|
};
|
||||||
|
});
|
||||||
|
row = row + '</pre>';
|
||||||
|
$('#eventstable > tbody > tr.tablesorter-childRow > td[eventid='+id+']').html(row);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
complete: function () {
|
||||||
|
null;
|
||||||
|
},
|
||||||
|
error: function( jqxhr, textStatus, error ) {
|
||||||
|
var err = textStatus + ", " + error;
|
||||||
|
console.log( "Request Failed: " + err );
|
||||||
|
}
|
||||||
});
|
});
|
||||||
$('#eventstable').find('td.utctime-time').each(function() {
|
|
||||||
$.localtime.formatObject($(this), "HH:mm");
|
|
||||||
$(this).removeClass('utctime-time');
|
|
||||||
$(this).addClass('localtime-time');
|
|
||||||
});
|
|
||||||
// force resorting
|
|
||||||
$("#eventstable").trigger("update", [true]);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* toggles visibility of filtered markers
|
/* toggles visibility of filtered markers
|
||||||
@ -314,6 +336,10 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
// show / hide event info
|
// show / hide event info
|
||||||
$('#eventstable').delegate('.toggle', 'click' , function(){
|
$('#eventstable').delegate('.toggle', 'click' , function(){
|
||||||
|
// load event details
|
||||||
|
var eventid = $(this).attr('eventid');
|
||||||
|
( eventDetails[eventid] ) ? null : ajaxLoadEventInfo(eventid);
|
||||||
|
|
||||||
// toggle visibility of selected row
|
// toggle visibility of selected row
|
||||||
$(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').toggle('slow');
|
$(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').toggle('slow');
|
||||||
|
|
||||||
@ -322,7 +348,7 @@ $(document).ready(function() {
|
|||||||
$(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').addClass('selected-now');
|
$(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').addClass('selected-now');
|
||||||
$(this).closest('tbody').find('td.selected').each(function(){
|
$(this).closest('tbody').find('td.selected').each(function(){
|
||||||
if ( ! $(this).hasClass('selected-now') ) {
|
if ( ! $(this).hasClass('selected-now') ) {
|
||||||
$(this).hide('slow');
|
$(this).hide();
|
||||||
$(this).removeClass('selected');
|
$(this).removeClass('selected');
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
29
www/misc.js
29
www/misc.js
@ -30,21 +30,9 @@ function mag2radius(mag) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* set height of eventlist div */
|
/* set height of eventlist div */
|
||||||
function sleep(milliseconds) {
|
|
||||||
var start = new Date().getTime();
|
|
||||||
for (var i = 0; i < 1e7; i++) {
|
|
||||||
if ((new Date().getTime() - start) > milliseconds){
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* setInfoHeight */
|
|
||||||
function setInfoHeight() {
|
function setInfoHeight() {
|
||||||
var height = $('div.map').height() - 36;
|
var height = $('div.map').height() - 36;
|
||||||
$('div.info').height(height);
|
$('div.info').height(height);
|
||||||
//$('.tab').height(height-80);
|
|
||||||
//$('#eventtable').height(height-100);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* get region and regionID of a location */
|
/* get region and regionID of a location */
|
||||||
@ -89,16 +77,26 @@ var eventTable = {};
|
|||||||
var eventDetails = {};
|
var eventDetails = {};
|
||||||
var stationTable = {};
|
var stationTable = {};
|
||||||
var config = {
|
var config = {
|
||||||
|
ajax: {
|
||||||
|
timeout: 150000, // 15 seconds
|
||||||
|
eventURL: 'https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query',
|
||||||
|
stationURL: 'https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/station/1/query',
|
||||||
|
nominatimURL: '//open.mapquestapi.com/nominatim/v1/reverse.php',
|
||||||
|
// nominatimURL: '//nominatim.openstreetmap.org/reverse',
|
||||||
|
},
|
||||||
event: {
|
event: {
|
||||||
evaluationBlacklist: ['automatic', 'preliminary'],
|
evaluationBlacklist: ['automatic', 'preliminary', 'rejected'],
|
||||||
markerOpacity: 0.3,
|
markerOpacity: 0.3,
|
||||||
minMag: 1.2,
|
minMag: 1.2,
|
||||||
|
minMagDelta: 0.1,
|
||||||
typeWhitelist: ['earthquake', 'induced or triggered event'],
|
typeWhitelist: ['earthquake', 'induced or triggered event'],
|
||||||
},
|
},
|
||||||
map: {
|
map: {
|
||||||
zoomDefault: 9,
|
zoomDefault: 9,
|
||||||
zoomFocus: 12,
|
zoomFocus: 12,
|
||||||
centerDefault: [51.85, 7.0],
|
centerDefault: [51.85, 7.0],
|
||||||
|
timespan: 180,
|
||||||
|
latlngDelta: 0.1,
|
||||||
},
|
},
|
||||||
station: {
|
station: {
|
||||||
markerOpacity: 0.5,
|
markerOpacity: 0.5,
|
||||||
@ -110,15 +108,16 @@ var config = {
|
|||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
// AJAX setup
|
// AJAX setup
|
||||||
$.ajaxSetup({timeout: 15000}); // 15 seconds
|
$.ajaxSetup({timeout: config['ajax']['timeout']});
|
||||||
|
|
||||||
// adjust height of infocontainer
|
// adjust height of infocontainer
|
||||||
setInfoHeight();
|
setInfoHeight();
|
||||||
|
|
||||||
// create tabs
|
// create tabs
|
||||||
var tabOptions = {
|
var tabOptions = {
|
||||||
active: 0,
|
active: 0,
|
||||||
disabled: [2, 3],
|
disabled: [2, 3],
|
||||||
};
|
};
|
||||||
$('#tabs').tabs(tabOptions);
|
$('#tabs').tabs(tabOptions);
|
||||||
// $('.ui-tabs-nav').sortable();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -29,11 +29,9 @@ function loadStations(stime, etime) {
|
|||||||
var E = mapBounds.getEast();
|
var E = mapBounds.getEast();
|
||||||
var S = mapBounds.getSouth();
|
var S = mapBounds.getSouth();
|
||||||
var W = mapBounds.getWest();
|
var W = mapBounds.getWest();
|
||||||
var d = 0.1;
|
|
||||||
var url = "https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/station/1/query";
|
|
||||||
if ( !stime ) {
|
if ( !stime ) {
|
||||||
var stime = new Date();
|
var stime = new Date();
|
||||||
stime.setDate(stime.getDate()-180);
|
stime.setDate(stime.getDate()-config['map']['timespan']);
|
||||||
};
|
};
|
||||||
if ( !etime ) {
|
if ( !etime ) {
|
||||||
var etime = new Date();
|
var etime = new Date();
|
||||||
@ -42,14 +40,14 @@ function loadStations(stime, etime) {
|
|||||||
var request_data = {
|
var request_data = {
|
||||||
endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
endafter: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
||||||
startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
startbefore: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
||||||
minlat: S-d,
|
minlat: S-config['map']['latlngDelta'],
|
||||||
maxlat: N+d,
|
maxlat: N+config['map']['latlngDelta'],
|
||||||
minlon: W-d,
|
minlon: W-config['map']['latlngDelta'],
|
||||||
maxlon: E+d,
|
maxlon: E+config['map']['latlngDelta'],
|
||||||
};
|
};
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
url: url,
|
url: config['ajax']['stationURL'],
|
||||||
dataType: "xml",
|
dataType: "xml",
|
||||||
data: request_data,
|
data: request_data,
|
||||||
success: function (xml) {
|
success: function (xml) {
|
||||||
|
Loading…
Reference in New Issue
Block a user