demo_limbdarkening
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
demo_limbdarkening [2022/03/29 11:13] – torsten.roehl | demo_limbdarkening [2022/04/04 17:44] (aktuell) – 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 [[https:// | ||
+ | // | ||
+ | |||
+ | |||
+ | < | ||
+ | | {{ : | ||
+ | </ | ||
+ | |||
+ | // | ||
+ | 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)); | ||
- | |||
- | // 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 uniformDip = brd.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*areaOfIntersection(x0, | ||
- | return res; | ||
- | |||
- | }, xmin, xmax ] , | ||
+ | // var uniformDip = brd.create(' | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // x0 =0; y0 = 0; r0 = 75/2; | ||
// | // | ||
- | // x parameter | ||
- | // p Start/ | ||
// | // | ||
- | function line2Points(x, | + | // x1 = 12.5*x; |
- | | + | // r1 = r0*planet; |
- | | + | // |
- | | + | // scale = 300; |
- | } | + | // shift = 3; |
- | + | // | |
- | | + | // // var ppp = hallo(planet); |
+ | // res = 160*uniformLD(0.35*x, | ||
+ | // // console.log(" | ||
+ | // | ||
+ | // return res; | ||
+ | // | ||
+ | // }, xmin, xmax ] , | ||
////////////////////////////////////////////////////// | ////////////////////////////////////////////////////// | ||
- | } // END OF BLOCK | + | var dipNone = brd.create(' |
- | function beschriftungChanged(value) { | + | scale = 300; |
- | if (value.checked ){ | + | shift = 2; |
- | | + | g1=0; |
- | }else { bText = false ;} | + | g2=0; |
- | brd.fullUpdate(); | + | res = scale*quadraticLD(0.35*x, |
- | } | + | /// console.log(" |
+ | | ||
- | function onoffChanged(source) | + | }, xmin, xmax ] ,{strokeWidth: |
- | | + | ////////////////////////////////////////////////////// |
- | | + | var dipU = brd.create(' |
- | | + | |
- | | + | |
- | if( i == 0 ) onShowImpactChanged(source); | + | |
- | if( i == 1 ) onShowPlanetChanged(source); | + | |
- | + | ||
- | } | + | |
- | | + | |
- | } | + | |
- | function | + | |
- | if (value.checked ){ | + | |
- | bImpact = true; | + | |
- | }else { bImpact = false ;} | + | |
- | brd.fullUpdate(); | + | |
- | + | ||
- | + | ||
- | } | + | |
+ | scale = 250; | ||
+ | shift = 2; | ||
+ | g1=0.67462231; | ||
+ | g2= 0.16275864; | ||
+ | res = scale*quadraticLD(0.35*x, | ||
+ | |||
+ | return res; | ||
- | function onShowPlanetChanged(value) | + | }, xmin, xmax ] ,{strokeWidth: |
- | if (value.checked | + | ////////////////////////////////////////////////////// |
- | bPlanet = true; | + | ////////////////////////////////////////////////////// |
- | }else { bPlanet | + | var dipB = brd.create(' |
- | | + | |
- | + | ||
- | + | ||
- | } | + | |
- | function onPlanetChanged() { | + | scale = 250; |
- | planet | + | shift = 2; |
- | | + | g1=0.57939128; |
- | brd.fullUpdate(); | + | g2=0.21110543; |
- | } | + | res = scale*quadraticLD(0.35*x,impact, |
- | function onImpactChanged() { | + | |
- | impact | + | return res; |
- | $("# | + | |
- | | + | |
- | } | + | |
+ | }, xmin, xmax ] , | ||
+ | ////////////////////////////////////////////////////// | ||
+ | ////////////////////////////////////////////////////// | ||
+ | var dipV = brd.create(' | ||
+ | scale = 250; | ||
+ | shift = 2; | ||
+ | g1= 0.40433600; | ||
+ | g2=0.29138968; | ||
+ | res = scale*quadraticLD(0.35*x, | ||
- | </JS> | + | return res; |
+ | }, xmin, xmax ] , | ||
+ | ////////////////////////////////////////////////////// | ||
+ | ////////////////////////////////////////////////////// | ||
+ | var dipR = brd.create(' | ||
+ | scale = 250; | ||
+ | shift = 2; | ||
+ | g1=0.31786107; | ||
+ | g2= 0.30489961; | ||
+ | res = scale*quadraticLD(0.35*x, | ||
+ | |||
+ | return res; | ||
+ | }, xmin, xmax ] , | ||
+ | ////////////////////////////////////////////////////// | ||
+ | ////////////////////////////////////////////////////// | ||
+ | var dipI = brd.create(' | ||
- | < | + | |
- | <body onload=" | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | + | ||
- | < | + | |
- | <span id=" | + | |
- | <input id=" | + | |
- | | + | |
- | <input id=" | + | |
- | step=" | + | |
- | + | ||
- | + | ||
- | < | + | |
- | <input type=" | + | |
- | | + | |
- | <label for=" | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | </ | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ++++ Details | | + | |
- | + | ||
- | < | + | |
- | < | + | |
- | <input type=" | + | |
- | | + | |
- | <label for=" | + | |
- | </ | + | |
- | <br> | + | |
- | < | + | |
- | <input type=" | + | |
- | | + | |
- | <label for=" | + | |
- | </ | + | |
- | < | + | |
- | 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. | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | + | ||
- | < | + | |
- | <input type=" | + | |
- | | + | |
- | <label for=" | + | |
- | </ | + | |
- | < | + | |
- | 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, | + | |
- | + | ||
- | + | ||
- | </ | + | |
- | ++++ | + | |
- | + | ||
- | ===== Lichtkurve Randverdunkelung (engl. limb darkening) ===== | + | |
- | < | + | |
- | + | ||
- | var brd; | + | |
- | var onoff; | + | |
- | + | ||
- | var bText = true; | + | |
- | var bImpact = true; | + | |
- | var bPlanet = true; | + | |
- | + | ||
- | var xmin = -7.5; | + | |
- | var xmax | + | |
- | // slider | + | |
- | var planet | + | |
- | var impact = 0.0; | + | |
- | + | ||
- | + | ||
- | + | ||
- | function onInit() { | + | |
- | writeMainHeader(); | + | |
- | + | ||
- | /////////////// | + | |
- | brd = JXG.JSXGraph.initBoard(' | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
- | }); | + | |
- | + | ||
- | // | + | |
- | + | ||
- | + | ||
- | + | ||
- | //////////// | + | |
- | starRadius | + | |
- | brd.create(' | + | |
- | | + | |
- | strokeColor: | + | |
- | size:75, | + | |
- | fixed: true, | + | |
- | layer:8, | + | |
- | fillColor: ' | + | |
- | fillOpacity: | + | |
- | needsRegularUpdate: | + | |
- | name:'' | + | |
- | } | + | |
- | ); | + | |
- | + | ||
- | + | ||
- | function impactPosition(){ | + | |
- | + | ||
- | + | ||
- | + | ||
- | brd.create(' | + | |
- | needsRegularUpdate: | + | |
- | + | ||
- | brd.create(' | + | |
- | { return impactPosition()}]] ,{ | + | |
- | needsRegularUpdate: | + | |
- | + | ||
- | function planetSize(){ return 2*starRadius*planet | + | |
- | + | ||
- | /////// Impact //////////////////////////////////////////////////////////////// | + | |
- | + | ||
- | + | ||
- | function showImpact0(){ | + | |
- | if (bText && bImpact && impact <= 0.4) return true; | + | |
- | | + | |
- | } | + | |
- | function showImpact04(){ | + | |
- | if (bText && bImpact && impact > 0.4) return true; | + | |
- | | + | |
- | } | + | |
- | + | ||
- | brd.create(' | + | |
- | + | ||
- | brd.create(' | + | |
- | | + | |
- | + | ||
- | + | ||
- | + | ||
- | brd.create(' | + | |
- | + | ||
- | + | ||
- | brd.create(' | + | |
- | {visible: function() {return showImpact04(); | + | |
- | + | ||
- | brd.create(' | + | |
- | ,{visible: function() {return showImpact04(); | + | |
- | + | ||
- | /////////// R_p/ R_Star | + | |
- | + | ||
- | function showPlanet(){ | + | |
- | if (bText && bPlanet) return true; | + | |
- | | + | |
- | } | + | |
- | + | ||
- | function planetText(){ return ' | + | |
- | function planetText1(){ | + | |
| | ||
- | if (planet <= 0.01 ){ | + | |
- | | + | |
- | } | + | |
- | if (planet > 0.01 && planet < 0.10 ){ | + | |
- | return ' | + | |
- | } | + | |
- | if (planet == 0.10 ){ | + | |
- | return ' | + | |
- | } | + | |
- | if (planet > 0.10 ){ | + | |
- | return ' | + | |
- | } | + | |
- | } | + | |
+ | }, xmin, xmax ] , | ||
+ | ////////////////////////////////////////////////////// | ||
+ | onlInit(); | ||
- | brd.create(' | ||
- | |||
- | |||
- | brd.create(' | ||
- | |||
- | |||
- | // | ||
- | // | ||
- | //////////// | ||
- | brd.create(' | ||
- | | ||
- | strokeColor: | ||
- | size: function(){ return planetSize(); | ||
- | layer:8, | ||
- | fillColor: ' | ||
- | fillOpacity: | ||
- | needsRegularUpdate: | ||
- | name:'' | ||
- | } | ||
- | ); | ||
- | ///////// Koordinatensystem | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | ////////// | ||
- | |||
- | function areaOfIntersection(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 uniformDip = brd.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*areaOfIntersection(x0, | ||
- | return res; | ||
- | |||
- | }, xmin, xmax ] , | ||
- | |||
- | // | ||
- | // x parameter | ||
- | // p Start/ | ||
- | // | ||
- | function line2Points(x, | ||
- | m = (p2Y-p1Y) / (p2X-p1X); | ||
- | y = m* (x-p1X) + p1Y; | ||
- | return y; | ||
- | } | ||
- | |||
- | |||
- | ////////////////////////////////////////////////////// | ||
} // END OF BLOCK | } // END OF BLOCK | ||
Zeile 644: | Zeile 359: | ||
< | < | ||
+ | |||
<body onload=" | <body onload=" | ||
< | < | ||
< | < | ||
- | </ | + | </ |
- | + | < | |
- | <br>Einstellungen< | + | |
<span id=" | <span id=" | ||
- | <input id=" | + | <input id=" |
| | ||
<input id=" | <input id=" | ||
Zeile 664: | Zeile 379: | ||
</ | </ | ||
- | </ | + | </ |
</ | </ | ||
Zeile 700: | 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$| | ||
+ | |< | ||
+ | |< | ||
+ | |< | ||
+ | |< | ||
+ | |< | ||
+ | </ | ||
+ | [[https:// | ||
+ | [[https:// | ||
- | </ | ||
++++ | ++++ | ||
+ | |||
demo_limbdarkening.1648552411.txt.gz · Zuletzt geändert: 2022/03/29 11:13 von torsten.roehl