Ero sivun ”Widget:JwObsCharts” versioiden välillä
Järvi-meriwikistä
(33 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 68: | Rivi 68: | ||
window.jwobschart[id] = {}; | window.jwobschart[id] = {}; | ||
− | + | ||
− | var memo = {}; window.jwobschart[id].memo = memo; | + | var memo = { "distF": 0 }; window.jwobschart[id].memo = memo; |
memo.widgetEl = jQuery( this ); | memo.widgetEl = jQuery( this ); | ||
Rivi 78: | Rivi 78: | ||
memo.waterbody = jQuery( this ).attr( 'data-jw-waterbody' ); if ( typeof memo.waterbody == 'undefined' ) { memo.waterbody = '-'; } | memo.waterbody = jQuery( this ).attr( 'data-jw-waterbody' ); if ( typeof memo.waterbody == 'undefined' ) { memo.waterbody = '-'; } | ||
memo.obscode = jQuery( this ).attr( 'data-jw-obscode' ); if ( typeof memo.obscode == 'undefined' ) { memo.obscode = '-'; } | memo.obscode = jQuery( this ).attr( 'data-jw-obscode' ); if ( typeof memo.obscode == 'undefined' ) { memo.obscode = '-'; } | ||
+ | if ( typeof i18n[ memo.obscode ] == 'undefined' ) { i18n[ memo.obscode ] = i18n.obs; } | ||
memo.refcode = jQuery( this ).attr( 'data-jw-refcode' ); if ( typeof memo.refcode == 'undefined' ) { memo.refcode = '-'; } | memo.refcode = jQuery( this ).attr( 'data-jw-refcode' ); if ( typeof memo.refcode == 'undefined' ) { memo.refcode = '-'; } | ||
memo.reffilter = jQuery( this ).attr( 'data-jw-reffilter' ); if ( typeof memo.reffilter == 'undefined' ) { memo.reffilter = ''; } | memo.reffilter = jQuery( this ).attr( 'data-jw-reffilter' ); if ( typeof memo.reffilter == 'undefined' ) { memo.reffilter = ''; } | ||
memo.obscodeParts = memo.obscode.split('_'); | memo.obscodeParts = memo.obscode.split('_'); | ||
memo.title = jQuery( this ).attr( 'data-title' ); if ( typeof memo.title == 'undefined' ) { memo.title = i18n[ memo.obscode ][ 'title' ][ memo.lang ]; } | memo.title = jQuery( this ).attr( 'data-title' ); if ( typeof memo.title == 'undefined' ) { memo.title = i18n[ memo.obscode ][ 'title' ][ memo.lang ]; } | ||
+ | memo.axistitlev = jQuery( this ).attr( 'data-axistitlev' ); if ( typeof memo.axistitlev == 'undefined' ) { memo.axistitlev = i18n[ memo.obscode ][ 'axisTitleV' ][ memo.lang ]; } | ||
+ | memo.tooltiptitle = jQuery( this ).attr( 'data-tooltiptitle' ); if ( typeof memo.tooltiptitle == 'undefined' ) { memo.tooltiptitle = i18n[ memo.obscode ][ 'title' ][ memo.lang ]; } | ||
memo.info = jQuery( this ).attr( 'data-info' ); if ( typeof memo.info == 'undefined' ) { memo.info = jQuery( this ).attr( 'data-info' ); } | memo.info = jQuery( this ).attr( 'data-info' ); if ( typeof memo.info == 'undefined' ) { memo.info = jQuery( this ).attr( 'data-info' ); } | ||
if ( typeof jQuery( this ).attr( 'data-min' ) != 'undefined' ) { i18n[memo.obscode]['min'] = parseInt( jQuery( this ).attr( 'data-min' ) ); } | if ( typeof jQuery( this ).attr( 'data-min' ) != 'undefined' ) { i18n[memo.obscode]['min'] = parseInt( jQuery( this ).attr( 'data-min' ) ); } | ||
+ | if ( typeof jQuery( this ).attr( 'data-unit' ) != 'undefined' ) { i18n[memo.obscode]['unit'] = parseInt( jQuery( this ).attr( 'data-unit' ) ); } | ||
if ( typeof jQuery( this ).attr( 'data-start-date' ) != 'undefined' ) { | if ( typeof jQuery( this ).attr( 'data-start-date' ) != 'undefined' ) { | ||
Rivi 191: | Rivi 195: | ||
//headerCols.push( i18n[ 'Date' ][ memo.lang ] ); | //headerCols.push( i18n[ 'Date' ][ memo.lang ] ); | ||
//headerCols.push( i18n[ 'Date' ][ memo.lang ] ); | //headerCols.push( i18n[ 'Date' ][ memo.lang ] ); | ||
− | headerCols.push( '"' + | + | headerCols.push( '"' + memo.axistitlev + '"' ); |
headerCols.push( 'Lisätiedot' ); | headerCols.push( 'Lisätiedot' ); | ||
headerCols.push( 'Valokuva' ); | headerCols.push( 'Valokuva' ); | ||
Rivi 329: | Rivi 333: | ||
memo.trendType = jQuery( this ).attr( 'data-trend-type' ); if (typeof memo.trendType == 'undefined') { memo.trendType = i18n[memo.obscode]['trend']['type']; } | memo.trendType = jQuery( this ).attr( 'data-trend-type' ); if (typeof memo.trendType == 'undefined') { memo.trendType = i18n[memo.obscode]['trend']['type']; } | ||
− | memo.jw = new jwApi(); | + | memo.jw = new jwApi(); |
− | memo.jwR = new jwApi(); | + | memo.jwR = new jwApi(); |
var custom = ''; | var custom = ''; | ||
Rivi 373: | Rivi 377: | ||
function drawVisualization( memo ) { | function drawVisualization( memo ) { | ||
− | if ( typeof i18n[ memo.obscode ].direction != 'undefined' ) { memo.vaxisdir = i18n[ memo.obscode ].direction; } else { memo.vaxisdir = 1; } | + | if ( typeof i18n[memo.obscode].valfield == 'undefined' ) { i18n[memo.obscode].valfield = 'val'; } |
+ | if ( typeof i18n[ memo.obscode ].direction != 'undefined' ) { memo.vaxisdir = i18n[ memo.obscode ].direction; } else { memo.vaxisdir = 1; } | ||
memo.options = { | memo.options = { | ||
Rivi 384: | Rivi 389: | ||
interpolateNulls: true, | interpolateNulls: true, | ||
vAxis: { | vAxis: { | ||
− | title: | + | title: memo.axistitlev, |
titleTextStyle: { bold: true, italic: false }, | titleTextStyle: { bold: true, italic: false }, | ||
slantedText: false, | slantedText: false, | ||
Rivi 439: | Rivi 444: | ||
obs = memo.obses[o]; | obs = memo.obses[o]; | ||
− | + | ||
memo.obsesTotal++; | memo.obsesTotal++; | ||
// create data | // create data | ||
− | obs.data = JSON.parse( obs.printouts.DataJSON ); | + | obs.data = JSON.parse( obs.printouts.DataJSON ); |
+ | obs.data.num = obs.data[ i18n[memo.obscode].valfield ]; | ||
if ( obs.data.unit == 'cm' && i18n[memo.obscode]['unit'] == 'm' ) { | if ( obs.data.unit == 'cm' && i18n[memo.obscode]['unit'] == 'm' ) { | ||
− | obs.data. | + | obs.data.num = obs.data.num/100; |
obs.value = obs.value/100; | obs.value = obs.value/100; | ||
} | } | ||
+ | |||
+ | if ( i18n[ memo.obscode ].valfield != 'val' ) { | ||
+ | obs.value = obs.data[ i18n[memo.obscode].valfield ]; | ||
+ | } | ||
// add season | // add season | ||
Rivi 505: | Rivi 515: | ||
if ( i18n[memo.obscode]['type'] == 'cat') { | if ( i18n[memo.obscode]['type'] == 'cat') { | ||
− | obs.popup +='<b>' + | + | obs.popup +='<b>' + memo.tooltiptitle + ': ' + i18n[memo.obscode]['catNames'][obs.value][memo.lang] + '</b> '; |
} else if ( i18n[memo.obscode]['type'] == 'date') { | } else if ( i18n[memo.obscode]['type'] == 'date') { | ||
− | obs.popup +='<b>' + | + | obs.popup +='<b>' + memo.tooltiptitle + '</b> '; |
} else { | } else { | ||
− | obs.popup +='<b>' + | + | obs.popup +='<b>' + memo.tooltiptitle + ': ' + (Math.round(obs.value * 10)/10).toString().replace( '.', i18n['dec'][memo.lang] ) + ' ' + i18n[memo.obscode]['unit'] + '</b> '; |
} | } | ||
Rivi 547: | Rivi 557: | ||
baseSize = 2; | baseSize = 2; | ||
} | } | ||
− | |||
− | |||
if ( memo.maintainerShow ) { maintcol = maintColors[obs.maintainer]; } | if ( memo.maintainerShow ) { maintcol = maintColors[obs.maintainer]; } | ||
Rivi 614: | Rivi 622: | ||
addDataToTrendChart(memo); | addDataToTrendChart(memo); | ||
+ | |||
+ | } else if (memo.graphType == 'seasonwithreferences') { | ||
+ | |||
+ | addDataToSeasonWithReferencesChart(memo); | ||
} else if (memo.graphType == 'trendwithhighlow') { | } else if (memo.graphType == 'trendwithhighlow') { | ||
Rivi 1 054: | Rivi 1 066: | ||
} | } | ||
− | function | + | function addDataToSeasonWithReferencesChart(memo) { |
− | |||
− | |||
// do axis min and max | // do axis min and max | ||
− | memo.axisMinDate = new Date(memo. | + | memo.axisMinDate = new Date( memo.curSeason, 0, 1 ); |
− | memo.axisMaxDate = new Date(memo. | + | memo.axisMaxDate = new Date( memo.curSeason, 11, 31 ); |
− | |||
− | |||
− | |||
− | |||
memo.data.addColumn( 'number', memo.obsMinYear + '-' + memo.obsMaxYear ); | memo.data.addColumn( 'number', memo.obsMinYear + '-' + memo.obsMaxYear ); | ||
Rivi 1 075: | Rivi 1 081: | ||
// series for trend line | // series for trend line | ||
//memo.options.trendlines[0] = { labelInLegend: i18n['trendline'][memo.lang], tooltip: false, color: colors['trend'], lineWidth: 2, opacity: 0.5, type: 'linear', visibleInLegend: memo.trendType!='moving' }; | //memo.options.trendlines[0] = { labelInLegend: i18n['trendline'][memo.lang], tooltip: false, color: colors['trend'], lineWidth: 2, opacity: 0.5, type: 'linear', visibleInLegend: memo.trendType!='moving' }; | ||
− | + | console.log( memo.obsesA ); | |
− | + | for (var o in memo.obsesA) { | |
− | |||
− | for (var o in memo.obsesA) { | ||
− | |||
dateStr = memo.obsesA[o].popup.match( /\([^)]*\)/g ); | dateStr = memo.obsesA[o].popup.match( /\([^)]*\)/g ); | ||
yearStr = dateStr[0].match( /[0-9]{4}/g ); | yearStr = dateStr[0].match( /[0-9]{4}/g ); | ||
memo.obsesA[o].popup = memo.obsesA[o].popup.replace( dateStr[0], '(' + yearStr[0] + ')' ); | memo.obsesA[o].popup = memo.obsesA[o].popup.replace( dateStr[0], '(' + yearStr[0] + ')' ); | ||
− | memo.dataA.push( [ memo.obsesA[o].obsdatetime, memo.obsesA[o].value, memo.obsesA[o].data.low/100, memo.obsesA[o].data.high/100, memo.obsesA[o].style, null, memo.obsesA[o].popup ] ); | + | memo.dataA.push( [ |
+ | memo.obsesA[o].obsdatetime, | ||
+ | memo.obsesA[o].value, | ||
+ | memo.obsesA[o].data.low/100, | ||
+ | memo.obsesA[o].data.high/100, | ||
+ | memo.obsesA[o].style, | ||
+ | null, | ||
+ | memo.obsesA[o].popup | ||
+ | ] ); | ||
} | } | ||
Rivi 1 099: | Rivi 1 110: | ||
memo.options.vAxis.viewWindow.min = 80; | memo.options.vAxis.viewWindow.min = 80; | ||
memo.options.vAxis.viewWindow.max = 82; | memo.options.vAxis.viewWindow.max = 82; | ||
− | + | ||
− | |||
memo.chart = new google.visualization.LineChart( memo.chartEl[0] ); // document.getElementById(memo.id) | memo.chart = new google.visualization.LineChart( memo.chartEl[0] ); // document.getElementById(memo.id) | ||
drawChart(memo); | drawChart(memo); | ||
+ | } | ||
− | + | function addDataToTrendWithHighLowChart (memo) { | |
− | + | //console.log( 'high low chart'); | |
// do axis min and max | // do axis min and max | ||
Rivi 1 118: | Rivi 1 129: | ||
memo.data.addColumn( 'number', memo.obsMinYear + '-' + memo.obsMaxYear ); | memo.data.addColumn( 'number', memo.obsMinYear + '-' + memo.obsMaxYear ); | ||
+ | memo.data.addColumn( { id:'i0', type:'number', role:'interval' } ); | ||
+ | memo.data.addColumn( { id:'i0', type:'number', role:'interval' } ); | ||
memo.data.addColumn( {'type': 'string', 'role': 'style' } ); | memo.data.addColumn( {'type': 'string', 'role': 'style' } ); | ||
memo.data.addColumn( { type: 'string', role: 'annotation' } ); | memo.data.addColumn( { type: 'string', role: 'annotation' } ); | ||
Rivi 1 123: | Rivi 1 136: | ||
// series for trend line | // series for trend line | ||
− | memo.options.trendlines[0] = { labelInLegend: i18n['trendline'][memo.lang], tooltip: false, color: colors['trend'], lineWidth: 2, opacity: 0.5, type: 'linear', visibleInLegend: memo.trendType!='moving' }; | + | //memo.options.trendlines[0] = { labelInLegend: i18n['trendline'][memo.lang], tooltip: false, color: colors['trend'], lineWidth: 2, opacity: 0.5, type: 'linear', visibleInLegend: memo.trendType!='moving' }; |
+ | //console.log( memo ); | ||
for (var o in memo.obsesA) { | for (var o in memo.obsesA) { | ||
− | + | ||
− | + | dateStr = memo.obsesA[o].popup.match( /\([^)]*\)/g ); | |
− | + | yearStr = dateStr[0].match( /[0-9]{4}/g ); | |
− | + | memo.obsesA[o].popup = memo.obsesA[o].popup.replace( dateStr[0], '(' + yearStr[0] + ')' ); | |
− | + | memo.dataA.push( [ memo.obsesA[o].obsdatetime, memo.obsesA[o].value, memo.obsesA[o].data.low/100, memo.obsesA[o].data.high/100, memo.obsesA[o].style, null, memo.obsesA[o].popup ] ); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
Rivi 1 149: | Rivi 1 154: | ||
} | } | ||
− | memo.options.series[0] = {type: 'scatter', pointSize: 6, color: '#3366cc' }; | + | memo.options.seriesType = 'line'; |
− | + | memo.options.series[0] = { type: 'line', pointSize: 3, color: '#3366cc' }; | |
− | drawChart(memo); | + | memo.options.curveType = 'function'; |
− | + | memo.options.intervals = { 'style': 'area' }; | |
− | } | + | |
− | + | memo.options.vAxis.viewWindow.min = 80; | |
− | function addDataToSeasonChart(memo) { | + | memo.options.vAxis.viewWindow.max = 82; |
− | + | ||
− | memo.axisMinDate = new Date( memo.obsMinCompDateMs ); | + | |
− | memo.axisMinDate.setDate(1); | + | memo.chart = new google.visualization.LineChart( memo.chartEl[0] ); // document.getElementById(memo.id) |
− | memo.axisMaxDate = new Date( memo.obsMaxCompDateMs ); | + | |
− | memo.axisMaxDate.setMonth( memo.axisMaxDate.getMonth()+1 ); | + | drawChart(memo); |
− | memo.axisMaxDate.setDate(0); | + | |
− | + | } | |
− | memo.seasonsO = {}; | + | |
− | memo.seasonsA = []; | + | function addDataToTrendChart(memo) { |
− | + | ||
− | for (var o in memo.obsesA) { | + | // do axis min and max |
− | + | memo.axisMinDate = new Date(memo.obsMinDate.getTime()); | |
− | s = memo.obsesA[o].seriesId; | + | memo.axisMaxDate = new Date(memo.obsMaxDate.getTime()); |
− | if (typeof memo.seasonsO[s] == 'undefined' ) { memo.seasonsO[s] = { 'obses': [] }; } | + | memo.axisMinDate.setMonth(0); |
− | memo.seasonsO[s].obses.push( memo.obsesA[o] ); | + | memo.axisMaxDate.setMonth(11); |
− | } | + | memo.axisMinDate.setDate(1); |
− | + | memo.axisMaxDate.setDate(31); | |
− | for (var o in memo.seasonsO) { memo.seasonsA.push(o); } memo.seasonsA.sort( function(a,b) { return b-a; } ); | + | |
− | + | memo.data.addColumn( 'number', memo.obsMinYear + '-' + memo.obsMaxYear ); | |
− | // create cols for each series | + | memo.data.addColumn( {'type': 'string', 'role': 'style' } ); |
− | var sc = 0; | + | memo.data.addColumn( { type: 'string', role: 'annotation' } ); |
− | for (var s in memo.seasonsA) { | + | memo.data.addColumn( { type: 'string', role: 'tooltip', 'p': { 'html': true } } ); |
− | + | ||
− | // data | + | // series for trend line |
− | if ( memo.season == 'summer' ) { | + | memo.options.trendlines[0] = { labelInLegend: i18n['trendline'][memo.lang], tooltip: false, color: colors['trend'], lineWidth: 2, opacity: 0.5, type: 'linear', visibleInLegend: memo.trendType!='moving' }; |
− | memo.data.addColumn( 'number', memo.seasonsA[s].toString() ); | + | |
− | } else { | + | |
− | memo.data.addColumn( 'number', memo.seasonsA[s].toString() + '-' + (parseInt(memo.seasonsA[s])+1).toString() ); | + | for (var o in memo.obsesA) { |
− | } | + | |
− | // style | + | //dataRow = []; |
− | memo.data.addColumn( { type: 'string', role: 'style' } ); | + | |
− | // tooltip | + | //if (!!memo.obsesA[o].addInfo) { |
− | memo.data.addColumn( { type: 'string', role: 'tooltip', 'p': { 'html': true } } ); | + | //dataArr.push( [ memo.obsesA[o].obsdatetime, memo.obsesA[o].value, 0, memo.obsesA[o].value, memo.obsesA[o].value, 'point { size: 5; fill-color: #0076b0; stroke-width: 2; stroke-color: ' + maintColors[memo.obsesA[o].maintainer] + '; }', '', memo.obsesA[o].popup ] ); |
+ | //memo.dataA.push( [ memo.obsesA[o].obsdatetime, memo.obsesA[o].value, 'point { size: 5; fill-color: #0076b0; stroke-width: 2; stroke-color: ' + maintColors[memo.obsesA[o].maintainer] + '; }', null, memo.obsesA[o].popup ] ); | ||
+ | memo.dataA.push( [ memo.obsesA[o].obsdatetime, memo.obsesA[o].value, memo.obsesA[o].style, null, memo.obsesA[o].popup ] ); | ||
+ | //} else { | ||
+ | //dataArr.push( [ memo.obsesA[o].obsdatetime, memo.obsesA[o].value, 0, memo.obsesA[o].value, memo.obsesA[o].value, 'point { size: 4; fill-color: #5893b0; stroke-width: 2; stroke-color: ' + maintColors[memo.obsesA[o].maintainer] + '; }', '', memo.obsesA[o].popup ] ); | ||
+ | //memo.dataA.push( [ memo.obsesA[o].obsdatetime, memo.obsesA[o].value, 'point { size: 4; fill-color: #5893b0; stroke-width: 2; stroke-color: ' + maintColors[memo.obsesA[o].maintainer] + '; }', null, memo.obsesA[o].popup ] ); | ||
+ | //} | ||
+ | |||
+ | //memo.dataA.push( dataRow ); | ||
+ | |||
+ | } | ||
+ | |||
+ | memo.options.hAxis.ticks = []; | ||
+ | for (i=memo.axisMinDate.getFullYear(); i<=memo.axisMaxDate.getFullYear(); i++) { | ||
+ | middleOfYear = new Date( i, 6, 1 ); | ||
+ | memo.options.hAxis.ticks.push({v: middleOfYear, f: String(i) }); | ||
+ | } | ||
+ | |||
+ | memo.options.series[0] = {type: 'scatter', pointSize: 6, color: '#3366cc' }; | ||
+ | |||
+ | drawChart(memo); | ||
+ | |||
+ | } | ||
+ | |||
+ | function addDataToSeasonChart(memo) { | ||
+ | |||
+ | memo.axisMinDate = new Date( memo.obsMinCompDateMs ); | ||
+ | memo.axisMinDate.setDate(1); | ||
+ | memo.axisMaxDate = new Date( memo.obsMaxCompDateMs ); | ||
+ | memo.axisMaxDate.setMonth( memo.axisMaxDate.getMonth()+1 ); | ||
+ | memo.axisMaxDate.setDate(0); | ||
+ | |||
+ | memo.seasonsO = {}; | ||
+ | memo.seasonsA = []; | ||
+ | |||
+ | for (var o in memo.obsesA) { | ||
+ | |||
+ | s = memo.obsesA[o].seriesId; | ||
+ | if (typeof memo.seasonsO[s] == 'undefined' ) { memo.seasonsO[s] = { 'obses': [] }; } | ||
+ | memo.seasonsO[s].obses.push( memo.obsesA[o] ); | ||
+ | } | ||
+ | |||
+ | for (var o in memo.seasonsO) { memo.seasonsA.push(o); } memo.seasonsA.sort( function(a,b) { return b-a; } ); | ||
+ | |||
+ | // create cols for each series | ||
+ | var sc = 0; | ||
+ | |||
+ | |||
+ | for (var s in memo.seasonsA) { | ||
+ | |||
+ | // data | ||
+ | if ( memo.season == 'summer' ) { | ||
+ | memo.data.addColumn( 'number', memo.seasonsA[s].toString() ); | ||
+ | } else { | ||
+ | memo.data.addColumn( 'number', memo.seasonsA[s].toString() + '-' + (parseInt(memo.seasonsA[s])+1).toString() ); | ||
+ | } | ||
+ | // style | ||
+ | memo.data.addColumn( { type: 'string', role: 'style' } ); | ||
+ | // tooltip | ||
+ | memo.data.addColumn( { type: 'string', role: 'tooltip', 'p': { 'html': true } } ); | ||
// annotation | // annotation | ||
memo.data.addColumn( { type: 'string', role: 'annotation' } ); | memo.data.addColumn( { type: 'string', role: 'annotation' } ); | ||
Rivi 1 198: | Rivi 1 262: | ||
} else { | } else { | ||
if ( memo.obscode == 'secchi' ) { | if ( memo.obscode == 'secchi' ) { | ||
− | console.log('secchi'); | + | //console.log('secchi'); |
memo.options.series[sc++] = { type: 'area', curveType: 'function', color: colors['curObses'], pointSize: 3, lineWidth: 4, visibleInLegend: true, hideThis: false, origSize: 10 }; | memo.options.series[sc++] = { type: 'area', curveType: 'function', color: colors['curObses'], pointSize: 3, lineWidth: 4, visibleInLegend: true, hideThis: false, origSize: 10 }; | ||
} else { | } else { | ||
Rivi 1 457: | Rivi 1 521: | ||
for (var s in memo.seasonsA) { | for (var s in memo.seasonsA) { | ||
+ | |||
+ | //console.log( s ); | ||
for (var o in memo.seasonsO[memo.seasonsA[s]].obses) { | for (var o in memo.seasonsO[memo.seasonsA[s]].obses) { | ||
Rivi 1 472: | Rivi 1 538: | ||
// data for series cols | // data for series cols | ||
if ( memo.seasonsA[s] == memo.curSeason ) { | if ( memo.seasonsA[s] == memo.curSeason ) { | ||
− | dataRow[s*4+1] = obs.value; | + | dataRow[s*4+1] = obs.value; |
} else { | } else { | ||
+ | //console.log( memo.distF ); | ||
dataRow[s*4+1] = obs.value + memo.distF*Math.random() - memo.distF*Math.random(); | dataRow[s*4+1] = obs.value + memo.distF*Math.random() - memo.distF*Math.random(); | ||
} | } | ||
dataRow[s*4+2] = obs.style; | dataRow[s*4+2] = obs.style; | ||
dataRow[s*4+3] = obs.popup; | dataRow[s*4+3] = obs.popup; | ||
− | + | ||
if ( ( today.getTime() - obs.compareDate.getTime() < 10*24*60*60*1000 ) && s == 0 && o == ( memo.seasonsO[memo.seasonsA[s]].obses.length - 1 ) ) { | if ( ( today.getTime() - obs.compareDate.getTime() < 10*24*60*60*1000 ) && s == 0 && o == ( memo.seasonsO[memo.seasonsA[s]].obses.length - 1 ) ) { | ||
− | + | ||
− | var diff = obs.value - memo.avgW[ obs.compareDate.getFullYear() ][ obs.compareDate.getWeek() ].avg; | + | //var diff = obs.value - memo.avgW[ obs.compareDate.getFullYear() ][ obs.compareDate.getWeek() ].avg; |
− | var diff = Math.round( diff*100 ); | + | //var diff = Math.round( diff*100 ); |
− | var diffStr = diff.toString() + ' cm'; | + | //var diffStr = diff.toString() + ' cm'; |
− | if ( diff > 0 ) { diffStr = '+' + diffStr; } | + | //if ( diff > 0 ) { diffStr = '+' + diffStr; } |
dataRow[s*4+4] = null; //diffStr; //annotation | dataRow[s*4+4] = null; //diffStr; //annotation | ||
Rivi 1 495: | Rivi 1 562: | ||
} | } | ||
− | } | + | } |
// make ticks for x axis | // make ticks for x axis | ||
Rivi 1 731: | Rivi 1 798: | ||
'dec': { 'fi': ',', 'en': '.', 'sv': ',' }, | 'dec': { 'fi': ',', 'en': '.', 'sv': ',' }, | ||
'sep': { 'fi': '\t', 'en': ' ', 'sv': ' ' }, | 'sep': { 'fi': '\t', 'en': ' ', 'sv': ' ' }, | ||
+ | 'obs': { | ||
+ | 'type': 'num', | ||
+ | 'season': 'summer', | ||
+ | 'trend': { 'type': 'gaussian', 'layout': 'line' }, | ||
+ | 'title': { 'fi': '', 'en': '', 'sv': '', 'ru': '' }, | ||
+ | 'unit': '', | ||
+ | 'axisTitleV': { 'fi': '', 'en': '', 'sv': '', 'ru': '' } | ||
+ | }, | ||
'alg': { | 'alg': { | ||
'type': 'cat', | 'type': 'cat', | ||
Rivi 1 785: | Rivi 1 860: | ||
'snow_load': { | 'snow_load': { | ||
'catName': 'Lumikuorma', | 'catName': 'Lumikuorma', | ||
+ | 'valfield': 'load', | ||
'type': 'num', | 'type': 'num', | ||
'season': 'winter', | 'season': 'winter', | ||
'min': 0, | 'min': 0, | ||
− | 'trend': { 'type': ' | + | 'trend': { 'type': 'gaussian', 'layout': 'line' }, |
'title': { 'fi': 'Lumikuorma', 'en': 'Snow load', 'sv': 'Snöbelastning', 'ru': '???' }, | 'title': { 'fi': 'Lumikuorma', 'en': 'Snow load', 'sv': 'Snöbelastning', 'ru': '???' }, | ||
'unit': 'kg/m²', | 'unit': 'kg/m²', | ||
'axisTitleV': { 'fi': 'Lumikuorma, kg/m²', 'en': 'Snow load, kg/m²', 'sv': 'Snöbelastning, kg/m²', 'ru': 'm' } | 'axisTitleV': { 'fi': 'Lumikuorma, kg/m²', 'en': 'Snow load, kg/m²', 'sv': 'Snöbelastning, kg/m²', 'ru': 'm' } | ||
+ | }, | ||
+ | 'snow': { | ||
+ | 'catName': 'Lumen syvyys', | ||
+ | 'type': 'num', | ||
+ | 'season': 'winter', | ||
+ | 'min': 0, | ||
+ | 'trend': { 'type': 'gaussian', 'layout': 'line' }, | ||
+ | 'title': { 'fi': 'Lumipeitteen paksuus', 'en': 'Snow cover depth', 'sv': 'Snötäckets tjockhet', 'ru': '???' }, | ||
+ | 'unit': 'cm', | ||
+ | 'axisTitleV': { 'fi': 'Lumipeite, cm', 'en': 'Snow cover, cm', 'sv': 'Snötäcket, cm', 'ru': 'm' } | ||
}, | }, | ||
'ptot': { | 'ptot': { |