demo_limbdarkening
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
demo_limbdarkening [2022/03/29 11:38] – torsten.roehl | demo_limbdarkening [2022/04/04 17:36] – torsten.roehl | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Lichtkurve | + | ====== Lichtkurve |
- | // Um die Effekte der Randverdunkelung (engl. limb darkening) | + | // Unter Randverdunkelung (engl. limb darkening) |
+ | Direkt beobachten kann man das allerdings nur an der Sonne, bei den anderen Sternen kann man nur durch physikalische Modelle | ||
+ | Randverdunkelung schließen. Da aber Sterne nun mal nicht gleichmäßig hell über ihre Oberfläche leuchten, bedeutet das, das dies bei der Auswertung der Lichtkurve eines Exoplaneten berücksichtigt werden muss. Es zeigt sich weiterhin, dass diese Effekt auch von der beobachteten Wellenlängen (also des verwendeten Filters) abhängig ist. Die Modellierung der Lichtkurve (z.b. mit AstroimageJ) berücksichtigt die Randverdunkelung durch die Annahme eines Quadratischen Modells. Dieses dieses Modell (ANALYTIC LIGHT CURVES FOR PLANETARY TRANSIT SEARCHES, Mandel and Algol 2002) liegt der Animation zur Grunde. | ||
+ | // | ||
+ | |||
+ | |||
+ | < | ||
+ | | {{ : | ||
+ | </ | ||
+ | |||
+ | // | ||
+ | Man kann aber auch umgekehrt vorgehen, und mit Hilfe der experimentell gewonnen Lichtkurven die Physik des Zentralgestirns studieren. | ||
+ | Beispielsweise lassen sich die physikalische Prozesse die den theoretischen | ||
// | // | ||
<WRAP center | <WRAP center | ||
Zeile 7: | Zeile 19: | ||
</ | </ | ||
- | ===== Lichkurve | + | ===== Lichkurve |
- | Bei der Lichtkurve ohne Randverdunkelung, | + | |
< | < | ||
+ | |||
########################################################################################################## | ########################################################################################################## | ||
/ | / | ||
Zeile 24: | Zeile 38: | ||
# | # | ||
/ | / | ||
- | / | + | / |
############################################################################################################ | ############################################################################################################ | ||
</ | </ | ||
Zeile 40: | Zeile 55: | ||
var xmax | var xmax | ||
// slider | // slider | ||
- | var planet = 0.1; | + | var planet = 0.12; |
var impact = 0.0; | var impact = 0.0; | ||
- | function onInit() { | + | function onInit() { // first Animation context |
- | writeMainHeader(); | + | |
+ | |||
/////////////// | /////////////// | ||
Zeile 63: | Zeile 80: | ||
// | // | ||
- | + | pathBild = ' | |
+ | brd.create(' | ||
//////////// | //////////// | ||
Zeile 73: | Zeile 90: | ||
size:75, | size:75, | ||
fixed: true, | fixed: true, | ||
+ | visible: false, | ||
layer:8, | layer:8, | ||
fillColor: ' | fillColor: ' | ||
Zeile 142: | Zeile 160: | ||
return ' | return ' | ||
} | } | ||
- | if (planet > 0.10 ){ | + | if (planet > 0.10 && planet != 0.12){ |
return ' | return ' | ||
+ | } | ||
+ | if (planet == 0.12 ){ | ||
+ | return ' | ||
} | } | ||
} | } | ||
Zeile 154: | Zeile 175: | ||
brd.create(' | brd.create(' | ||
- | |||
// | // | ||
Zeile 179: | Zeile 199: | ||
////////// | ////////// | ||
- | function areaOfIntersection(x0, | ||
- | { | ||
- | var rr0 = r0 * r0; | ||
- | var rr1 = r1 * r1; | ||
- | var d = Math.sqrt((x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0)); | ||
- | | + | // var uniformDip = brd.create(' |
- | | + | // |
- | { | + | // |
- | | + | // |
- | } | + | // x0 =0; y0 = 0; r0 = 75/2; |
+ | // | ||
+ | // | ||
+ | // x1 = 12.5*x; | ||
+ | // | ||
+ | // | ||
+ | // scale = 300; | ||
+ | // shift = 3; | ||
+ | // | ||
+ | // // var ppp = hallo(planet); | ||
+ | // res = 160*uniformLD(0.35*x, | ||
+ | // // console.log(" | ||
+ | // | ||
+ | // return res; | ||
+ | // | ||
+ | // }, xmin, xmax ] , | ||
+ | ////////////////////////////////////////////////////// | ||
+ | var dipNone = brd.create(' | ||
- | // Circle1 is completely inside circle0 | + | scale = 300; |
- | else if (d <= Math.abs(r0 - r1) && r0 >= r1) | + | |
- | { | + | g1=0; |
- | // Return area of circle1 | + | |
- | return Math.PI * rr1; | + | res = scale*quadraticLD(0.35*x, |
- | } | + | /// console.log(" |
+ | | ||
- | | + | }, xmin, xmax ] , |
- | else if (d <= Math.abs(r0 - r1) && r0 < r1) | + | //////////////////////////////////////////////////// |
- | | + | var dipU = brd.create(' |
- | // Return area of circle0 | + | |
- | return Math.PI * rr0; | + | |
- | } | + | |
- | // Circles partially overlap | + | scale = 250; |
- | else | + | |
- | { | + | g1=0.67462231; |
- | var phi = (Math.acos((rr0 + (d * d) - rr1) / (2 * r0 * d))) * 2; | + | g2= 0.16275864; |
- | var theta = (Math.acos((rr1 + (d * d) - rr0) / (2 * r1 * d))) * 2; | + | |
- | var area1 = 0.5 * theta * rr1 - 0.5 * rr1 * Math.sin(theta); | + | |
- | var area2 = 0.5 * phi * rr0 - 0.5 * rr0 * Math.sin(phi); | + | return res; |
- | | + | }, xmin, xmax ] , |
- | | + | //////////////////////////////////////////////////// |
- | } | + | ////////////////////////////////////////////////////// |
- | } | + | var dipB = brd.create(' |
- | var uniformDip | + | scale = 250; |
- | [function(x){ | + | shift = 2; |
+ | g1=0.57939128; | ||
+ | | ||
+ | res = scale*quadraticLD(0.35*x, | ||
+ | |||
+ | return res; | ||
+ | }, xmin, xmax ] , | ||
+ | ////////////////////////////////////////////////////// | ||
+ | ////////////////////////////////////////////////////// | ||
+ | var dipV = brd.create(' | ||
- | | + | |
+ | shift = 2; | ||
+ | g1= 0.40433600; | ||
+ | g2=0.29138968; | ||
+ | res = scale*quadraticLD(0.35*x, | ||
- | | + | |
- | x1 = 12.5*x; | + | |
- | | + | }, xmin, xmax ] , |
+ | ////////////////////////////////////////////////////// | ||
+ | ////////////////////////////////////////////////////// | ||
+ | var dipR = brd.create(' | ||
- | scale =-0.04; | + | scale = 250; |
- | shift = -2; | + | shift = 2; |
- | res = scale*areaOfIntersection(x0, y0, r0, x1, y1, r1)+shift; | + | g1=0.31786107; |
+ | g2= 0.30489961; | ||
+ | res = scale*quadraticLD(0.35*x,impact,g1,g2,planet)-shift-scale; | ||
+ | |||
return res; | return res; | ||
- | }, xmin, xmax ] , | + | }, xmin, xmax ] , |
+ | ////////////////////////////////////////////////////// | ||
+ | ////////////////////////////////////////////////////// | ||
+ | var dipI = brd.create(' | ||
- | // | + | scale = 250; |
- | // x parameter | + | shift = 2; |
- | // p Start/ | + | g1= 0.24515439; |
- | // | + | g2= 0.29645038; |
- | function line2Points(x,p1X,p1Y,p2X,p2Y){ | + | res = scale*quadraticLD(0.35*x,impact,g1,g2,planet)-shift-scale; |
- | m = (p2Y-p1Y) / (p2X-p1X); | + | |
- | y = m* (x-p1X) + p1Y; | + | return |
- | return | + | |
- | } | + | |
- | + | }, xmin, xmax ] , | |
////////////////////////////////////////////////////// | ////////////////////////////////////////////////////// | ||
+ | |||
+ | onlInit(); | ||
+ | |||
+ | |||
} // END OF BLOCK | } // END OF BLOCK | ||
Zeile 305: | Zeile 359: | ||
< | < | ||
+ | |||
<body onload=" | <body onload=" | ||
< | < | ||
< | < | ||
- | </ | + | </ |
- | + | < | |
- | <br>Einstellungen< | + | |
<span id=" | <span id=" | ||
- | <input id=" | + | <input id=" |
| | ||
<input id=" | <input id=" | ||
Zeile 325: | Zeile 379: | ||
</ | </ | ||
- | </ | + | </ |
</ | </ | ||
Zeile 361: | Zeile 416: | ||
Die Größenverhältnisse ($R_p/R_*$) zwischen Exoplanet und Zentralgestirn (engl. Hoststar), verändern | Die Größenverhältnisse ($R_p/R_*$) zwischen Exoplanet und Zentralgestirn (engl. Hoststar), verändern | ||
die Form der Lichtkurve ebenfalls. Die Amateurastronomie muss sich (mit derzeitigen Amateurequipment) auf die großen Planeten konzentrieren, | die Form der Lichtkurve ebenfalls. Die Amateurastronomie muss sich (mit derzeitigen Amateurequipment) auf die großen Planeten konzentrieren, | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | in das Modell übernommen. | ||
+ | </ | ||
+ | < | ||
+ | |Filter|$γ_1$|$γ_2$| | ||
+ | |U|0.67462231|0.16275864| | ||
+ | |B|0.57939128|0.21110543| | ||
+ | |V|0.40433600|0.29138968| | ||
+ | |R|0.31786107|0.30489961| | ||
+ | |I|0.24515439|0.29645038| | ||
+ | </ | ||
+ | [[https:// | ||
- | </ | + | |
++++ | ++++ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Lichtkurve Randverdunkelung (engl. limb darkening) ===== | ||
- | <JS> | ||
- | |||
- | // NAMESPACE l | ||
- | |||
- | var lbrd; | ||
- | var lonoff; | ||
- | |||
- | var lbText = true; | ||
- | var lbImpact = true; | ||
- | var lbPlanet = true; | ||
- | |||
- | var lxmin = -7.5; | ||
- | var lxmax | ||
- | // lsider | ||
- | var lplanet = 0.1; | ||
- | var limpact = 0.0; | ||
- | |||
- | |||
- | |||
- | function lonInit() { | ||
- | writeMainHeader(); | ||
- | |||
- | /////////////// | ||
- | lbrd = JXG.JSXGraph.initBoard(' | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | }); | ||
- | |||
- | //////////// | ||
- | lstarRadius = 75/2 | ||
- | lbrd.create(' | ||
- | | ||
- | strokeColor: | ||
- | size:75, | ||
- | fixed: true, | ||
- | layer:8, | ||
- | fillColor: ' | ||
- | fillOpacity: | ||
- | needsRegularUpdate: | ||
- | name:'' | ||
- | } | ||
- | ); | ||
- | |||
- | |||
- | function limpactPosition(){ | ||
- | |||
- | |||
- | lbrd.create(' | ||
- | needsRegularUpdate: | ||
- | |||
- | lbrd.create(' | ||
- | { return limpactPosition()}]] , | ||
- | needsRegularUpdate: | ||
- | strokeWidth: | ||
- | straightFirst: | ||
- | straightLast: | ||
- | strokeColor:'# | ||
- | |||
- | function lplanetSize(){ return 2*lstarRadius*lplanet } | ||
- | |||
- | /////// Impact //////////////////////////////////////////////////////////////// | ||
- | |||
- | |||
- | function lshowImpact0(){ | ||
- | if (lbText && lbImpact && limpact <= 0.4) return true; | ||
- | | ||
- | } | ||
- | function lshowImpact04(){ | ||
- | if (lbText && lbImpact && limpact > 0.4) return true; | ||
- | | ||
- | } | ||
- | |||
- | lbrd.create(' | ||
- | |||
- | lbrd.create(' | ||
- | |||
- | lbrd.create(' | ||
- | | ||
- | | ||
- | | ||
- | |||
- | |||
- | |||
- | lbrd.create(' | ||
- | |||
- | |||
- | lbrd.create(' | ||
- | {visible: function() {return lshowImpact04(); | ||
- | |||
- | lbrd.create(' | ||
- | ,{visible: function() {return lshowImpact04(); | ||
- | |||
- | /////////// R_p/ R_Star | ||
- | |||
- | function lshowPlanet(){ | ||
- | if (lbText && lbPlanet) return true; | ||
- | | ||
- | } | ||
- | |||
- | function lplanetText(){ return ' | ||
- | function lplanetText1(){ | ||
- | | ||
- | if (lplanet <= 0.01 ){ | ||
- | return ' | ||
- | } | ||
- | if (lplanet > 0.01 && planet < 0.10 ){ | ||
- | return ' | ||
- | } | ||
- | if (lplanet == 0.10 ){ | ||
- | return ' | ||
- | } | ||
- | if (lplanet > 0.10 ){ | ||
- | return ' | ||
- | } | ||
- | } | ||
- | |||
- | |||
- | |||
- | lbrd.create(' | ||
- | |||
- | |||
- | |||
- | lbrd.create(' | ||
- | | ||
- | |||
- | |||
- | // | ||
- | // | ||
- | //////////// | ||
- | lbrd.create(' | ||
- | | ||
- | strokeColor: | ||
- | size: function(){ return lplanetSize(); | ||
- | layer:8, | ||
- | fillColor: ' | ||
- | fillOpacity: | ||
- | needsRegularUpdate: | ||
- | name:'' | ||
- | } | ||
- | ); | ||
- | ///////// Koordinatensystem | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | ////////// | ||
- | |||
- | function lareaOfIntersection(x0, | ||
- | { | ||
- | var rr0 = r0 * r0; | ||
- | var rr1 = r1 * r1; | ||
- | var d = Math.sqrt((x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0)); | ||
- | |||
- | // Circles do not overlap | ||
- | if (d > r1 + r0) | ||
- | { | ||
- | return 0; | ||
- | } | ||
- | |||
- | // Circle1 is completely inside circle0 | ||
- | else if (d <= Math.abs(r0 - r1) && r0 >= r1) | ||
- | { | ||
- | // Return area of circle1 | ||
- | return Math.PI * rr1; | ||
- | } | ||
- | |||
- | // Circle0 is completely inside circle1 | ||
- | else if (d <= Math.abs(r0 - r1) && r0 < r1) | ||
- | { | ||
- | // Return area of circle0 | ||
- | return Math.PI * rr0; | ||
- | } | ||
- | |||
- | // Circles partially overlap | ||
- | else | ||
- | { | ||
- | var phi = (Math.acos((rr0 + (d * d) - rr1) / (2 * r0 * d))) * 2; | ||
- | var theta = (Math.acos((rr1 + (d * d) - rr0) / (2 * r1 * d))) * 2; | ||
- | var area1 = 0.5 * theta * rr1 - 0.5 * rr1 * Math.sin(theta); | ||
- | var area2 = 0.5 * phi * rr0 - 0.5 * rr0 * Math.sin(phi); | ||
- | |||
- | // Return area of intersection | ||
- | return area1 + area2; | ||
- | } | ||
- | } | ||
- | |||
- | var luniformDip = lbrd.create(' | ||
- | | ||
- | |||
- | |||
- | x0 =0; y0 = 0; r0 = 75/2; | ||
- | |||
- | y1 = impact*37; | ||
- | x1 = 12.5*x; | ||
- | r1 = r0*planet; | ||
- | |||
- | scale =-0.04; | ||
- | shift = -2; | ||
- | res = scale*lareaOfIntersection(x0, | ||
- | return res; | ||
- | |||
- | }, lxmin, lxmax ] , | ||
- | |||
- | |||
- | |||
- | |||
- | ////////////////////////////////////////////////////// | ||
- | } // END OF BLOCK | ||
- | |||
- | function lbeschriftungChanged(value) { | ||
- | if (value.checked ){ | ||
- | lbText = true; | ||
- | }else { lbText = false ;} | ||
- | lbrd.fullUpdate(); | ||
- | } | ||
- | |||
- | function lonoffChanged(source) { | ||
- | | ||
- | | ||
- | | ||
- | |||
- | if( i == 0 ) lonShowImpactChanged(source); | ||
- | if( i == 1 ) lonShowPlanetChanged(source); | ||
- | | ||
- | } | ||
- | lbrd.fullUpdate(); | ||
- | } | ||
- | function lonShowImpactChanged(value) { | ||
- | if (value.checked ){ | ||
- | lbImpact = true; | ||
- | }else { lbImpact = false ;} | ||
- | lbrd.fullUpdate(); | ||
- | |||
- | |||
- | } | ||
- | |||
- | |||
- | function lonShowPlanetChanged(value) { | ||
- | if (value.checked ){ | ||
- | lbPlanet = true; | ||
- | }else { lbPlanet = false ;} | ||
- | lbrd.fullUpdate(); | ||
- | | ||
- | |||
- | } | ||
- | |||
- | function lonPlanetChanged() { | ||
- | lplanet = parseFloat($("# | ||
- | $("# | ||
- | lbrd.fullUpdate(); | ||
- | } | ||
- | function lonImpactChanged() { | ||
- | limpact = parseFloat($("# | ||
- | $("# | ||
- | lbrd.fullUpdate(); | ||
- | } | ||
- | |||
- | |||
- | |||
- | </JS> | ||
- | |||
- | |||
- | |||
- | |||
- | < | ||
- | <body onload=" | ||
- | < | ||
- | < | ||
- | </ | ||
- | |||
- | < | ||
- | <span id=" | ||
- | <input id=" | ||
- | | ||
- | < | ||
- | < | ||
- | <input id=" | ||
- | | ||
- | |||
- | | ||
- | <div> | ||
- | <input type=" | ||
- | | ||
- | <label for=" | ||
- | |||
- | </ | ||
- | |||
- | </ | ||
- | |||
- | </ | ||
- | </ | ||
- | |||
- | |||
- | ++++ Details | | ||
- | |||
- | < | ||
- | <div> | ||
- | <input type=" | ||
- | | ||
- | <label for=" | ||
- | </ | ||
- | < | ||
- | <div> | ||
- | <input type=" | ||
- | | ||
- | <label for=" | ||
- | </ | ||
- | <div> | ||
- | Der Impaktparamter b, hat einen wesentlichen Einfluss auf die Form der Lichtkurve. Der Parameter ist hier | ||
- | auf den Sternenradius skaliert, so dass der Planet bei einen Wert von $b=1$ einen | ||
- | partiellen Transit vollzieht. | ||
- | </ | ||
- | <br> | ||
- | <div> | ||
- | <input type=" | ||
- | | ||
- | <label for=" | ||
- | </ | ||
- | <div> | ||
- | Die Größenverhältnisse ($R_p/R_*$) zwischen Exoplanet und Zentralgestirn (engl. Hoststar), verändern | ||
- | die Form der Lichtkurve ebenfalls. Die Amateurastronomie muss sich (mit derzeitigen Amateurequipment) auf die großen Planeten konzentrieren, | ||
- | |||
- | |||
- | </ | ||
- | ++++ | ||
demo_limbdarkening.txt · Zuletzt geändert: 2022/04/04 17:44 von torsten.roehl