Philip P. Ide

Author, programmer, science enthusiast, half-wit.
Life is sweet. Have you tasted it lately?

User Tools

Site Tools


blog:articles:general:martian_weird_spring

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
blog:articles:general:martian_weird_spring [2019/07/22 13:48] – created Phil Ideblog:articles:general:martian_weird_spring [2020/09/15 14:00] (current) – removed Phil Ide
Line 1: Line 1:
-====== Martian Spring Weirdness ====== 
-{{ :blog:articles:general:globe24.png?direct&200|Mars (northern hemisphere)}}Spring in the northern hemisphere of Mars is odd to say the least. The further the season moves away from winter, the warmer we should expect things to get, but this is not the case. It gets colder. By examining why, we can see why Earth is pretty much a special case, and begin to be able to predict weather patterns on other planets. 
  
-To do this, we're going to have to examine the data, come up with a hypothesis, test it and then draw conclusions. Yup, we're going to be doing some science. Don't panic though, this is low-level stuff and pretty easy. 
-===== Identifying the Problem ===== 
-First off, let's take a snapshot of the data received from the InSight lander on Mars, and present it in an easily digestible form. 
- 
-//Vertical lines indicate: **SE** (spring equinox), **SS** (summer solstice), **AE** (autumn equinox), **WS** (winter solstice)// 
- 
-<html><canvas width='150px' height='150px' id="charttemp" class=temp></canvas></html> 
-To understand the **Sols**, the Spring Equinox occurs on March 23<sup>rd</sup> 2019, which is Sol 114. The Summer Solstice (which doesn't appear yet in the data) occurs on the 8<sup>th</sup> October 2019, which will be somewhere between Sol 307 and 311. Spring and summer (in the northern hemisphere) are very long seasons. You can see a more complete and up-to-date version of this graph on the [[:blog:aardvaark:mars_weather|Mars Weather]] page (the graph on this page will not be updated). The sols themselves are not //days of the year//, but InSight's mission time, with Sol 1 being the day it landed. 
-<JS> 
-wdata = [ 
-    ["2019-07-19","229","-24.7° C","-68.2° C","-99.2° C","14.8","4","0.2","SW","782","763.9","743.4"], 
-    ["2019-07-18","228","-25° C","-68.8° C","-98.7° C","14.5","4.2","0.2","SSE","782.5","764.7","742.3"], 
-    ["2019-07-17","227","-25.4° C","-68.6° C","-100° C","15","4.2","0.2","SE","781.9","764.7","742.1"], 
-    ["2019-07-16","226","-25.9° C","-68.3° C","-98° C","14.8","4.1","0.2","SSW","782.2","764.5","740.7"], 
-    ["2019-07-15","225","-25° C","-68.2° C","-98.3° C","15","4.2","0.2","SE","782.6","764.6","741.3"], 
-    ["2019-07-14","224","-25.8° C","-69.4° C","-100.8° C","14.8","4.2","0.1","SSE","782.9","764.8","741.4"], 
-    ["2019-07-13","223","-25.5° C","-69.1° C","-100.8° C","17.4","4.3","0.2","SE","781.5","764.2","740.8"], 
-    ["2019-07-12","222","-24.8° C","-68.9° C","-99.7° C","15.6","4.2","0.2","SSE","781.1","764","739.8"], 
-    ["2019-07-11","221","-23.8° C","-69.7° C","-99.4° C","14.1","4.1","0.2","SSE","780.3","763.6","739.1"], 
-    ["2019-07-10","220","-25.9° C","-70.4° C","-101.2° C","16","4","0.2","SSE","780.4","763.7","738.5"], 
-    ["2019-07-09","219","-24.9° C","-68.8° C","-100.3° C","16.1","4.5","0.2","SE","782.6","764.9","739.9"], 
-    ["2019-07-08","218","-26.1° C","-69.2° C","-100.2° C","16","4.6","0.2","SE","779.7","764.2","741.2"], 
-    ["2019-07-06","216","-24.9° C","-65.4° C","-102.5° C","15.8","4.6","0.1","SSE","780.2","762","739.3"], 
-    ["2019-07-05","215","-25° C","-69° C","-101.7° C","14.6","4.2","0.1","SSE","781.7","764.1","740.3"], 
-    ["2019-07-04","214","-24.7° C","-68.9° C","-101.2° C","14.5","4.2","0.2","SSE","779.7","762.7","738.2"], 
-    ["2019-07-03","213","-25.2° C","-69° C","-102.1° C","15.1","4","0.1","WSW","779.3","761.6","736.4"], 
-    ["2019-07-02","212","-24.2° C","-64.9° C","-102.1° C","15.7","4.3","0.1","SSE","781.4","761.5","737.2"], 
-    ["2019-07-01","211","-24.3° C","-68.5° C","-101° C","15.4","4.3","0.1","SSW","782.7","762.9","738.1"], 
-    ["2019-06-29","210","-25.4° C","-68.6° C","-101° C","15.6","4.4","0.1","SE","781.6","762.4","737.4"], 
-    ["2019-06-28","209","-23.7° C","-69° C","-103° C","15.5","4.3","0.1","SSE","778.3","761.1","737.6"], 
-    ["2019-06-27","208","-23.7° C","-68.7° C","-102.3° C","15.4","4.3","0.1","SSE","777.5","761.6","739.5"], 
-    ["2019-06-26","207","-25° C","-69.2° C","-103.9° C","15.8","4.3","0.1","SE","778","762.9","740.2"], 
-    ["2019-06-25","206","-25.3° C","-65.4° C","-103.5° C","15.6","4.8","0.1","SE","775.4","760.1","740.1"], 
-    ["2019-06-24","205","-24.9° C","-69.6° C","-103.9° C","15.9","4.3","0.1","SSE","775.3","760.6","739"], 
-    ["2019-06-23","204","-25.3° C","-69.7° C","-104.1° C","15.3","4.3","0.1","W","775.8","761.4","739.7"], 
-    ["2019-06-22","203","-25.7° C","-72.9° C","-104° C","14.6","4","0.1","SSE","775.8","761.9","739.4"], 
-    ["2019-06-21","202","-24.4° C","-69.6° C","-103.3° C","15.4","4.4","0.1","SSE","775.1","760.2","739.2"], 
-    ["2019-06-20","201","-24° C","-69.7° C","-103.3° C","16.1","4.2","0.1","SSE","775.3","759.7","738.1"], 
-    ["2019-06-19","200","-24.6° C","-70.1° C","-104.3° C","15.6","4.2","0.1","SSE","777.3","760.2","738.2"], 
-    ["2019-06-18","199","-23.2° C","-70.5° C","-104.7° C","14.9","4.1","0.1","W","775.2","759.8","737.4"], 
-    ["2019-06-17","198","-24.7° C","-70° C","-104.8° C","15.5","4","0.1","SSE","774.5","758.3","735.6"], 
-    ["2019-06-16","197","-23.3° C","-69.7° C","-105.2° C","15.9","4.1","0.1","SSE","775.2","758.1","735.9"], 
-    ["2019-06-15","196","-22.3° C","-70° C","-105.3° C","15.9","4.4","0.1","W","775.6","759.1","737.5"], 
-    ["2019-06-14","195","-23.8° C","-69.9° C","-105.6° C","14.5","4.3","0.1","SSE","776.9","759.5","738.3"], 
-    ["2019-06-13","194","-23.5° C","-69.5° C","-104.4° C","17","4.5","0.1","SSE","774.1","757.3","738.1"], 
-    ["2019-06-12","193","-23° C","-69.6° C","-103.7° C","35.1","9.8","0.3","SSE","774.8","757.2","737.3"], 
-    ["2019-06-11","192","-23.6° C","-65.9° C","-104.9° C","15.4","5","0.1","SSE","775.2","758.9","739.6"], 
-    ["2019-06-10","191","-21.6° C","-69.6° C","-104.9° C","15.2","4.4","0.1","SSE","775.2","758.7","740.4"], 
-    ["2019-06-09","190","-22.5° C","-69.3° C","-104.1° C","16.6","5.2","0.2","SSE","772.5","757.4","739.5"], 
-    ["2019-06-08","189","-22.4° C","-69.4° C","-102.2° C","16.5","4.7","0.2","SSE","773.6","756.6","738.9"], 
-    ["2019-06-07","188","-21.9° C","-65.2° C","-102.5° C","15.6","4.8","0.1","SSE","772.4","757.3","738"], 
-    ["2019-06-06","187","-21.9° C","-68.6° C","-102.8° C","16.1","4.4","0.2","SSE","774.6","757.4","735.4"], 
-    ["2019-06-05","186","-21.8° C","-68.4° C","-101.7° C","16.2","4.6","0.2","SSE","772.1","755.9","733.5"], 
-    ["2019-06-04","185","-21.2° C","-68.4° C","-100.7° C","15.3","4.5","0.2","W","771.7","755.1","732.3"], 
-    ["2019-06-03","184","-22.1° C","-68.7° C","-101.3° C","15.2","4.5","0.2","W","771.8","755.3","730.9"], 
-    ["2019-06-02","183","-22.3° C","-63° C","-101.1° C","15.2","4.9","0.2","SSE","773.3","757.1","731.2"], 
-    ["2019-06-01","182","-22.6° C","-51.3° C","-99.7° C","15.9","5.7","0.2","SSE","772.4","753.9","730.7"], 
-    ["2019-05-31","181","-20.7° C","-63.8° C","-100.6° C","14.9","5.1","0.2","SW","770.2","753","729.8"], 
-    ["2019-05-30","180","-21.8° C","-64.3° C","-101.1° C","14.7","4.7","0.2","S","769.8","752.4","729.1"], 
-    ["2019-05-29","179","-21.5° C","-63.9° C","-101° C","14.5","4.8","0.2","SW","772.4","754.5","729.9"], 
-    ["2019-05-28","178","-23° C","-64° C","-101.1° C","15","4.9","0.2","SW","771.3","752.2","728.6"], 
-    ["2019-05-27","177","-21.3° C","-63.7° C","-100.7° C","17.1","4.8","0.2","SW","769","751.8","727.5"], 
-    ["2019-05-26","176","-19.9° C","-68° C","-100.3° C","15.9","4.2","0.2","W","770.2","751.6","727.1"], 
-    ["2019-05-23","174","-21.3° C","-67.6° C","-101.1° C","16.3","4.3","0.2","SW","770.2","751.7","728.2"], 
-    ["2019-05-22","173","-20.9° C","-63.7° C","-100.9° C","14.1","4.9","0.2","SW","769.2","751.1","726.2"], 
-    ["2019-05-22","172","-20° C","-65° C","-133.5° C","-","-","-","n/a","769.5","749.6","726.8"], 
-    ["2019-05-20","171","-20.9° C","-63.7° C","-100.5° C","14.8","4.9","0.2","SW","769.6","751.7","727.7"], 
-    ["2019-05-19","170","-21.2° C","-63.4° C","-100.9° C","14.6","4.7","0.2","SW","767.1","749.4","726.8"], 
-    ["2019-05-18","169","-17.6° C","-67.8° C","-100.6° C","15.5","4.6","0.2","S","768","748.9","724.9"], 
-    ["2019-05-17","168","-19.6° C","-63.6° C","-100.5° C","12.6","4.6","0.2","SW","768.1","745.7","724.6"], 
-    ["2019-05-16","167","-20.4° C","-65.1° C","-100.5° C","13.5","4.7","0.5","SW","769.2","751.8","724.7"], 
-    ["2019-05-15","166","-20.5° C","-63.8° C","-100.5° C","11.7","4.6","0.2","SSE","769.2","749.2","725.6"], 
-    ["2019-05-14","165","-18.2° C","-65.7° C","-100.3° C","13.7","4.6","0.6","SW","767.8","750.5","725.7"], 
-    ["2019-05-13","164","-16.6° C","-63.8° C","-100° C","15.1","4.4","0.2","SW","766.4","747.6","725"], 
-    ["2019-05-12","163","-17.7° C","-64.2° C","-99.9° C","15.2","4.3","0.3","SW","766.2","746.7","724.8"], 
-    ["2019-05-11","162","-20.3° C","-67.9° C","-100.2° C","14.3","4.1","0.2","WNW","766.3","747","724.9"], 
-    ["2019-05-10","161","-19.5° C","-67.5° C","-98.6° C","15.2","4.2","0.2","W","765.2","746.1","722.8"], 
-    ["2019-05-09","160","-19.4° C","-63.7° C","-99.5° C","13.5","4.6","0.2","SSE","765","745.1","721.2"], 
-    ["2019-05-08","159","-21.6° C","-67.9° C","-100.3° C","15.3","4.2","0.2","W","765.4","744.7","720"], 
-    ["2019-05-07","158","-21.8° C","-64.8° C","-99.7° C","13.6","4.8","0.8","SSE","765.4","746.2","719.8"], 
-    ["2019-05-06","157","-18.4° C","-67.4° C","-100.2° C","14.6","4.1","0.2","W","764.9","743.5","719.5"], 
-    ["2019-05-05","156","-18.1° C","-63.5° C","-99.2° C","13.8","4.7","0.2","SW","763.6","743.5","719.7"], 
-    ["2019-05-04","155","-18.8° C","-63.4° C","-99.3° C","14.3","4.5","0.2","SW","762.8","742","720.7"], 
-    ["2019-05-03","154","-17.2° C","-63.5° C","-97.6° C","13.1","4.5","0.2","SW","763","743.3","719.9"], 
-    ["2019-05-02","153","-17.5° C","-63.5° C","-98.5° C","-","-","-","n/a","762.2","743.1","719.7"], 
-    ["2019-05-01","152","-17.2° C","-63.3° C","-98.1° C","13.2","4.8","0.2","SW","760.8","741.9","717.8"], 
-    ["2019-04-30","151","-17.5° C","-67.1° C","-97.1° C","12.3","4.1","0.2","W","761.6","741.2","717.9"], 
-    ["2019-04-29","150","-20.4° C","-63.8° C","-98.5° C","14.4","4.6","0.3","SW","760.8","741.1","717.6"], 
-    ["2019-04-28","149","-19.5° C","-63.4° C","-98.8° C","14.2","4.6","0.2","SW","760","739","716.1"], 
-    ["2019-04-27","148","-18.2° C","-67.1° C","-99.1° C","14.3","4.2","0.2","W","761.1","739.1","714.7"], 
-    ["2019-04-26","147","-23.5° C","-74.7° C","-98.4° C","11.7","3.7","0.2","W","762","740.8","714.7"], 
-    ["2019-04-25","146","-17.7° C","-64.6° C","-98.6° C","11.6","4.8","0.5","SW","761.2","741.3","714.9"], 
-    ["2019-04-24","145","-19.3° C","-65.1° C","-98.1° C","11.6","4.4","0.2","SW","762.1","739.3","716"], 
-    ["2019-04-23","144","-17.6° C","-64.4° C","-98.7° C","11.1","4.2","0.2","SW","760","737.5","714.5"], 
-    ["2019-04-22","143","-19.8° C","-63.3° C","-98° C","12.1","4.6","0.2","SW","758.9","736.4","713.2"], 
-    ["2019-04-21","142","-18.4° C","-66.8° C","-97.5° C","14.8","4.2","0.2","W","758.3","735.9","712.3"], 
-    ["2019-04-20","141","-19.7° C","-64° C","-98.3° C","12.9","4.7","0.5","SW","758.8","737.1","712.6"], 
-    ["2019-04-19","140","-18° C","-69.2° C","-98.6° C","14.2","4","0.2","W","758.8","735.2","712.2"], 
-    ["2019-04-18","139","-18.1° C","-62.9° C","-97.6° C","12.2","4.7","0.3","SW","757.5","734.1","708.9"], 
-    ["2019-04-17","138","-17.3° C","-65.5° C","-97.7° C","12.6","4.3","0.2","W","756.8","733.6","709.2"], 
-    ["2019-04-15","137","-15.9° C","-64.7° C","-97° C","12.4","4.3","0.2","SW","754.6","732.7","709"], 
-    ["2019-04-14","136","-16.5° C","-65.9° C","-97.3° C","10.8","4.3","0.3","WNW","754.4","732.4","708.5"], 
-    ["2019-04-13","135","-16.6° C","-65.8° C","-96.5° C","11.3","4.2","0.2","SW","754.2","732.8","709.7"], 
-    ["2019-04-12","134","-18.2° C","-62.5° C","-98.4° C","-","-","-","n/a","755.7","731.1","708.4"], 
-    ["2019-04-11","133","-15.7° C","-65.8° C","-96.8° C","11.7","4.2","0.2","W","754.2","731.3","706.8"], 
-    ["2019-04-10","132","-16.3° C","-65.9° C","-97.7° C","12.2","4.3","0.2","SW","752.8","730.8","706.9"], 
-    ["2019-04-09","131","-15.6° C","-66° C","-98.2° C","11.6","4.1","0.2","WNW","752.9","731.1","707.3"], 
-    ["2019-04-08","130","-15.5° C","-65.8° C","-98° C","11.7","4.1","0.2","SW","752.4","731.2","707.7"], 
-    ["2019-04-07","129","-16.7° C","-65.9° C","-97.7° C","11.9","4.1","0.2","SW","752.2","730.2","707"], 
-    ["2019-04-06","128","-15.5° C","-65.3° C","-97.5° C","13.6","4.1","0.2","SW","750.6","719.1","707.4"], 
-    ["2019-04-05","127","-16.8° C","-65.5° C","-96.6° C","11.2","4.2","0.3","SW","751.4","730.3","707.5"], 
-    ["2019-04-04","126","-17° C","-65.1° C","-97° C","10.7","4","0.2","SW","750.5","730.2","707.5"], 
-    ["2019-04-03","125","-16.8° C","-65.5° C","-97.2° C","11.7","4","0.2","SW","749.8","729.4","706.2"], 
-    ["2019-04-02","124","-16.7° C","-65.9° C","-97.9° C","11.8","4","0.2","SW","750.3","728.6","705.6"], 
-    ["2019-03-28","119","-15° C","-60.9° C","-97.4° C","10.1","4.3","0.2","SW","750.3","728.2","704.5"], 
-    ["2019-03-24","115","-15.5° C","-61.6° C","-96° C","-","-","-","n/a","750.7","725.5","700.6"], 
-    ["2019-03-23","114","-15.5° C","-65° C","-96.8° C","-","-","-","n/a","749.2","725.5","700.9"], 
-    ["2019-03-22","113","-15.3° C","-64.6° C","-96.7° C","-","-","-","n/a","748.7","724","700.4"], 
-    ["2019-03-17","108","-14.4° C","-50.3° C","-96.1° C","13.1","5.2","0.3","SW","750.4","724.8","697.5"], 
-    ["2019-03-16","107","-15.8° C","-64.6° C","-96.1° C","10.4","4.1","0.2","SW","749.4","723.5","697.7"], 
-    ["2019-03-15","106","-15.9° C","-64.5° C","-96.3° C","12.4","4.1","0.2","WNW","751.2","724.9","698.5"], 
-    ["2019-03-14","105","-14.7° C","-64.3° C","-95.7° C","12.1","4","0.2","SW","748.5","724.7","698.4"], 
-    ["2019-03-13","104","-14.4° C","-64.1° C","-96.1° C","11.1","4.2","0.2","WNW","748","723.7","697.1"], 
-    ["2019-03-12","103","-19.1° C","-61.1° C","-95.8° C","14","4.9","0.2","WNW","748.6","724.2","697.3"], 
-    ["2019-03-11","102","-17° C","-64.2° C","-96.8° C","12.7","4.6","0.4","SW","749.4","725.2","697.4"] 
-]; 
- 
-plot_temperature('charttemp'); 
- 
-function plot_temperature( canvas ){ 
-    var canvas = document.getElementById(canvas); 
-   
-    let lbuffer = 25; 
-    let bbuffer = 40; 
- 
-    // calculate data spread 
-    let dataSpread = wdata[0][1] - wdata[wdata.length-1][1]; 
-    let min = 0; 
-    let peak = 0; 
-    for( i = 0; i < wdata.length; i++ ){ 
-        let tp = parseInt(wdata[i][2]); 
-        let tm = parseInt(wdata[i][4]); 
-        peak = (tp > peak) ? tp : peak; 
-        min = (tm < min) ? tm : min; 
-    } 
-    min -= 10; 
-    gheight = Math.abs(peak-min); 
-    gwidth = lbuffer+(dataSpread*10); 
-    gmax = 800; 
-    gmax = 814; 
-    canvas.style.border = 'solid 1px #000'; 
-    canvas.width = gmax; 
-    canvas.height = (bbuffer+(gheight*2))*1; 
- 
-    var ctx = canvas.getContext("2d"); 
-    //ctx.fillStyle = "#FF0000"; 
-    //ctx.fillRect(0, 0, 150, 75); 
-    //document.getElementById('myinfo').innerHTML = 'peak='+peak; 
-     
-    // width 
-    ctx.strokeStyle = '#000000'; 
-    ctx.beginPath(); 
-    ctx.moveTo(lbuffer, canvas.height-bbuffer); 
-    ctx.lineTo(canvas.width-lbuffer, canvas.height-bbuffer); 
-    ctx.stroke(); 
-     
-    ctx.moveTo(lbuffer, canvas.height-bbuffer); 
-    ctx.lineTo(lbuffer, bbuffer); 
-    ctx.stroke(); 
-    ctx.closePath(); 
-     
-    // grid 
-    ctx.font = "8px Arial"; 
-    ctx.textAlign = "right"; 
-    p = min; 
-    h = canvas.height-bbuffer 
-    vdiff = (canvas.height-(bbuffer*2)) / ((peak-min)/10); 
-    for( i = min; i < peak; i += 10 ){ 
-        ctx.fillText(p, lbuffer-5, h); 
-        p += 10; 
-        h -= vdiff; 
-    } 
-    ctx.fillText(peak, lbuffer-5, bbuffer); 
-    ctx.font = "10px Arial"; 
-    ctx.fillText("°C", lbuffer-5, bbuffer-10); 
-     
-    // now do sols 
-    ctx.font = "10px Arial"; 
-    ctx.textAlign = "center"; 
-    ctx.fillText("Sols", canvas.width/2, canvas.height-5); 
-     
-    // first sol is the oldest 
-    ctx.font = "8px Arial"; 
-    dstart = wdata[wdata.length-1][1]*1; 
-    dend   = wdata[0][1]*1; 
-     
-    count = (dend-dstart); 
-    diff = (canvas.width-(lbuffer*2)) / count; 
-    //document.getElementById('myinfo').innerHTML = canvas.width+' : '+lbuffer*2+' : '+count; 
-    //diff = 750/dataSpread; 
-    if( count % 2 > 0 ){ 
-        count++; 
-    } 
-    for( i = 0; i < count+2; i += 4 ){ 
-        ctx.fillText(dstart+i, lbuffer+(diff*i), canvas.height-(bbuffer-10)); 
-    } 
-    for( i = 2; i < count+2; i += 4 ){ 
-        ctx.fillText(dstart+i, lbuffer+(diff*i), canvas.height-(bbuffer-20)); 
-    } 
-     
-    ctx.font = "12px Arial"; 
-    ctx.textAlign = "center"; 
-    ctx.fillText("Temperature", canvas.width/2, 15); 
-     
-    ctx.font = "10px Arial"; 
-    ctx.textAlign = "left"; 
-    ctx.fillStyle = '#0000ff'; 
-    ctx.fillText("Max", canvas.width-40, 10); 
-    ctx.fillStyle = '#006400'; 
-    ctx.fillText("Avg", canvas.width-40, 20); 
-    ctx.fillStyle = '#ff0000'; 
-    ctx.fillText("Min", canvas.width-40, 30); 
-     
-    diff = (canvas.width-(lbuffer*2)) / (dend-dstart); 
-    vdiff = (canvas.height-(bbuffer*2)) / (peak-min); 
-    orig = {x: lbuffer*1, y: bbuffer}; 
-     
-    ctx.strokeStyle = '#ddd'; 
- 
-    // ############################### 
-    // add the spring equinox (sol 113 = 113-102 = ) 
-    ctx.beginPath(); 
-    ctx.moveTo(lbuffer+(diff*11), canvas.height-bbuffer); 
-    ctx.lineTo(lbuffer+(diff*11), bbuffer); 
-    ctx.stroke(); 
-    ctx.closePath(); 
-    ctx.fillStyle = '#000000'; 
-    ctx.fillText('SE', lbuffer+(diff*11)-5, bbuffer-5); 
-     
-     
-    // bounding bars 
-    // max temp 
-    v = 2; 
-    max = -1000; 
-    min = 0; 
-    for( i = 0; i < wdata.length; i++ ){ 
-        max = (parseFloat(wdata[i][v]) > max) ? parseFloat(wdata[i][v]) : max; 
-        min = (parseFloat(wdata[i][v]) < min) ? parseFloat(wdata[i][v]) : min; 
-    } 
-    ctx.beginPath(); 
-    bar = calcY( max, orig, vdiff ); 
-    ctx.moveTo(lbuffer+1, bar ); 
-    ctx.lineTo(canvas.width-lbuffer, bar); 
-    bar = calcY( min, orig, vdiff ); 
-    ctx.moveTo(lbuffer+1, bar ); 
-    ctx.lineTo(canvas.width-lbuffer, bar); 
-    ctx.stroke(); 
-    ctx.closePath(); 
- 
-    // bounding bars 
-    // avg temp 
-    v = 3; 
-    max = -1000; 
-    min = 0; 
-    for( i = 0; i < wdata.length; i++ ){ 
-        max = (parseFloat(wdata[i][v]) > max) ? parseFloat(wdata[i][v]) : max; 
-        min = (parseFloat(wdata[i][v]) < min) ? parseFloat(wdata[i][v]) : min; 
-    } 
-    ctx.beginPath(); 
-    bar = calcY( max, orig, vdiff ); 
-    ctx.moveTo(lbuffer+1, bar ); 
-    ctx.lineTo(canvas.width-lbuffer, bar); 
-    bar = calcY( min, orig, vdiff ); 
-    ctx.moveTo(lbuffer+1, bar ); 
-    ctx.lineTo(canvas.width-lbuffer, bar); 
-    ctx.stroke(); 
-    ctx.closePath(); 
- 
-    // bounding bars 
-    // min temp 
-    v = 4; 
-    max = -1000; 
-    min = 0; 
-    for( i = 0; i < wdata.length; i++ ){ 
-        max = (parseFloat(wdata[i][v]) > max) ? parseFloat(wdata[i][v]) : max; 
-        min = (parseFloat(wdata[i][v]) < min) ? parseFloat(wdata[i][v]) : min; 
-    } 
-    ctx.beginPath(); 
-    bar = calcY( max, orig, vdiff ); 
-    ctx.moveTo(lbuffer+1, bar ); 
-    ctx.lineTo(canvas.width-lbuffer, bar); 
-    bar = calcY( min, orig, vdiff ); 
-    ctx.moveTo(lbuffer+1, bar ); 
-    ctx.lineTo(canvas.width-lbuffer, bar); 
-    ctx.stroke(); 
-    ctx.closePath(); 
-     
-    // max temp 
-    vector = 2; 
-    sol = parseInt(wdata[wdata.length-1][1])-dstart; 
-    x = orig.x+(sol*diff); 
-    y = calcY( parseFloat(wdata[wdata.length-1][vector]), orig, vdiff ); 
-     
-    ctx.beginPath(); 
-    ctx.strokeStyle = '#0000ff'; 
-    ctx.moveTo( x, y ); 
-     
-    for( i = wdata.length; i > 0; i-- ){ 
-        v = i-1; 
-        sol = parseInt(wdata[v][1])-dstart; 
-        x = orig.x+(sol*diff); 
-        y = calcY( parseFloat(wdata[v][vector]), orig, vdiff ); 
-        ctx.lineTo( x, y ); 
-         
-        if( v == 0 || parseInt(wdata[v][1])+1 < parseInt(wdata[v-1][1]) ){ 
-            ctx.stroke(); 
-            ctx.closePath(); 
-            if( v > 0 ){ 
-                ctx.beginPath(); 
-                sol = parseInt(wdata[v-1][1])-dstart; 
-                x = orig.x+(sol*diff); 
-                y = calcY( parseFloat(wdata[v-1][vector]), orig, vdiff ); 
-                ctx.moveTo( x-1, y-1 ); 
-            } 
-        } 
-    } 
-     
-    // avg temp 
-    vector = 3; 
-    sol = parseInt(wdata[wdata.length-1][1])-dstart; 
-    x = orig.x+(sol*diff); 
-    y = calcY( parseFloat(wdata[wdata.length-1][vector]), orig, vdiff ); 
-     
-    ctx.beginPath(); 
-    ctx.strokeStyle = '#006400'; 
-    ctx.moveTo( x, y ); 
-     
-    for( i = wdata.length; i > 0; i-- ){ 
-        v = i-1; 
-        sol = parseInt(wdata[v][1])-dstart; 
-        x = orig.x+(sol*diff); 
-        y = calcY( parseFloat(wdata[v][vector]), orig, vdiff ); 
-        ctx.lineTo( x, y ); 
-         
-        if( v == 0 || parseInt(wdata[v][1])+1 < parseInt(wdata[v-1][1]) ){ 
-            ctx.stroke(); 
-            ctx.closePath(); 
-            if( v > 0 ){ 
-                ctx.beginPath(); 
-                sol = parseInt(wdata[v-1][1])-dstart; 
-                x = orig.x+(sol*diff); 
-                y = calcY( parseFloat(wdata[v-1][vector]), orig, vdiff ); 
-                ctx.moveTo( x-1, y-1 ); 
-            } 
-        } 
-    } 
-    // min temp 
-    vector = 4; 
-    sol = parseInt(wdata[wdata.length-1][1])-dstart; 
-    x = orig.x+(sol*diff); 
-    y = calcY( parseFloat(wdata[wdata.length-1][vector]), orig, vdiff ); 
-     
-    ctx.beginPath(); 
-    ctx.strokeStyle = '#ff0000'; 
-    ctx.moveTo( x, y ); 
-     
-    for( i = wdata.length; i > 0; i-- ){ 
-        v = i-1; 
-        sol = parseInt(wdata[v][1])-dstart; 
-        x = orig.x+(sol*diff); 
-        y = calcY( parseFloat(wdata[v][vector]), orig, vdiff ); 
-        ctx.lineTo( x, y ); 
-         
-        if( v == 0 || parseInt(wdata[v][1])+1 < parseInt(wdata[v-1][1]) ){ 
-            ctx.stroke(); 
-            ctx.closePath(); 
-            if( v > 0 ){ 
-                ctx.beginPath(); 
-                sol = parseInt(wdata[v-1][1])-dstart; 
-                x = orig.x+(sol*diff); 
-                y = calcY( parseFloat(wdata[v-1][vector]), orig, vdiff ); 
-                ctx.moveTo( x-1, y-1 ); 
-            } 
-        } 
-    } 
- 
-} 
- 
-function calcY( value, orig, vdiff ){ 
-    return orig.y+(Math.abs(value) * vdiff); 
-} 
- 
-</JS> 
-===== The Martian Orbit ===== 
-The graph is proof that the maximum temperature each day is slowly declining. Remember that this is derived from real data coming from an experiment on the Martian surface. InSight is located approximately 135°E 4.5°N, which places it just 266km or so north of the equator. 
- 
-Let's take a look at the inner planets as they were on 22<sup>nd</sup> July 2019 (just a few days after the last plot point on the graph). 
-{{ :blog:articles:general:orbits24.png?direct |Inner planets, 22nd July 2019}} 
- 
-The equinoxes and solstices for each planet are marked as ve, ss, ae and ws. VE stands for Vernal Equinox and this is also known as the Spring Equinox. At the equator, the vernal equinox occurs when the sun is directly overhead and when this occurs after winter. During spring, the position of the sun in the sky migrates north, until the moment of the summer solstice, when the sun is at its lowest angle vis the horizon and most northerly position. After that, it begins climbing back until it is once again above the equator - this is the autumn equinox. Thereafter, it descends towards the horizon again, this time south of the equator, until it reaches the winter solstice. After that, it climbs again until it is once more above the equator and we reached the next vernal equinox. 
- 
-The angle of the sun is described as L<sub>S</sub> (pron. ELL-SUB-ESS). Here are the L<sub>S</sub> values for the equinoxes and solstices: 
- 
-  - L<sub>S</sub> = 0 (Vernal Equinox) 
-  - L<sub>S</sub> = 90 (Summer Solstice) 
-  - L<sub>S</sub> = 180 (Autumn Equinox) 
-  - L<sub>S</sub> = 270 (Winter Equinox) 
- 
-Mars has an axial tilt very similar to Earth's. Earth's tilt is 23.5°, and Mars' is 25°. Therefore the height of the sun should be pretty similar at various points in the year. The extra 1.5° does count for something though, allowing the sun to descend further at the solstices. Add to this the fact that Mars is much further away from the sun and only receives 10% of the sunlight, and you have a recipe for some cold weather. A quick check on the graph at the top of this article confirms that, and the thin Martian atmosphere which is almost incapable of heat retention, despite being composed almost entirely from a potent greenhouse gas (95% carbon-dioxide), adds to the problem. 
- 
-Since Mars is further away from the sun, the circumference of its orbit is much greater, and also means that it is moving //slower// in that orbit than Earth. This gives Mars a year of approximately 686 days as observed from Earth. It has its own rotational period though, which is (on average) 39 minutes and 53 seconds longer, so from a Martian perspective, the year is approximately 668 sols. This makes the seasons very long. 
- 
-You'll also notice from the orbits that Earth has a pretty much circular orbit. This results in the months all being approximately the same length. Mars though has a very elliptical orbit. A month on Mars is deemed to pass while the planet crosses 30° around the sun. Since the orbit is elliptical, and since orbital mechanics requires objects to move slower as they approach apogee - furthest distance from the sun - and faster when they approach perigee, Martian months vary in length from 46 sols to 67. You'll note that Apogee and Perigee are also marked on the orbits for each planet as //ap// (apogee) and //p// (perigee). 
- 
-The Martian spring occurs when Mars is moving away from the sun, and summer when it begins its journey back. This is why these seasons (in the northern hemisphere) are very long. 
- 
-===== Spring ===== 
-InSight, as mentioned before, is just a few degrees north of the equator. Therefore, shortly after the vernal equinox, the sun is directly overhead. After that, the sun (at midday) is heading lower and lower in the sky to the north. This in itself is enough to cause a drop in temperature. Add to that the fact that Mars is moving further and further away from the sun, and you can begin to understand why it is getting colder. Mars will continue to move further away until it reaches apogee, then begin the journey inward. Shortly after that inward journey begins, the summer solstice occurs. 
- 
-Late spring and early summer bring long days and short nights. Long days allow the sun to heat the ground and the atmosphere, while the shorter nights don't have enough time to allow the temperatures to drop to the extent they will during the long winter nights. The inability of Mars to retain heat is displayed in the graph at the top of the article - nighttime temperatures drop eighty degrees centigrade. Shortening the night by two hours is sufficient to allow some heat to be conserved into the next day. 
- 
-===== Summer ===== 
-As summer progresses, the sun - from InSight's point of view - is getting higher in the sky. Although the days are getting shorter, the elevation of the sun is a powerful counteracting force. In addition, the build-up of heat retention is having a cumulative effect. For the first time, daytime temperatures can rise above freezing. 
- 
-===== Conclusion ===== 
-What we have deduced, from examining the data, is that a combination of the elevation and angle of the sun in the daytime sky and the distance from the sun are causing temperatures to fall as spring progresses. We can expect temperatures to climb as the planet passes through apogee and heads towards the autumn equinox. 
- 
-This means we can make some predictions about Autumn and Winter. These seasons will be short, but the sun is going to be very low in the sky and the nights long. The word //cold// springs to mind. 
- 
-===== Southern Hemisphere ===== 
-What does this mean for southern spring and summer seasons? Mars will be as close to the sun as it ever gets. According to the Kasting Conservative Model for determining the location of habitable zones around stars (a.k.a. Goldilocks Zones) - which is based on the triple-point of water - it is only during this brief period that Mars grazes the edge of the habitable zone. The days are long, and the nights are short, and proximity to the sun ensures temperatures can rise to a staggering +35°C. That would be a hot day on Earth. 
- 
-Satellite data has already shown that such temperatures occur.  
- 
-Hellas Planitia, an incredibly large and deep impact basin in the southern hemisphere, is so deep that air pressure in its lowest areas is sufficient to sustain liquid water. At the moment, nearly all our experiments we've sent to the Martian surface, have landed in the northern hemisphere. The Curiosity rover is an exception to this, but it is wandering around inside Gale Crater, just south of the equator and only a few hundred kilometres from InSight. It will be very interesting to get on-sight weather data from deeper in the southern hemisphere, which we'll surely do as our ability to land on much more [[:blog:articles:science:landing_mars2020|challenging terrain]] improves. 
blog/articles/general/martian_weird_spring.1563803303.txt.gz · Last modified: 2019/07/22 13:48 by Phil Ide

Except where otherwise noted, content on this wiki is licensed under the following license: Copyright © Phil Ide
Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki