<%@ EnableSessionState=false Language=JavaScript %> <% check_cookie(); function plotjupsat(dispday) { px_year = px_date.getUTCFullYear(); px_month = px_date.getUTCMonth() + 1; px_day = px_date.getUTCDate(); px_hr = px_date.getUTCHours(); offset = 360 - earthlong; iocycle_data = satellite(px_year, px_month, px_day, px_hr, 0, elem_year, utc_month, i_elem_date, io_ecc, io_inc, io_ma, io_dm, io_sma, io_ap, io_lan, lighttraveltime); iocycle_A = iocycle_data[0] - earthlong; iocycle_A = normalize360(iocycle_A); iocycle_earthdist= Math.sqrt(jupdistsqd + Math.pow(iocycle_data[2],2) - (jupdist2 * iocycle_data[2]) * Math.cos(degtorad(iocycle_A))); iocycle_angsep = radtodeg(Math.acos((Math.pow(iocycle_earthdist,2) + jupdistsqd - Math.pow(iocycle_data[2],2))/(jupdist2 * iocycle_earthdist))); io_side180 = normalize360(iocycle_data[0] + offset); if ((io_side180 > 0) && (io_side180 < 180)) { io_side = -1; } else { io_side = 1; } iocycle_ps = Math.round((iocycle_angsep * 3600) / 2.3); io = (reversal * io_side * iocycle_ps) + 292; io_stat = ""; if (( iocycle_ps < 11 ) && ( iocycle_earthdist> jupdist )) { io = -1; } eurcycle_data = satellite(px_year, px_month, px_day, px_hr, 0, elem_year, utc_month, e_elem_date, eur_ecc, eur_inc, eur_ma, eur_dm, eur_sma, eur_ap, eur_lan, lighttraveltime); eurcycle_A = eurcycle_data[0] - earthlong; eurcycle_A = normalize360(eurcycle_A); eurcycle_earthdist = Math.sqrt(jupdistsqd + Math.pow(eurcycle_data[2],2) - (jupdist2 * eurcycle_data[2]) * Math.cos(degtorad(eurcycle_A))); eurcycle_angsep = radtodeg(Math.acos((Math.pow(eurcycle_earthdist,2) + jupdistsqd - Math.pow(eurcycle_data[2],2))/(jupdist2 * eurcycle_earthdist))); eur_side180 = normalize360(eurcycle_data[0] + offset); if ((eur_side180 > 0) && (eur_side180 < 180)) { eur_side = -1; } else { eur_side = 1; } eurcycle_ps = Math.round((eurcycle_angsep * 3600) / 2.3); eur = (reversal * eur_side * eurcycle_ps) + 292; eur_stat = ""; if (( eurcycle_ps < 11 ) && ( eurcycle_earthdist > jupdist )) { eur = -1; } gancycle_data = satellite(px_year, px_month, px_day, px_hr, 0, elem_year, utc_month, g_elem_date, gan_ecc, gan_inc, gan_ma, gan_dm, gan_sma, gan_ap, gan_lan, lighttraveltime); gancycle_A = gancycle_data[0] - earthlong; gancycle_A = normalize360(gancycle_A); gancycle_earthdist = Math.sqrt(jupdistsqd + Math.pow(gancycle_data[2],2) - (jupdist2 * gancycle_data[2]) * Math.cos(degtorad(gancycle_A))); gancycle_angsep = radtodeg(Math.acos((Math.pow(gancycle_earthdist,2) + jupdistsqd - Math.pow(gancycle_data[2],2))/(jupdist2 * gancycle_earthdist))); gan_side180 = normalize360(gancycle_data[0] + offset); if ((gan_side180 > 0) && (gan_side180 < 180)) { gan_side = -1; } else { gan_side = 1; } gancycle_ps = Math.round((gancycle_angsep * 3600) / 2.3); gan = (reversal * gan_side * gancycle_ps) + 292; gan_stat = ""; if (( gancycle_ps < 11 ) && ( gancycle_earthdist > jupdist )) { gan = -1; } calcycle_data = satellite(px_year, px_month, px_day, px_hr, 0, elem_year, utc_month, c_elem_date, cal_ecc, cal_inc, cal_ma, cal_dm, cal_sma, cal_ap, cal_lan, lighttraveltime); calcycle_A = calcycle_data[0] - earthlong; calcycle_A = normalize360(calcycle_A); calcycle_earthdist = Math.sqrt(jupdistsqd + Math.pow(calcycle_data[2],2) - (jupdist2 * calcycle_data[2]) * Math.cos(degtorad(calcycle_A))); calcycle_angsep = radtodeg(Math.acos((Math.pow(calcycle_earthdist,2) + jupdistsqd - Math.pow(calcycle_data[2],2))/(jupdist2 * calcycle_earthdist))); cal_side180 = normalize360(calcycle_data[0] + offset); if ((cal_side180 > 0) && (cal_side180 < 180)) { cal_side = -1; } else { cal_side = 1; } calcycle_ps = Math.round((calcycle_angsep * 3600) / 2.3) cal = (reversal * cal_side * calcycle_ps) + 292; cal_stat = ""; if (( calcycle_ps < 11 ) && ( calcycle_earthdist > jupdist )) { cal = -1; } Response.write("\n"); pxh = to12(lpx_date.getUTCHours()); Response.write(""); if ((lpx_date.getUTCHours() == 0) || (dispday == 1)) { Response.write(lpx_date.getUTCDate() + " " + monthnames[lpx_date.getUTCMonth()] + " "); } if (pxh[0] == '12') { if (pxh[1] == 'AM') { Response.write("Midnight
\n"); } else { Response.write("Noon
\n"); } } else { Response.write(pxh[0] + ":00 " + pxh[1] + "
\n"); } } if ((Request.Form("v") == "dir") || (Request.Form("v") == "rev")) { req_view = Request.Form("v"); } else { req_view = "rev"; } var server_date; server_date = new Date(); local_date = new Date(server_date.getTime() + (Number(Request.Cookies("UserData")("Timezone")) * 60*60*1000)); utc_year = server_date.getUTCFullYear(); utc_month = server_date.getUTCMonth() + 1; utc_today = server_date.getUTCDate(); utc_hr = server_date.getUTCHours(); utc_min = server_date.getUTCMinutes() + 1; elem_year = utc_year; elem_month = utc_month; sundata_current = sun(utc_year, utc_month, utc_today, utc_hr, utc_min, server_date.getUTCSeconds()); conn = Server.CreateObject("ADODB.Connection"); conn.Open("DSN=admain"); jup_rs = Server.CreateObject("ADODB.RecordSet"); gan_rs = Server.CreateObject("ADODB.RecordSet"); eur_rs = Server.CreateObject("ADODB.RecordSet"); io_rs = Server.CreateObject("ADODB.RecordSet"); cal_rs = Server.CreateObject("ADODB.RecordSet"); jup_sql = "select dayofmonth(elemdate) as dbelem_date, period, periapsisdist, apoapsisdist, eccentricity, inclination, meananomaly, meanmotion, semimajoraxis, longperifocus, longascnode from jupiter where month(elemdate) = " + elem_month + " and year(elemdate) = " + elem_year; gan_sql = "select dayofmonth(elemdate) as dbelem_date, period, periapsisdist, apoapsisdist, eccentricity, inclination, meananomaly, meanmotion, semimajoraxis, longperifocus, longascnode from ganymede where month(elemdate) = " + elem_month + " and year(elemdate) = " + elem_year; eur_sql = "select dayofmonth(elemdate) as dbelem_date, period, periapsisdist, apoapsisdist, eccentricity, inclination, meananomaly, meanmotion, semimajoraxis, longperifocus, longascnode from europa where month(elemdate) = " + elem_month + " and year(elemdate) = " + elem_year; io_sql = "select dayofmonth(elemdate) as dbelem_date, period, periapsisdist, apoapsisdist, eccentricity, inclination, meananomaly, meanmotion, semimajoraxis, longperifocus, longascnode from io where month(elemdate) = " + elem_month + " and year(elemdate) = " + elem_year; cal_sql = "select dayofmonth(elemdate) as dbelem_date, period, periapsisdist, apoapsisdist, eccentricity, inclination, meananomaly, meanmotion, semimajoraxis, longperifocus, longascnode from callisto where month(elemdate) = " + elem_month + " and year(elemdate) = " + elem_year; jup_rs.Open(jup_sql, conn); if (jup_rs.EOF) { Response.redirect("err_data.html"); } else { j_elem_date = jup_rs.fields.item("dbelem_date"); jup_per = round(jup_rs.fields.item("period"), 2); jup_perap = jup_rs.fields.item("periapsisdist") / 149597870.691; jup_apoap = jup_rs.fields.item("apoapsisdist") / 149597870.691; jup_ecc = jup_rs.fields.item("eccentricity") + 0; jup_inc = jup_rs.fields.item("inclination") + 0; jup_ma = jup_rs.fields.item("meananomaly"); jup_dm = jup_rs.fields.item("meanmotion") + 0; jup_sma = jup_rs.fields.item("semimajoraxis") / 149597870.691; jup_ap = jup_rs.fields.item("longperifocus") + 0; jup_lan = jup_rs.fields.item("longascnode") + 0; jupiter_data = planet(utc_year, utc_month, utc_today, utc_hr, utc_min, elem_year, elem_month, j_elem_date, jup_ecc, jup_inc, jup_ma, jup_dm, jup_sma, jup_ap, jup_lan, sundata_current[0], sundata_current[1]); } lighttraveltime = (jupiter_data[4] * 499) / 86400; gan_rs.Open(gan_sql, conn); if (gan_rs.EOF) { Response.redirect("err_data.html"); } else { g_elem_date = gan_rs.fields.item("dbelem_date"); gan_per = round(gan_rs.fields.item("period"), 2); gan_perap = gan_rs.fields.item("periapsisdist") / 149597870.691; gan_apoap = gan_rs.fields.item("apoapsisdist") / 149597870.691; gan_ecc = gan_rs.fields.item("eccentricity") + 0; gan_inc = gan_rs.fields.item("inclination") + 0; gan_ma = gan_rs.fields.item("meananomaly"); gan_dm = gan_rs.fields.item("meanmotion") + 0; gan_sma = gan_rs.fields.item("semimajoraxis") / 149597870.691; gan_ap = gan_rs.fields.item("longperifocus") + 0; gan_lan = gan_rs.fields.item("longascnode") + 0; gancurrent_data = satellite(utc_year, utc_month, utc_today, utc_hr, utc_min, elem_year, elem_month, g_elem_date, gan_ecc, gan_inc, gan_ma, gan_dm, gan_sma, gan_ap, gan_lan, lighttraveltime); } eur_rs.Open(eur_sql, conn); if (eur_rs.EOF) { Response.redirect("err_data.html"); } else { e_elem_date = eur_rs.fields.item("dbelem_date"); eur_per = round(eur_rs.fields.item("period"), 2); eur_perap = eur_rs.fields.item("periapsisdist") / 149597870.691; eur_apoap = eur_rs.fields.item("apoapsisdist") / 149597870.691; eur_ecc = eur_rs.fields.item("eccentricity") + 0; eur_inc = eur_rs.fields.item("inclination") + 0; eur_ma = eur_rs.fields.item("meananomaly"); eur_dm = eur_rs.fields.item("meanmotion") + 0; eur_sma = eur_rs.fields.item("semimajoraxis") / 149597870.691; eur_ap = eur_rs.fields.item("longperifocus") + 0; eur_lan = eur_rs.fields.item("longascnode") + 0; eurcurrent_data = satellite(utc_year, utc_month, utc_today, utc_hr, utc_min, elem_year, elem_month, e_elem_date, eur_ecc, eur_inc, eur_ma, eur_dm, eur_sma, eur_ap, eur_lan, lighttraveltime); } io_rs.Open(io_sql, conn); if (io_rs.EOF) { Response.redirect("err_data.html"); } else { i_elem_date = io_rs.fields.item("dbelem_date"); io_per = round(io_rs.fields.item("period"), 2); io_perap = io_rs.fields.item("periapsisdist") / 149597870.691; io_apoap = io_rs.fields.item("apoapsisdist") / 149597870.691; io_ecc = io_rs.fields.item("eccentricity") + 0; io_inc = io_rs.fields.item("inclination") + 0; io_ma = io_rs.fields.item("meananomaly"); io_dm = io_rs.fields.item("meanmotion") + 0; io_sma = io_rs.fields.item("semimajoraxis") / 149597870.691; io_ap = io_rs.fields.item("longperifocus") + 0; io_lan = io_rs.fields.item("longascnode") + 0; iocurrent_data = satellite(utc_year, utc_month, utc_today, utc_hr, utc_min, elem_year, elem_month, i_elem_date, io_ecc, io_inc, io_ma, io_dm, io_sma, io_ap, io_lan, lighttraveltime); } cal_rs.Open(cal_sql, conn); if (cal_rs.EOF) { Response.redirect("err_data.html"); } else { c_elem_date = cal_rs.fields.item("dbelem_date"); cal_per = round(cal_rs.fields.item("period"), 2); cal_perap = cal_rs.fields.item("periapsisdist") / 149597870.691; cal_apoap = cal_rs.fields.item("apoapsisdist") / 149597870.691; cal_ecc = cal_rs.fields.item("eccentricity") + 0; cal_inc = cal_rs.fields.item("inclination") + 0; cal_ma = cal_rs.fields.item("meananomaly"); cal_dm = cal_rs.fields.item("meanmotion") + 0; cal_sma = cal_rs.fields.item("semimajoraxis") / 149597870.691; cal_ap = cal_rs.fields.item("longperifocus") + 0; cal_lan = cal_rs.fields.item("longascnode") + 0; calcurrent_data = satellite(utc_year, utc_month, utc_today, utc_hr, utc_min, elem_year, elem_month, c_elem_date, cal_ecc, cal_inc, cal_ma, cal_dm, cal_sma, cal_ap, cal_lan, lighttraveltime); } jupdist = jupiter_data[5]; jupdist2 = 2 * jupdist; jupdistsqd = Math.pow(jupdist,2); halfjupangsize = radtodeg(Math.atan(142984/(jupiter_data[5] * 149597870.691)))/2; earthlong = jupiter_data[2] + 180; earthlong = normalize360(earthlong); offset = 360 - earthlong; if (req_view == "dir") { reversal = -1; } else { reversal = 1; } %> AstronomyDaily.com - Jupiter's Moons <% insert_menu(0); %>
<% title_block("jupiter's moons", "the planets | jupiter's moons by date"); %>

 

Note: Jupiter has over 60 moons, but only the four largest are easily viewable from Earth-based telescopes. These four are called the Galilean Moons after their discoverer. Jupiter's next largest moon, Amalthea, is only 1/15th the size of Europa and at magnitude 14.1 is beyond the reach of most amateur telescopes.

In many cases the phrase "Jupiter's Moons" refers to just the four Galilean Moons - Io, Europa, Ganymede and Callisto.
<% if (req_view == "dir") { Response.write("telescope view (reversed)  \n"); Response.write("binocular view (direct)\n"); } else { Response.write("telescope view (reversed)  \n"); Response.write("binocular view (direct) \n"); } %>    

current position

<% iocurrent_A = iocurrent_data[0] - earthlong; iocurrent_A = normalize360(iocurrent_A); iocurrent_earthdist= Math.sqrt(jupdistsqd + Math.pow(iocurrent_data[2],2) - (jupdist2 * iocurrent_data[2]) * Math.cos(degtorad(iocurrent_A))); iocurrent_angsep = radtodeg(Math.acos((Math.pow(iocurrent_earthdist,2) + jupdistsqd - Math.pow(iocurrent_data[2],2))/(jupdist2 * iocurrent_earthdist))); io_side180 = normalize360(iocurrent_data[0] + offset); if ((io_side180 > 0) && (io_side180 < 180)) { io_side = -1; } else { io_side = 1; } iocurrent_ps = Math.round((iocurrent_angsep * 3600) / 2.3) io = (reversal * io_side * iocurrent_ps) + 292; io_stat = ""; if ( iocurrent_ps < 11 ) { if (iocurrent_earthdist < jupdist) { io_stat = "(transiting)" } else { io_stat = "(occulted)"; io = -1; } } eurcurrent_A = eurcurrent_data[0] - earthlong; eurcurrent_A = normalize360(eurcurrent_A); eurcurrent_earthdist= Math.sqrt(jupdistsqd + Math.pow(eurcurrent_data[2],2) - (jupdist2 * eurcurrent_data[2]) * Math.cos(degtorad(eurcurrent_A))); eurcurrent_angsep = radtodeg(Math.acos((Math.pow(eurcurrent_earthdist,2) + jupdistsqd - Math.pow(eurcurrent_data[2],2))/(jupdist2 * eurcurrent_earthdist))); eur_side180 = normalize360(eurcurrent_data[0] + offset); if ((eur_side180 > 0) && (eur_side180 < 180)) { eur_side = -1; } else { eur_side = 1; } eurcurrent_ps = Math.round((eurcurrent_angsep * 3600) / 2.3) eur = (reversal * eur_side * eurcurrent_ps) + 292; eur_stat = ""; if ( eurcurrent_ps < 11 ) { if (eurcurrent_earthdist < jupdist) { eur_stat = "(transiting)" } else { eur_stat = "(occulted)"; eur = -1; } } gancurrent_A = gancurrent_data[0] - earthlong; gancurrent_A = normalize360(gancurrent_A); gancurrent_earthdist= Math.sqrt(jupdistsqd + Math.pow(gancurrent_data[2],2) - (jupdist2 * gancurrent_data[2]) * Math.cos(degtorad(gancurrent_A))); gancurrent_angsep = radtodeg(Math.acos((Math.pow(gancurrent_earthdist,2) + jupdistsqd - Math.pow(gancurrent_data[2],2))/(jupdist2 * gancurrent_earthdist))); gan_side180 = normalize360(gancurrent_data[0] + offset); if ((gan_side180 > 0) && (gan_side180 < 180)) { gan_side = -1; } else { gan_side = 1; } gancurrent_ps = Math.round((gancurrent_angsep * 3600) / 2.3) gan = (reversal * gan_side * gancurrent_ps) + 292; gan_stat = ""; if ( gancurrent_ps < 11 ) { if (gancurrent_earthdist < jupdist) { gan_stat = "(transiting)" } else { gan_stat = "(occulted)"; gan = -1; } } calcurrent_A = calcurrent_data[0] - earthlong; calcurrent_A = normalize360(calcurrent_A); calcurrent_earthdist= Math.sqrt(jupdistsqd + Math.pow(calcurrent_data[2],2) - (jupdist2 * calcurrent_data[2]) * Math.cos(degtorad(calcurrent_A))); calcurrent_angsep = radtodeg(Math.acos((Math.pow(calcurrent_earthdist,2) + jupdistsqd - Math.pow(calcurrent_data[2],2))/(jupdist2 * calcurrent_earthdist))); cal_side180 = normalize360(calcurrent_data[0] + offset); if ((cal_side180 > 0) && (cal_side180 < 180)) { cal_side = -1; } else { cal_side = 1; } calcurrent_ps = Math.round((calcurrent_angsep * 3600) / 2.3) cal = (reversal * cal_side * calcurrent_ps) + 292; cal_stat = ""; if ( calcurrent_ps < 11 ) { if (calcurrent_earthdist < jupdist) { cal_stat = "(transiting)" } else { cal_stat = "(occulted)"; cal = -1; } } Response.write("\n"); %> Io <% Response.write(io_stat); %>
Europa <% Response.write(eur_stat); %>
Ganymede <% Response.write(gan_stat); %>
Callisto <% Response.write(cal_stat); %>

next 24 hours      [ chart for any date (1999 - 2009) ]
(local time)

<% // now + 1 hour px_date = new Date(server_date.getTime() + (1 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (1 * 60*60*1000)); plotjupsat(1); // now + 2 hours px_date = new Date(server_date.getTime() + (2 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (2 * 60*60*1000)); plotjupsat(0); // now + 3 hours px_date = new Date(server_date.getTime() + (3 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (3 * 60*60*1000)); plotjupsat(0); // now + 4 hours px_date = new Date(server_date.getTime() + (4 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (4 * 60*60*1000)); plotjupsat(0); // now + 5 hours px_date = new Date(server_date.getTime() + (5 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (5 * 60*60*1000)); plotjupsat(0); // now + 6 hours px_date = new Date(server_date.getTime() + (6 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (6 * 60*60*1000)); plotjupsat(0); // now + 7 hours px_date = new Date(server_date.getTime() + (7 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (7 * 60*60*1000)); plotjupsat(0); // now + 8 hours px_date = new Date(server_date.getTime() + (8 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (8 * 60*60*1000)); plotjupsat(0); // now + 9 hours px_date = new Date(server_date.getTime() + (9 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (9 * 60*60*1000)); plotjupsat(0); // now + 10 hours px_date = new Date(server_date.getTime() + (10 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (10 * 60*60*1000)); plotjupsat(0); // now + 11 hours px_date = new Date(server_date.getTime() + (11 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (11 * 60*60*1000)); plotjupsat(0); // now + 12 hours px_date = new Date(server_date.getTime() + (12 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (12 * 60*60*1000)); plotjupsat(0); // now + 13 hours px_date = new Date(server_date.getTime() + (13 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (13 * 60*60*1000)); plotjupsat(0); // now + 14 hours px_date = new Date(server_date.getTime() + (14 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (14 * 60*60*1000)); plotjupsat(0); // now + 15 hours px_date = new Date(server_date.getTime() + (15 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (15 * 60*60*1000)); plotjupsat(0); // now + 16 hours px_date = new Date(server_date.getTime() + (16 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (16 * 60*60*1000)); plotjupsat(0); // now + 17 hours px_date = new Date(server_date.getTime() + (17 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (17 * 60*60*1000)); plotjupsat(0); // now + 18 hours px_date = new Date(server_date.getTime() + (18 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (18 * 60*60*1000)); plotjupsat(0); // now + 19 hours px_date = new Date(server_date.getTime() + (19 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (19 * 60*60*1000)); plotjupsat(0); // now + 20 hours px_date = new Date(server_date.getTime() + (20 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (20 * 60*60*1000)); plotjupsat(0); // now + 21 hours px_date = new Date(server_date.getTime() + (21 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (21 * 60*60*1000)); plotjupsat(0); // now + 22 hours px_date = new Date(server_date.getTime() + (22 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (22 * 60*60*1000)); plotjupsat(0); // now + 23 hours px_date = new Date(server_date.getTime() + (23 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (23 * 60*60*1000)); plotjupsat(0); // now + 24 hours px_date = new Date(server_date.getTime() + (24 * 60*60*1000)); lpx_date = new Date(local_date.getTime() + (24 * 60*60*1000)); plotjupsat(0); %>
 io

Galileo photo
 current position
 
Ecliptic Longitude:
Ecliptic Latitude:


Jovicentric
<% Response.write(" " + degtodmsstr(iocurrent_data[0]) + "
"); Response.write(" " + degtodmsstr(iocurrent_data[1]) + "


"); %>
 

From Jupiter's Limb:
From Jupiter's Center:


   Angular
Separation
<% Response.write(" " + degtodmsstr(iocurrent_angsep - halfjupangsize) + "
"); Response.write(" " + degtodmsstr(iocurrent_angsep) + "


"); %>
 current distance
From Jupiter:
 
 
 
 
<% Response.write(comma(round(iocurrent_data[2] * 149597870.691, 2)) + " km
"); Response.write(comma(round(iocurrent_data[2] * 92955628.85, 2)) + " mi
"); Response.write(round(iocurrent_data[2], 3) + " au


"); %>
From the Earth:
 
 
Light Travel Time:
Angular Size:
<% Response.write(comma(round(iocurrent_earthdist * 149597870.691, 2)) + " km
"); Response.write(comma(round(iocurrent_earthdist * 92955628.85, 2)) + " mi
"); Response.write(round(iocurrent_earthdist , 3) + " au
"); iolighttime = hourstohms((iocurrent_earthdist * 499) / 3600); Response.write(iolighttime[1] + "m " + round(iolighttime[2], 1) + "s
"); ioangsize = degtodms(radtodeg(Math.atan(3642/(iocurrent_earthdist * 149597870.691)))); Response.write(ioangsize[1] + "' " + round(ioangsize[2], 1) + """); %>
 physical & orbital data
 Mass: 8.93 x 1022 kg
1.97 x 1023 lb
Orbital Period:
Semi-major Axis:


Perihelion Distance:
Aphelion Distance:
Eccentricity:
Inclination:
Mean Motion:
Argument of Perihelion:
Longitude of Ascending Node:
<% Response.write(io_per + " days
\n"); Response.write(comma(round(io_sma * 149597870.691, 2)) + " km
\n"); Response.write(comma(round(io_sma * 92955628.85, 2)) + " mi
\n"); Response.write(round(io_sma, 3) + " au
\n"); Response.write(comma(round(io_perap * 149597870.691, 2)) + " km
\n"); Response.write(comma(round(io_apoap * 149597870.691, 2)) + " km
\n"); Response.write(round(io_ecc, 3) + "
\n"); Response.write(degtodmsstr(io_inc) + "
\n"); Response.write(degtodmsstr(io_dm) + " per day
\n"); Response.write(degtodmsstr(io_ap) + "
\n"); Response.write(degtodmsstr(io_lan) + "
\n"); %>
Density: 3.53 g/cm3
Diameter: 3,642 km
2,263 mi
Rotational Period: 1.77 days
Albedo: 0.61
Average Temperature: -143º C
-226º F
 europa

Galileo photo
 current position
 
Ecliptic Longitude:
Ecliptic Latitude:


Jovicentric
<% Response.write(" " + degtodmsstr(eurcurrent_data[0]) + "
"); Response.write(" " + degtodmsstr(eurcurrent_data[1]) + "


"); %>
 

From Jupiter's Limb:
From Jupiter's Center:


   Angular
Separation
<% Response.write(" " + degtodmsstr(eurcurrent_angsep - halfjupangsize) + "
"); Response.write(" " + degtodmsstr(eurcurrent_angsep) + "


"); %>
 current distance
From Jupiter:
 
 
 
 
<% Response.write(comma(round(eurcurrent_data[2] * 149597870.691, 2)) + " km
"); Response.write(comma(round(eurcurrent_data[2] * 92955628.85, 2)) + " mi
"); Response.write(round(eurcurrent_data[2], 3) + " au


"); %>
From the Earth:
 
 
Light Travel Time:
Angular Size:
<% Response.write(comma(round(eurcurrent_earthdist * 149597870.691, 2)) + " km
"); Response.write(comma(round(eurcurrent_earthdist * 92955628.85, 2)) + " mi
"); Response.write(round(eurcurrent_earthdist , 3) + " au
"); eurlighttime = hourstohms((eurcurrent_earthdist * 499) / 3600); Response.write(eurlighttime[1] + "m " + round(eurlighttime[2], 1) + "s
"); eurangsize = degtodms(radtodeg(Math.atan(3130/(eurcurrent_earthdist * 149597870.691)))); Response.write(eurangsize[1] + "' " + round(eurangsize[2], 1) + """); %>
 physical & orbital data
 Mass: 4.80 x 1022 kg
1.06 x 1023 lb
Orbital Period:
Semi-major Axis:


Perihelion Distance:
Aphelion Distance:
Eccentricity:
Inclination:
Mean Motion:
Argument of Perihelion:
Longitude of Ascending Node:
<% Response.write(eur_per + " days
\n"); Response.write(comma(round(eur_sma * 149597870.691, 2)) + " km
\n"); Response.write(comma(round(eur_sma * 92955628.85, 2)) + " mi
\n"); Response.write(round(eur_sma, 3) + " au
\n"); Response.write(comma(round(eur_perap * 149597870.691, 2)) + " km
\n"); Response.write(comma(round(eur_apoap * 149597870.691, 2)) + " km
\n"); Response.write(round(eur_ecc, 3) + "
\n"); Response.write(degtodmsstr(eur_inc) + "
\n"); Response.write(degtodmsstr(eur_dm) + " per day
\n"); Response.write(degtodmsstr(eur_ap) + "
\n"); Response.write(degtodmsstr(eur_lan) + "
\n"); %>
Density: 2.99 g/cm3
Diameter: 3,130 km
1,945 mi
Rotational Period: 3.55 days
Albedo: 0.64
Average Temperature: -127º C
-260º F
 ganymede

Voyager 1 photo
 current position
 
Ecliptic Longitude:
Ecliptic Latitude:


Jovicentric
<% Response.write(" " + degtodmsstr(gancurrent_data[0]) + "
"); Response.write(" " + degtodmsstr(gancurrent_data[1]) + "


"); %>
 

From Jupiter's Limb:
From Jupiter's Center:


   Angular
Separation
<% Response.write(" " + degtodmsstr(gancurrent_angsep - halfjupangsize) + "
"); Response.write(" " + degtodmsstr(gancurrent_angsep) + "


"); %>
 current distance
From Jupiter:
 
 
 
 
<% Response.write(comma(round(gancurrent_data[2] * 149597870.691, 2)) + " km
"); Response.write(comma(round(gancurrent_data[2] * 92955628.85, 2)) + " mi
"); Response.write(round(gancurrent_data[2], 3) + " au


"); %>
From the Earth:
 
 
Light Travel Time:
Angular Size:
<% Response.write(comma(round(gancurrent_earthdist * 149597870.691, 2)) + " km
"); Response.write(comma(round(gancurrent_earthdist * 92955628.85, 2)) + " mi
"); Response.write(round(gancurrent_earthdist , 3) + " au
"); ganlighttime = hourstohms((gancurrent_earthdist * 499) / 3600); Response.write(ganlighttime[1] + "m " + round(ganlighttime[2], 1) + "s
"); ganangsize = degtodms(radtodeg(Math.atan(5268/(gancurrent_earthdist * 149597870.691)))); Response.write(ganangsize[1] + "' " + round(ganangsize[2], 1) + """); %>
 physical & orbital data
 Mass: 1.48 x 1023 kg
3.26 x 1023 lb
Orbital Period:
Semi-major Axis:


Perihelion Distance:
Aphelion Distance:
Eccentricity:
Inclination:
Mean Motion:
Argument of Perihelion:
Longitude of Ascending Node:
<% Response.write(gan_per + " days
\n"); Response.write(comma(round(gan_sma * 149597870.691, 2)) + " km
\n"); Response.write(comma(round(gan_sma * 92955628.85, 2)) + " mi
\n"); Response.write(round(gan_sma, 3) + " au
\n"); Response.write(comma(round(gan_perap * 149597870.691, 2)) + " km
\n"); Response.write(comma(round(gan_apoap * 149597870.691, 2)) + " km
\n"); Response.write(round(gan_ecc, 3) + "
\n"); Response.write(degtodmsstr(gan_inc) + "
\n"); Response.write(degtodmsstr(gan_dm) + " per day
\n"); Response.write(degtodmsstr(gan_ap) + "
\n"); Response.write(degtodmsstr(gan_lan) + "
\n"); %>
Density: 1.94 g/cm3
Diameter: 5,268 km
3,273 mi
Rotational Period: 7.16 days
Albedo: 0.42
Average Temperature: -156º C
-249º F
 callisto

Galileo photo
 current position
 
Ecliptic Longitude:
Ecliptic Latitude:


Jovicentric
<% Response.write(" " + degtodmsstr(calcurrent_data[0]) + "
"); Response.write(" " + degtodmsstr(calcurrent_data[1]) + "


"); %>
 

From Jupiter's Limb:
From Jupiter's Center:


   Angular
Separation
<% Response.write(" " + degtodmsstr(calcurrent_angsep - halfjupangsize) + "
"); Response.write(" " + degtodmsstr(calcurrent_angsep) + "


"); %>
 current distance
From Jupiter:
 
 
 
 
<% Response.write(comma(round(calcurrent_data[2] * 149597870.691, 2)) + " km
"); Response.write(comma(round(calcurrent_data[2] * 92955628.85, 2)) + " mi
"); Response.write(round(calcurrent_data[2], 3) + " au


"); %>
From the Earth:
 
 
Light Travel Time:
Angular Size:
<% Response.write(comma(round(calcurrent_earthdist * 149597870.691, 2)) + " km
"); Response.write(comma(round(calcurrent_earthdist * 92955628.85, 2)) + " mi
"); Response.write(round(calcurrent_earthdist , 3) + " au
"); callighttime = hourstohms((calcurrent_earthdist * 499) / 3600); Response.write(callighttime[1] + "m " + round(callighttime[2], 1) + "s
"); calangsize = degtodms(radtodeg(Math.atan(4806/(calcurrent_earthdist * 149597870.691)))); Response.write(calangsize[1] + "' " + round(calangsize[2], 1) + """); %>
 physical & orbital data
 Mass: 1.08 x 1023 kg
2.38 x 1023 lb
Orbital Period:
Semi-major Axis:


Perihelion Distance:
Aphelion Distance:
Eccentricity:
Inclination:
Mean Motion:
Argument of Perihelion:
Longitude of Ascending Node:
<% Response.write(cal_per + " days
\n"); Response.write(comma(round(cal_sma * 149597870.691, 2)) + " km
\n"); Response.write(comma(round(cal_sma * 92955628.85, 2)) + " mi
\n"); Response.write(round(cal_sma, 3) + " au
\n"); Response.write(comma(round(cal_perap * 149597870.691, 2)) + " km
\n"); Response.write(comma(round(cal_apoap * 149597870.691, 2)) + " km
\n"); Response.write(round(cal_ecc, 3) + "
\n"); Response.write(degtodmsstr(cal_inc) + "
\n"); Response.write(degtodmsstr(cal_dm) + " per day
\n"); Response.write(degtodmsstr(cal_ap) + "
\n"); Response.write(degtodmsstr(cal_lan) + "
\n"); %>
Density: 1.85 g/cm3
Diameter: 4,806 km
2,986 mi
Rotational Period: 16.69 days
Albedo: 0.20
Average Temperature: -147º C
-233º F
<% jup_rs.Close(); gan_rs.Close(); eur_rs.Close(); io_rs.Close(); cal_rs.Close(); conn.Close(); %>
<% insert_footer(); %>