var chart1,chart2,chart3,xaxislabelchart1_2,yaxislabelchart1_2,titlechart1_2,autoinvert
//var lonlatdata24h=new google.visualization.DataTable();
function plot_from_satcattable(satcattable){
}
function initdraw_geooffset(catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i
var formattedHourMinute,t_print,temptext
var tleepoch=new Date();
var epochdateprintable
if (tracking_data_170h[catalogID]!=undefined)
{
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
tempdata.addColumn('number', 'Distance from GEO [km]'); // Implicit domain label col.
tempdata.addColumn('number', tracking_data_170h[catalogID][0][1]+' '+epochdateprintable); // Implicit series 1 data col.
tempdata.addColumn({type:'string', role:'annotation'}); // annotation role col.
tempdata.addColumn({type:'string', role:'annotationText'}); // annotationText col.
tempdata.addColumn({type:'string', role:'tooltip'}); // annotationText col.
for (i=starthour;i180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
formattedHourMinute='';
if (annotation=='true'){
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
//tempdata.addRows([[1*formatnumber(Math.abs(lonminusplus),3), tracking_data_170h[catalogID][i+1][1], formattedHourMinute,calculatedtime.toDateString()+' '+calculatedtime.toTimeString(),tooltiptext]]);
tempdata.addRows([[i,tracking_data_170h[catalogID][i+1][3],formattedHourMinute,calculatedtime.toDateString()+' '+calculatedtime.toTimeString(),tooltiptext]]);
//alert(1);
}
}
return(tempdata);
}
function addserie_geooffset(data,catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i
var currentcolumn,currentrow
var formattedHourMinute,epochdateprintable,t_print,temptext
var tleepoch=new Date();
//alert('Row:'+currentrow+' Column:'+currentcolumn);
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//set cell
// setCell(rowIndex, columnIndex [, value [, formattedValue [, properties]]])
if (tracking_data_170h[catalogID]!=undefined)
{
tleepoch=new Date(tracking_data_170h[catalogID][0][3]);
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
data.addColumn('number', tracking_data_170h[catalogID][0][1]+epochdateprintable); // Implicit domain label col.
data.addColumn({type:'string', role:'annotation'}); // annotation role col.
data.addColumn({type:'string', role:'annotationText'}); // annotationText col.
data.addColumn({type:'string', role:'tooltip'}); // annotationText col.
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//alert('Row:'+currentrow+' Column:'+currentcolumn);
for (i=starthour;i180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
data.addRow();
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
formattedHourMinute='';
if (annotation=='true') {
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
data.setCell((currentrow-1),0,i ); // set first cell with new lon
data.setCell((currentrow-1),(currentcolumn-4), tracking_data_170h[catalogID][i+1][3]);
data.setCell((currentrow-1),(currentcolumn-3), formattedHourMinute);
data.setCell((currentrow-1),(currentcolumn-2), calculatedtime.toDateString()+' '+calculatedtime.toTimeString());
data.setCell((currentrow-1),(currentcolumn-1), tooltiptext);
} // end for
} // end if exist
return(data);
// add column + annotation,annotationText and tooltip
} // END
function initdraw_sathadecl(catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable,declination,hourangle,azimuth,elevation
var temptext
var t_print;//=new Array();
var last_updatetime=new Date(tracking_data_update_date);
document.getElementById('update_date_info').innerHTML='Tracking data updated at '+last_updatetime.toUTCString()+' Local Time:'+last_updatetime.toString();
//xaxislabelchart1_2,yaxislabelchart1_2,titlechart1_2
yaxislabelchart1_2='Satellite Declination';
xaxislabelchart1_2='Satellite Hourangle';
titlechart1_2='Declination vs Hourangle motion based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString();
if (tracking_data_170h[catalogID]!=undefined)
{
tleepoch=new Date(tracking_data_170h[catalogID][0][3]);
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
tempdata.addColumn('number', 'Azimuth'); // Implicit domain label col.
tempdata.addColumn('number', tracking_data_170h[catalogID][0][1]+epochdateprintable); // Implicit series 1 data col.
tempdata.addColumn({type:'string', role:'annotation'}); // annotation role col.
tempdata.addColumn({type:'string', role:'annotationText'}); // annotationText col.
tempdata.addColumn({type:'string', role:'tooltip'}); // annotationText col.
for (i=starthour;i180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
//1*PrintElevation(tracking_data_170h[catalogID][i+1][0],0.00622778753330089,42161.9191759087)
elevation=PrintElevation(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
azimuth=PrintAzimuth(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
declination=PrintDeclination(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
hourangle=GetHourAngle(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
if (elevation>0) {
if ((hourangle<90) || (hourangle>270)) autoinvert=-1
else autoinvert=1;
autoinvert=1;
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
formattedHourMinute='';
if (annotation=='true'){
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
tempdata.addRows([[1*hourangle, 1*declination, formattedHourMinute,calculatedtime.toDateString()+' '+calculatedtime.toTimeString(),tooltiptext]]);
} //if (elevation>0) {
}
}
return(tempdata);
}
function addserie_sathadecl(data,catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i,elevation,azimuth,hourangle,declination
var currentcolumn,currentrow
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable
var t_print,temptext
//alert('Row:'+currentrow+' Column:'+currentcolumn);
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//set cell
// setCell(rowIndex, columnIndex [, value [, formattedValue [, properties]]])
if (tracking_data_170h[catalogID]!=undefined)
{
tleepoch=new Date(tracking_data_170h[catalogID][0][3]);
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
data.addColumn('number', tracking_data_170h[catalogID][0][1]+epochdateprintable); // Implicit domain label col.
data.addColumn({type:'string', role:'annotation'}); // annotation role col.
data.addColumn({type:'string', role:'annotationText'}); // annotationText col.
data.addColumn({type:'string', role:'tooltip'}); // annotationText col.
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//alert('Row:'+currentrow+' Column:'+currentcolumn);
for (i=starthour;i270)) autoinvert=-1
else autoinvert=1;
autoinvert=1;
if (tracking_data_170h[catalogID][i+1][0]>180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
elevation=PrintElevation(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
azimuth=PrintAzimuth(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
if (elevation>0) {
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
data.addRow();
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
formattedHourMinute='';
if (annotation=='true') {
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
data.setCell((currentrow-1),0,1*hourangle ); // set first cell with new lon
data.setCell((currentrow-1),(currentcolumn-4), 1*declination);
data.setCell((currentrow-1),(currentcolumn-3), formattedHourMinute);
data.setCell((currentrow-1),(currentcolumn-2), calculatedtime.toDateString()+' '+calculatedtime.toTimeString());
data.setCell((currentrow-1),(currentcolumn-1), tooltiptext);
} // end if (elevation>0) {
} // end for
} // end if exist
return(data);
// add column + annotation,annotationText and tooltip
} // END
function addserie_geoarc_sathadecl(data){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i,elevation,azimuth,hourangle,declination
var currentcolumn,currentrow
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable
var t_print,temptext
//alert('Row:'+currentrow+' Column:'+currentcolumn);
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//set cell
// setCell(rowIndex, columnIndex [, value [, formattedValue [, properties]]])
data.addColumn('number', ''); // Implicit domain label col.
data.addColumn({type:'string', role:'annotation'}); // annotation role col.
data.addColumn({type:'string', role:'annotationText'}); // annotationText col.
data.addColumn({type:'string', role:'tooltip'}); // annotationText col.
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//alert('Row:'+currentrow+' Column:'+currentcolumn);
for (i=0;i<360;i++){
declination=PrintDeclination(i,0,42164.14);
hourangle=GetHourAngle(i,0,42164.14);
//if ((hourangle<90) || (hourangle>270)) autoinvert=-1
// else autoinvert=1;
autoinvert=1;
elevation=PrintElevation(i,0,42164.14);
//azimuth=PrintAzimuth(i,0,42164.14);
if (elevation>0) {
data.addRow();
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
formattedHourMinute='';
data.setCell((currentrow-1),0,1*hourangle ); // set first cell with new lon
data.setCell((currentrow-1),(currentcolumn-4), 1*declination);
data.setCell((currentrow-1),(currentcolumn-3), '');
data.setCell((currentrow-1),(currentcolumn-2), '');
data.setCell((currentrow-1),(currentcolumn-1), '');
} // end if (elevation>0) {
} // end for
return(data);
// add column + annotation,annotationText and tooltip
} // END
function initdraw_satskew(catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable,elevation,azimuth,declination,hourangle,skew
var temptext
var t_print;//=new Array();
var last_updatetime=new Date(tracking_data_update_date);
document.getElementById('update_date_info').innerHTML='Tracking data updated at '+last_updatetime.toUTCString()+' Local Time:'+last_updatetime.toString();
//xaxislabelchart1_2,yaxislabelchart1_2,titlechart1_2
yaxislabelchart1_2='Satellite Skew';
xaxislabelchart1_2='Time offset [hours]';
//titlechart1_2='Latitude vs Longitude motion based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString();
titlechart1_2='Skew vs Time offset based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString();
if (tracking_data_170h[catalogID]!=undefined)
{
tleepoch=new Date(tracking_data_170h[catalogID][0][3]);
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
tempdata.addColumn('number', 'Skew'); // Implicit domain label col.
tempdata.addColumn('number', tracking_data_170h[catalogID][0][1]+epochdateprintable); // Implicit series 1 data col.
tempdata.addColumn({type:'string', role:'annotation'}); // annotation role col.
tempdata.addColumn({type:'string', role:'annotationText'}); // annotationText col.
tempdata.addColumn({type:'string', role:'tooltip'}); // annotationText col.
for (i=starthour;i180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
//1*PrintElevation(tracking_data_170h[catalogID][i+1][0],0.00622778753330089,42161.9191759087)
elevation=PrintElevation(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
azimuth=PrintAzimuth(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
declination=PrintDeclination(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
hourangle=GetHourAngle(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
skew=GetSkewInclined(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
//if ((azimuth<90) || (azimuth>270)) autoinvert=-1
// else autoinvert=1;
autoinvert=1;
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
formattedHourMinute='';
if (annotation=='true'){
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
if (elevation>0) tempdata.addRows([[i, 1*skew, formattedHourMinute,calculatedtime.toDateString()+' '+calculatedtime.toTimeString(),tooltiptext]]);
}
}
return(tempdata);
}
function addserie_satskew(data,catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i,elevation,azimuth,declination,hourangle
var currentcolumn,currentrow
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable,skew
var t_print,temptext
//alert('Row:'+currentrow+' Column:'+currentcolumn);
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//set cell
// setCell(rowIndex, columnIndex [, value [, formattedValue [, properties]]])
if (tracking_data_170h[catalogID]!=undefined)
{
tleepoch=new Date(tracking_data_170h[catalogID][0][3]);
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
data.addColumn('number', tracking_data_170h[catalogID][0][1]+epochdateprintable); // Implicit domain label col.
data.addColumn({type:'string', role:'annotation'}); // annotation role col.
data.addColumn({type:'string', role:'annotationText'}); // annotationText col.
data.addColumn({type:'string', role:'tooltip'}); // annotationText col.
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//alert('Row:'+currentrow+' Column:'+currentcolumn);
for (i=starthour;i180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
elevation=PrintElevation(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
azimuth=PrintAzimuth(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
declination=PrintDeclination(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
hourangle=GetHourAngle(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
skew=GetSkewInclined(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14); //GetSkew(tracking_data_170h[catalogID][i+1][0]);
if (elevation>0) {
//if ((azimuth<90) || (azimuth>270))
autoinvert=1;
//else autoinvert=1;
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
data.addRow();
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
formattedHourMinute='';
if (annotation=='true') {
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
data.setCell((currentrow-1),0,i ); // set first cell with new timeoffset
data.setCell((currentrow-1),(currentcolumn-4), 1*skew);
data.setCell((currentrow-1),(currentcolumn-3), formattedHourMinute);
data.setCell((currentrow-1),(currentcolumn-2), calculatedtime.toDateString()+' '+calculatedtime.toTimeString());
data.setCell((currentrow-1),(currentcolumn-1), tooltiptext);
/*
data.setCell((currentrow-1),0,i ); // set first cell with new lon
data.setCell((currentrow-1),(currentcolumn-4), tracking_data_170h[catalogID][i+1][3]);
data.setCell((currentrow-1),(currentcolumn-3), formattedHourMinute);
data.setCell((currentrow-1),(currentcolumn-2), calculatedtime.toDateString()+' '+calculatedtime.toTimeString());
data.setCell((currentrow-1),(currentcolumn-1), tooltiptext);
*/
} // end for
} // end if exist
} // if (elevation>0)
return(data);
// add column + annotation,annotationText and tooltip
} // END
function add_geoarc_satskew(data){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i,elevation,azimuth,declination,hourangle
var currentcolumn,currentrow
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable,skew
var t_print,temptext
//alert('Row:'+currentrow+' Column:'+currentcolumn);
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
data.addColumn('number', ''); // Implicit domain label col.
data.addColumn({type:'string', role:'annotation'}); // annotation role col.
data.addColumn({type:'string', role:'annotationText'}); // annotationText col.
data.addColumn({type:'string', role:'tooltip'}); // annotationText col.
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//alert('Row:'+currentrow+' Column:'+currentcolumn);
for (i=0;i<360;i++){
elevation=PrintElevation(i,0,42164.14);
skew=GetSkewInclined(i,0,42164.14); //GetSkew(tracking_data_170h[catalogID][i+1][0]);
if (elevation>0) {
data.addRow();
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
data.setCell((currentrow-1),0,i ); // set first cell with new timeoffset
data.setCell((currentrow-1),(currentcolumn-4), 1*skew);
data.setCell((currentrow-1),(currentcolumn-3), '');
data.setCell((currentrow-1),(currentcolumn-2), '');
data.setCell((currentrow-1),(currentcolumn-1), '');
} // end for
} // if (elevation>0)
return(data);
// add column + annotation,annotationText and tooltip
} // END
function initdraw_satazel(catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable,elevation,azimuth,declination,hourangle,skew
var temptext
var t_print;//=new Array();
var last_updatetime=new Date(tracking_data_update_date);
document.getElementById('update_date_info').innerHTML='Tracking data updated at '+last_updatetime.toUTCString()+' Local Time:'+last_updatetime.toString();
//xaxislabelchart1_2,yaxislabelchart1_2,titlechart1_2
yaxislabelchart1_2='Satellite Elevation';
xaxislabelchart1_2='Satellite Azimuth';
//titlechart1_2='Latitude vs Longitude motion based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString();
titlechart1_2='Elevation vs Azimuth motion based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString();
if (tracking_data_170h[catalogID]!=undefined)
{
tleepoch=new Date(tracking_data_170h[catalogID][0][3]);
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
tempdata.addColumn('number', 'Azimuth'); // Implicit domain label col.
tempdata.addColumn('number', tracking_data_170h[catalogID][0][1]+epochdateprintable); // Implicit series 1 data col.
tempdata.addColumn({type:'string', role:'annotation'}); // annotation role col.
tempdata.addColumn({type:'string', role:'annotationText'}); // annotationText col.
tempdata.addColumn({type:'string', role:'tooltip'}); // annotationText col.
for (i=starthour;i180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
//1*PrintElevation(tracking_data_170h[catalogID][i+1][0],0.00622778753330089,42161.9191759087)
elevation=PrintElevation(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
azimuth=PrintAzimuth(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
declination=PrintDeclination(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
hourangle=GetHourAngle(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
skew=GetSkewInclined(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14); // GetSkew(tracking_data_170h[catalogID][i+1][0]);
//if ((azimuth<90) || (azimuth>270)) autoinvert=-1
// else autoinvert=1;
autoinvert=1;
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+Math.abs(tracking_data_170h[catalogID][i+1][1])+' °S'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\nSatellite Hourangle:'+formatnumber(hourangle,3)+' °E\r\nSatellite Declination:'+formatnumber(declination,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
formattedHourMinute='';
if (annotation=='true'){
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
tempdata.addRows([[1*azimuth, 1*elevation, formattedHourMinute,calculatedtime.toDateString()+' '+calculatedtime.toTimeString(),tooltiptext]]);
}
}
return(tempdata);
}
function GEOarc_satazel(){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable,elevation,azimuth,declination,hourangle,skew
var temptext
var t_print;//=new Array();
var last_updatetime=new Date(tracking_data_update_date);
document.getElementById('update_date_info').innerHTML='Tracking data updated at '+last_updatetime.toUTCString()+' Local Time:'+last_updatetime.toString();
//xaxislabelchart1_2,yaxislabelchart1_2,titlechart1_2
yaxislabelchart1_2='Satellite Elevation';
xaxislabelchart1_2='Satellite Azimuth';
//titlechart1_2='Latitude vs Longitude motion based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString();
titlechart1_2='Elevation vs Azimuth motion based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString();
if (tracking_data_170h[catalogID]!=undefined)
{
tempdata.addColumn('number', 'Azimuth'); // Implicit domain label col.
tempdata.addColumn('number', ''); // Implicit series 1 data col.
tempdata.addColumn({type:'string', role:'annotation'}); // annotation role col.
tempdata.addColumn({type:'string', role:'annotationText'}); // annotationText col.
tempdata.addColumn({type:'string', role:'tooltip'}); // annotationText col.
for (i=0;i<360;i++){
//1*PrintElevation(tracking_data_170h[catalogID][i+1][0],0.00622778753330089,42161.9191759087)
elevation=PrintElevation(i,0,42164.14);
azimuth=PrintAzimuth(i,0,42164.14);
//if ((azimuth<90) || (azimuth>270)) autoinvert=-1
// else autoinvert=1;
autoinvert=1;
if (elevation>0) tempdata.addRows([[1*azimuth, 1*elevation, '','','']]);
}
}
return(tempdata);
}
function addserie_satazel(data,catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i,elevation,azimuth,declination,hourangle
var currentcolumn,currentrow
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable,skew
var t_print,temptext
//alert('Row:'+currentrow+' Column:'+currentcolumn);
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//set cell
// setCell(rowIndex, columnIndex [, value [, formattedValue [, properties]]])
if (tracking_data_170h[catalogID]!=undefined)
{
tleepoch=new Date(tracking_data_170h[catalogID][0][3]);
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
data.addColumn('number', tracking_data_170h[catalogID][0][1]+epochdateprintable); // Implicit domain label col.
data.addColumn({type:'string', role:'annotation'}); // annotation role col.
data.addColumn({type:'string', role:'annotationText'}); // annotationText col.
data.addColumn({type:'string', role:'tooltip'}); // annotationText col.
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//alert('Row:'+currentrow+' Column:'+currentcolumn);
for (i=starthour;i180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
elevation=PrintElevation(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
azimuth=PrintAzimuth(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
declination=PrintDeclination(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
hourangle=GetHourAngle(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
skew=GetSkewInclined(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);// GetSkew(tracking_data_170h[catalogID][i+1][0]);
//if ((azimuth<90) || (azimuth>270))
autoinvert=1;
//else autoinvert=1;
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\nSatellite Azimuth:'+formatnumber(azimuth,3)+' °E\r\nSatellite Elevation:'+formatnumber(elevation,3)+' °'+'\r\nSatellite Skew:'+formatnumber(skew,3)+' °'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
data.addRow();
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
formattedHourMinute='';
if (annotation=='true') {
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
data.setCell((currentrow-1),0,1*azimuth ); // set first cell with new lon
data.setCell((currentrow-1),(currentcolumn-4), 1*elevation);
data.setCell((currentrow-1),(currentcolumn-3), formattedHourMinute);
data.setCell((currentrow-1),(currentcolumn-2), calculatedtime.toDateString()+' '+calculatedtime.toTimeString());
data.setCell((currentrow-1),(currentcolumn-1), tooltiptext);
} // end for
} // end if exist
return(data);
// add column + annotation,annotationText and tooltip
} // END
function add_GEOArc_satazel(data){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i,elevation,azimuth,declination,hourangle
var currentcolumn,currentrow
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable,skew
var t_print,temptext
//alert('Row:'+currentrow+' Column:'+currentcolumn);
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//set cell
// setCell(rowIndex, columnIndex [, value [, formattedValue [, properties]]])
data.addColumn('number', 'GEO arc'); // Implicit domain label col.
data.addColumn({type:'string', role:'annotation'}); // annotation role col.
data.addColumn({type:'string', role:'annotationText'}); // annotationText col.
data.addColumn({type:'string', role:'tooltip'}); // annotationText col.
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//alert('Row:'+currentrow+' Column:'+currentcolumn);
for (i=0;i<360;i++){
elevation=PrintElevation(i,0,42164.14);
azimuth=PrintAzimuth(i,0,42164.14);
//declination=PrintDeclination(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
//hourangle=GetHourAngle(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);
//skew=GetSkewInclined(tracking_data_170h[catalogID][i+1][0],tracking_data_170h[catalogID][i+1][1],tracking_data_170h[catalogID][i+1][2]+6378.14);// GetSkew(tracking_data_170h[catalogID][i+1][0]);
if (elevation>0) {
data.addRow();
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
data.setCell((currentrow-1),0,1*azimuth ); // set first cell with new lon
data.setCell((currentrow-1),(currentcolumn-4), 1*elevation);
data.setCell((currentrow-1),(currentcolumn-3), '');
data.setCell((currentrow-1),(currentcolumn-2), '');
data.setCell((currentrow-1),(currentcolumn-1), '');
}
} // end for
return(data);
// add column + annotation,annotationText and tooltip
} // END
function initdraw_satlonlat(catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable
var temptext
var t_print;//=new Array();
var last_updatetime=new Date(tracking_data_update_date);
document.getElementById('update_date_info').innerHTML='Tracking data updated at '+last_updatetime.toUTCString()+' Local Time:'+last_updatetime.toString();
//xaxislabelchart1_2,yaxislabelchart1_2,titlechart1_2
yaxislabelchart1_2='Satellite Latitude';
xaxislabelchart1_2='Satellite Longitude'; // endret fra Satellite Elevation til Satellite Longitude 4 oct 2013
titlechart1_2='Latitude vs Longitude motion based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString();
//titlechart1_2='Elevation vs Azimuth motion based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString();
if (tracking_data_170h[catalogID]!=undefined)
{
tleepoch=new Date(tracking_data_170h[catalogID][0][3]);
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
tempdata.addColumn('number', 'Longitude'); // Implicit domain label col.
tempdata.addColumn('number', tracking_data_170h[catalogID][0][1]+epochdateprintable); // Implicit series 1 data col.
tempdata.addColumn({type:'string', role:'annotation'}); // annotation role col.
tempdata.addColumn({type:'string', role:'annotationText'}); // annotationText col.
tempdata.addColumn({type:'string', role:'tooltip'}); // annotationText col.
for (i=starthour;i180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
if (lonminusplus<0) autoinvert=-1
else autoinvert=-1;
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
formattedHourMinute='';
if (annotation=='true'){
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
tempdata.addRows([[1*formatnumber(lonminusplus,6), tracking_data_170h[catalogID][i+1][1], formattedHourMinute,calculatedtime.toDateString()+' '+calculatedtime.toTimeString(),tooltiptext]]);
}
}
return(tempdata);
}
function addserie_satlonlat(data,catalogID,hours,annotation,starthour){
var tmptime_ms,tmptime_ms2
var tempdata=new google.visualization.DataTable();
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,i
var currentcolumn,currentrow
var formattedHourMinute
var tleepoch=new Date();
var epochdateprintable
var t_print,temptext
//alert('Row:'+currentrow+' Column:'+currentcolumn);
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//set cell
// setCell(rowIndex, columnIndex [, value [, formattedValue [, properties]]])
if (tracking_data_170h[catalogID]!=undefined)
{
tleepoch=new Date(tracking_data_170h[catalogID][0][3]);
epochdateprintable=tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
temptext=tracking_data_170h[catalogID][0][2];
t_print=temptext.split('T=');
epochdateprintable=' T='+t_print[t_print.length-1]+' [days] ';//tracking_data_170h[catalogID][0][2];//' Epoch:'+tleepoch.toISOString();//+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[catalogID][0][2]+' [days]
';
data.addColumn('number', tracking_data_170h[catalogID][0][1]+epochdateprintable); // Implicit domain label col.
data.addColumn({type:'string', role:'annotation'}); // annotation role col.
data.addColumn({type:'string', role:'annotationText'}); // annotationText col.
data.addColumn({type:'string', role:'tooltip'}); // annotationText col.
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
//alert('Row:'+currentrow+' Column:'+currentcolumn);
for (i=starthour;i180) lonminusplus=tracking_data_170h[catalogID][i+1][0]-360
else lonminusplus=tracking_data_170h[catalogID][i+1][0];
if (lonminusplus<0) autoinvert=-1
else autoinvert=-1;
if (lonminusplus<0) eastwest='°West'
else eastwest='°East';
if (tracking_data_170h[catalogID][i+1][3]>0) tooltiptext2='Satellite is '+formatnumber(tracking_data_170h[catalogID][i+1][3],1)+' km outside Clarke belt'
else tooltiptext2='Satellite is '+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][3]),1)+' km closer to Earth';
if (lonminusplus>0){
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °E\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
else
{
if (tracking_data_170h[catalogID][i+1][1]>0) tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °N'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i
else tooltiptext=tracking_data_170h[catalogID][0][1]+'\r\nSatellite Longitude:'+formatnumber(Math.abs(lonminusplus),3)+' °W\nSatellite Latitude:'+formatnumber(Math.abs(tracking_data_170h[catalogID][i+1][1]),3)+' °S'+'\r\n'+tooltiptext2+'\r\n'+calculatedtime.toUTCString()+'\r\nLocal Time:'+calculatedtime.toString()+'\r\nT+'+i;
}
data.addRow();
currentrow=data.getNumberOfRows();
currentcolumn=data.getNumberOfColumns();
formattedHourMinute='';
if (annotation=='true') {
if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()<10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()<10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute='0'+calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()>=10)) formattedHourMinute=calculatedtime.getHours().toString()+calculatedtime.getMinutes().toString()
else if ((calculatedtime.getHours()>=10) && (calculatedtime.getMinutes()<10)) formattedHourMinute=calculatedtime.getHours().toString()+'0'+calculatedtime.getMinutes().toString();
}
data.setCell((currentrow-1),0,1*formatnumber(lonminusplus,6) ); // set first cell with new lon
data.setCell((currentrow-1),(currentcolumn-4), tracking_data_170h[catalogID][i+1][1]);
data.setCell((currentrow-1),(currentcolumn-3), formattedHourMinute);
data.setCell((currentrow-1),(currentcolumn-2), calculatedtime.toDateString()+' '+calculatedtime.toTimeString());
data.setCell((currentrow-1),(currentcolumn-1), tooltiptext);
} // end for
} // end if exist
return(data);
// add column + annotation,annotationText and tooltip
} // END
function drawVisualization(satcatidarray,first_plotspan,second_plotspan,third_parameter,xaxismirror,start1hour,start2hour)
{
var satcatid,satcatid2,satcatid3,tmptime_ms,tmptime_ms2
var data = [];
//var lonlatdata=new Array();
var lonlatdatatable=new google.visualization.DataTable();
var lonlatdata170h=new google.visualization.DataTable();
var azeldata=new google.visualization.DataTable();
var ha_decl_data=new google.visualization.DataTable();
var geodist=new google.visualization.DataTable();
var geodist170h=new google.visualization.DataTable();
var data2 = [];
var data3 = [];
var datarows= [];
var datarows2= [];
var datarows3= [];
var calculatedtime=new Date();
var tooltiptext,tooltiptext2
var lonminusplus,eastwest,charttitle,pointsize,satcatarraylength,i
//alert(1);
satcatid=38778; // ASTRA 2F
satcatid2=37775; // ASTRA 1N
//satcatid=25358; // THOR3
//satcatid=26766;//26477; // ariane deb
//satcatid=32487;// THOR 5
// THOR 5 32487
// THOR 6 36033
// INTELSAT 1002 28358
//satcatidarray=new Array(38778,37775,26494,25462,0);
//satcatidarray=new Array(33207,27426,28935);
//satcatidarray=new Array(38778,0);
//satcatidarray=new Array(32487,36033,28358);//,36033,28358,0);
//satcatidarray=new Array(26724,0);
//alert(xaxismirror);
// invert axis by -1
satcatarraylength=satcatidarray.length;
//alert(satcatidarray+' '+satcatarraylength);
document.getElementById('update_info').innerHTML='';
for (i=0;i';
}
else
{
if (third_parameter==0) {
lonlatdata170h=addserie_satlonlat(lonlatdata170h,satcatidarray[i],second_plotspan,'false',start1hour);
lonlatdata=addserie_satlonlat(lonlatdata,satcatidarray[i],first_plotspan,'true',start2hour,start2hour);
}
else if (third_parameter==1)
{
lonlatdata170h=addserie_satazel(lonlatdata170h,satcatidarray[i],second_plotspan,'false',start1hour);
lonlatdata=addserie_satazel(lonlatdata,satcatidarray[i],first_plotspan,'true',start2hour);
}
else if (third_parameter==2)
{
lonlatdata170h=addserie_sathadecl(lonlatdata170h,satcatidarray[i],second_plotspan,'false',start1hour);
lonlatdata=addserie_sathadecl(lonlatdata,satcatidarray[i],first_plotspan,'true',start2hour);
}
else if (third_parameter==3)
{
lonlatdata=addserie_satskew(lonlatdata,satcatidarray[i],first_plotspan,'true',start1hour);
lonlatdata170h=addserie_satskew(lonlatdata170h,satcatidarray[i],second_plotspan,'false',start2hour);
}
geodist=addserie_geooffset(geodist,satcatidarray[i],first_plotspan,'true',start1hour);
geodist170h=addserie_geooffset(geodist170h,satcatidarray[i],second_plotspan,'false',start2hour);
calculatedtime=new Date(tracking_data_170h[satcatidarray[i]][0][3]);
document.getElementById('update_info').innerHTML=document.getElementById('update_info').innerHTML+tracking_data_170h[satcatidarray[i]][0][1]+' TLE Epoch date&time: '+calculatedtime.toUTCString()+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[satcatidarray[i]][0][2]+' [days]
';
}
}
//alert(lonlatdata);
if ((third_parameter==1)&&(satcatidarray[i]==0)&& (xaxismirror==2))
{
lonlatdata=add_GEOArc_satazel(lonlatdata);
lonlatdata170h=add_GEOArc_satazel(lonlatdata170h);
}
// if ((third_parameter==3)&&(satcatidarray[i]==0)&& (xaxismirror==2))
// {
// lonlatdata=add_geoarc_satskew(lonlatdata);
// lonlatdata170h=add_geoarc_satskew(lonlatdata170h);
// }
if ((third_parameter==2)&&(satcatidarray[i]==0)&& (xaxismirror==2))
{
lonlatdata=addserie_geoarc_sathadecl(lonlatdata);
lonlatdata170h=addserie_geoarc_sathadecl(lonlatdata170h);
}
}
if (xaxismirror==0) xaxismirror=1
else if (xaxismirror=='undefined') xaxismirror=1
else if (xaxismirror==-1) xaxismirror=-1
else if (xaxismirror==2) xaxismirror=1;
//alert(first_plotspan+' '+second_plotspan);
pointsize=4;
//alert(1);
var last_updatetime=new Date(tracking_data_update_date);
//alert(last_updatetime.toString());
document.getElementById("update_date_info").innerHTML='Tracking data updated at '+last_updatetime.toUTCString()+' Local Time:'+last_updatetime.toString();
/*
calculatedtime=new Date(tracking_data_170h[38778][0][3]);
document.getElementById('update_info').innerHTML=document.getElementById('update_info').innerHTML+tracking_data_170h[38778][0][1]+' TLE Epoch date&time: '+calculatedtime.toUTCString()+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[38778][0][2]+' [days]
';
calculatedtime=new Date(tracking_data_170h[37775][0][3]);
document.getElementById('update_info').innerHTML=document.getElementById('update_info').innerHTML+tracking_data_170h[37775][0][1]+' TLE Epoch date&time: '+calculatedtime.toUTCString()+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[37775][0][2]+' [days]
';
calculatedtime=new Date(tracking_data_170h[26494][0][3]);
document.getElementById('update_info').innerHTML=document.getElementById('update_info').innerHTML+tracking_data_170h[26494][0][1]+' TLE Epoch date&time: '+calculatedtime.toUTCString()+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[26494][0][2]+' [days]
';
calculatedtime=new Date(tracking_data_170h[25462][0][3]);
document.getElementById('update_info').innerHTML=document.getElementById('update_info').innerHTML+tracking_data_170h[25462][0][1]+' TLE Epoch date&time: '+calculatedtime.toUTCString()+' Local Time:'+calculatedtime.toString()+' Time since epoch: '+tracking_data_170h[25462][0][2]+' [days]
';
*/
//alert(tracking_data_170h[12309][0][0]);
// xaxismirror=1 = normal, -1 inverter
// autoinvert=-1 , inverter, +1 normal
/*
if ((autoinvert==-1) && (xaxismirror==-1) && (third_parameter==0) ) xaxismirror=-1 // no invert
else if ((autoinvert==-1) && (xaxismirror==1) && (third_parameter==0) ) xaxismirror=1
else if ((autoinvert==1) && (xaxismirror==-1) && (third_parameter==0) ) xaxismirror=1
else if ((autoinvert==1) && (xaxismirror==1) && (third_parameter==0) ) xaxismirror=-1
else if ((autoinvert==-1) && (xaxismirror==-1) && ( (third_parameter==1) || (third_parameter==2) ) ) xaxismirror=-1
else if ((autoinvert==-1) && (xaxismirror==1) && ( (third_parameter==1) || (third_parameter==2) ) ) xaxismirror=1;
else if ((autoinvert==-1) && (xaxismirror==1) && ( (third_parameter==1) || (third_parameter==2) ) ) xaxismirror=1;
else if ((autoinvert==1) && (xaxismirror==1) && ( (third_parameter==1) || (third_parameter==2) ) ) xaxismirror=-1;
*/
//autoinvert=autoinvert*xaxismirror;
//alert('autoinv:'+autoinvert+' Xaxismirror '+xaxismirror);
chart1= new google.visualization.LineChart(document.getElementById('chart_div'));//
chart1.draw(lonlatdata, {curveType: "none",
// isHtml:true,
title:titlechart1_2,
fontSize:14,
pointSize:pointsize,
// width: 700, height: 400,
// vAxis: {gridlines: {color: '#333', count: 10}},
// hAxis: {gridlines: {color: '#333', count: 10}}//,
// axisTitlesPosition:'in',
chartArea:{left:100,top:40,width:"75%",height:"85%"},
//hAxis:{textPosition:'in'},
width: 1300,
height:500,
interpolateNulls:true,
// legend:{position:'top'},
vAxis: {gridlines: {color: '#333', count: 10},title: yaxislabelchart1_2,viewWindowMode:'maximized'},
hAxis: {gridlines: {color: '#333', count: 10},title: xaxislabelchart1_2,direction:(xaxismirror*autoinvert),viewWindowMode:'maximized'},
explorer: {
actions: ['dragToZoom', 'rightClickToReset'],
// axis: 'horizontal',
keepInBounds: true,
maxZoomIn: 200.0},
seriesType: "line",
series: {0: {type: "line"}}
}
);
//xaxislabelchart1_2,yaxislabelchart1_2,titlechart1_2
chart2= new google.visualization.LineChart(document.getElementById('chart_div2')).draw(lonlatdata170h, {curveType: "none",
title:'170h '+titlechart1_2,
fontSize:14,
pointSize:pointsize,
// axisTitlesPosition:'in',
chartArea:{left:100,top:40,width:"75%",height:"85%"},
//hAxis:{textPosition:'in'},
width: 1300,
height:500,
interpolateNulls:true,
// legend:{position:'top'},
vAxis: {gridlines: {color: '#333', count: 10},title: yaxislabelchart1_2,viewWindowMode:'maximized'},
hAxis: {gridlines: {color: '#333', count: 10},title: xaxislabelchart1_2,direction:(xaxismirror*autoinvert),viewWindowMode:'maximized'},
explorer: {
actions: ['dragToZoom', 'rightClickToReset'],
// axis: 'horizontal',
keepInBounds: true,
maxZoomIn: 200.0},
seriesType: "line",
series: {0: {type: "line"}}
}
);
chart3= new google.visualization.LineChart(document.getElementById('chart_div3')).draw(geodist, {curveType: "none",
title:'Distance from GEO [km] 24 hours based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString(),
fontSize:14,
pointSize:pointsize,
// width: 700, height: 400,
// vAxis: {gridlines: {color: '#333', count: 10}},
// hAxis: {gridlines: {color: '#333', count: 10}}//,
// axisTitlesPosition:'in',
chartArea:{left:100,top:40,width:"75%",height:"85%"},
//hAxis:{textPosition:'in'},
width: 1300,
height:500,
interpolateNulls:true,
// legend:{position:'top'},
vAxis: {gridlines: {color: '#333', count: 10},title: "Distance from GEO altitude [km]",viewWindowMode:'maximized'},
hAxis: {gridlines: {color: '#333', count: 10},title: "Time offset [hours]",viewWindowMode:'maximized'},
explorer: {
actions: ['dragToZoom', 'rightClickToReset'],
// axis: 'horizontal',
keepInBounds: true,
maxZoomIn: 200.0},
seriesType: "line",
series: {0: {type: "line"}}
}
);
chart4= new google.visualization.LineChart(document.getElementById('chart_div4')).draw(geodist170h, {curveType: "none",
title:'Distance from GEO [km] 170 hours based on latest two line elements (TLE source CELESTRAK). Updated: '+last_updatetime.toUTCString(),
fontSize:14,
pointSize:pointsize,
// width: 700, height: 400,
// vAxis: {gridlines: {color: '#333', count: 10}},
// hAxis: {gridlines: {color: '#333', count: 10}}//,
// axisTitlesPosition:'in',
chartArea:{left:100,top:40,width:"75%",height:"85%"},
//hAxis:{textPosition:'in'},
width: 1300,
height:500,
interpolateNulls:true,
// legend:{position:'top'},
vAxis: {gridlines: {color: '#333', count: 10},title: "Distance from GEO altitude [km]",viewWindowMode:'maximized'},
hAxis: {gridlines: {color: '#333', count: 10},title: "Time offset [hours]",viewWindowMode:'maximized'},
explorer: {
actions: ['dragToZoom', 'rightClickToReset'],
// axis: 'horizontal',
keepInBounds: true,
maxZoomIn: 200.0},
seriesType: "line",
series: {0: {type: "line"}}
}
);
}
/*
chart4= new google.visualization.LineChart(document.getElementById('chart_div4'));
chart4.draw(geodist170h, {curveType: "function",
title:'Distance from GEO [km] 24 hours based on latest two line elements (TLE source CELESTRAK) '+calculatedtime.toUTCString(),
pointSize:pointsize,
width: 700, height: 400,
vAxis: {gridlines: {color: 'red', count: 10},title: "Distance from nominal GEO altitude"},
hAxis: {gridlines: {color: 'red', count: 10},title: "T offset1234"},
seriesType: "line",
series: {0: {type: "line",color: 'blue'}}
}
);
chart4.draw(geodist, {curveType: "function",
title:'Distance from GEO [km] 24 hours',
pointSize:pointsize,
width: 700, height: 400,
vAxis: {gridlines: {color: 'red', count: 10},title: "Distance from nominal GEO altitude"},
hAxis: {gridlines: {color: 'red', count: 10},title: "T offset1234"},
seriesType: "line",
series: {0: {type: "line",color: 'red'}}
}
);
*/
//google.maps.event.clearListeners(chart1, 'onmouseover');
//google.maps.event.clearListeners(chart1, 'onmouseout');
// google.visualization.events.addListener(chart1, 'onmouseover', chart1MouseOver);
// google.visualization.events.addListener(chart1, 'onmouseover', alert(1));
// google.visualization.events.addListener(chart1, 'onmouseout', chart1MouseOut);
//}
//else alert('Data for SatCatID '+satcatid+' is not available'); // if table entry exist
function chart1MouseOver(e) {
chart1.setSelection([e]);
}
function chart1MouseOut(e) {
chart1.setSelection([{'row': null, 'column': null}]);
}
function formatvalue(input, rsize) // Desimal avrunding
{
var invalid = "**************************";
var temp,temp2
var nines = "999999999999999999999999";
var strin = "" + input;
var fltin = parseFloat(strin);
if (strin.length <= rsize) return strin;
if (strin.indexOf("e") != -1 ||
fltin > parseFloat(nines.substring(0,rsize)+".4"))
return invalid.substring(0, rsize);
var rounded = "" + (fltin + (fltin - parseFloat(strin.substring(0, rsize))));
temp=rounded.substring(0, rsize);
return(temp);
}
function formatnumber(num,places)
{
var strOP,i,decimals,newdecimals,integer,newstring,numcopy
var ss=new Array()
numcopy=num;
var a = Math.pow(10,Math.abs(places) == places ? places : 2);
strOP=String(Math.round(num * a) / a).replace(/^(\d)/," $1");
if (num<0) strOP=" "+strOP; // put " " on negative numbers
//num=parseFloat(strOP);
ss = strOP.split(".");// split string by . what about zero..?
if ((num!==0)&&(ss.length>1))
{
decimals=ss[1];
integer=ss[0];
if (decimals.length=0) strOP=" "+strOP;
return(strOP)
}
//google.charts.load('current', {packages: ['corechart','table']});
//google.charts.setOnLoadCallback(drawChart);
//google.charts.load('current', {packages: ['table']});
//google.load("visualization", "1", {packages:["corechart","table"]});
//google.load("visualization", "1", {packages:["corechart"]});
//google.load("visualization", "1", {packages: ["table"]});