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"]});