mirror of
https://gitlab.astro-wise.org/micado/atmosphericmodel.git
synced 2026-10-29 20:51:05 +00:00
Add error propagation to the models
This commit is contained in:
1 parent
10bf0fa17d
commit
a81c17a4b4
5 files changed
+646
-60
No files matched your search
@@ -13143,7 +13143,7 @@ div#notebook {
|
||||
<span class="n">l2</span> <span class="o">=</span> <span class="mf">1.78</span> <span class="c1"># micron</span>
|
||||
|
||||
<span class="c1"># Initializing dispersion model</span>
|
||||
<span class="n">at</span> <span class="o">=</span> <span class="n">Ciddor1996</span><span class="p">(</span><span class="n">p</span><span class="o">=</span><span class="n">P</span><span class="p">,</span> <span class="n">T</span><span class="o">=</span><span class="n">T</span><span class="p">,</span> <span class="n">H</span><span class="o">=</span><span class="n">H</span><span class="p">,</span> <span class="n">xc</span><span class="o">=</span><span class="n">xc</span><span class="p">)</span>
|
||||
<span class="n">at</span> <span class="o">=</span> <span class="n">Observatory</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Calculating indices of refraction for l1 and l2</span>
|
||||
<span class="n">n1</span> <span class="o">=</span> <span class="n">at</span><span class="o">.</span><span class="n">n_tph</span><span class="p">(</span><span class="n">l</span><span class="o">=</span><span class="n">l1</span><span class="p">,</span> <span class="n">T</span><span class="o">=</span><span class="n">T</span><span class="p">,</span> <span class="n">p</span><span class="o">=</span><span class="n">P</span><span class="p">,</span> <span class="n">RH</span><span class="o">=</span><span class="n">H</span><span class="p">,</span> <span class="n">xc</span><span class="o">=</span><span class="n">xc</span><span class="p">)</span>
|
||||
@@ -13171,8 +13171,9 @@ div#notebook {
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Density of the atmosphere (following CIPM-81/91 equations)</span>
|
||||
<span class="n">rho</span> <span class="o">=</span> <span class="n">at</span><span class="o">.</span><span class="n">rho</span><span class="p">(</span><span class="n">p</span><span class="o">=</span><span class="n">P</span><span class="p">,</span> <span class="n">T</span><span class="o">=</span><span class="n">T</span><span class="p">,</span> <span class="n">RH</span><span class="o">=</span><span class="n">H</span><span class="p">,</span> <span class="n">xc</span><span class="o">=</span><span class="n">xc</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Initializing refraction model</span>
|
||||
<span class="n">ref</span> <span class="o">=</span> <span class="n">refraction</span><span class="p">(</span><span class="n">lat</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">rho</span><span class="p">)</span>
|
||||
<span class="c1"># Initializing refraction model and setting the reduced height</span>
|
||||
<span class="n">ref</span> <span class="o">=</span> <span class="n">refraction</span><span class="p">(</span><span class="n">lat</span><span class="p">,</span> <span class="n">h</span><span class="p">)</span>
|
||||
<span class="n">ref</span><span class="o">.</span><span class="n">setReducedHeight</span><span class="p">(</span><span class="n">P</span><span class="p">,</span> <span class="n">rho</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
@@ -13225,20 +13226,32 @@ div#notebook {
|
||||
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
|
||||
</div><div class="inner_cell">
|
||||
<div class="text_cell_render border-box-sizing rendered_html">
|
||||
<p>Dispersion is simply the refraction differential between two wavelengths. This is calculated with this module by</p>
|
||||
<p>Some error propagation is included in the module as well. It takes is able to calculate the uncertainty in the refractive index and uses that to propagate it into the refraction formule for the cassini model. Note: The Cassini model is the only refraction model for which error propagation is possible, in this module.</p>
|
||||
<p>In this example we assume the following uncertainties:</p>
|
||||
<ul>
|
||||
<li>Wavelength: 1 nm</li>
|
||||
<li>Temperature: 0.2 K</li>
|
||||
<li>Pressure: 30 Pa</li>
|
||||
<li>Relative humidity: 0.03 (3%)</li>
|
||||
<li>CO2 density: 25 ppm</li>
|
||||
<li>Observed zenith angle: 1 arc second</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [4]:</div>
|
||||
<div class="prompt input_prompt">In [17]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Initializing dispersion object</span>
|
||||
<span class="n">disp</span> <span class="o">=</span> <span class="n">dispersion</span><span class="p">(</span><span class="n">lat</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">rho</span><span class="p">)</span>
|
||||
<span class="n">dispersion_obs</span> <span class="o">=</span> <span class="n">disp</span><span class="o">.</span><span class="n">cassini</span><span class="p">(</span><span class="n">n1</span><span class="p">,</span> <span class="n">n2</span><span class="p">,</span> <span class="n">zenith</span><span class="o">=</span><span class="n">zenith_obs</span><span class="p">)</span><span class="o">*</span><span class="mf">3.6e6</span>
|
||||
<span class="nb">print</span> <span class="p">(</span><span class="s1">'The dispersion is </span><span class="si">%.03f</span><span class="s1"> milli arc seconds'</span> <span class="o">%</span><span class="p">(</span><span class="n">dispersion_obs</span><span class="p">))</span>
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Calculating the uncertainty in the refractive index</span>
|
||||
<span class="n">n1</span> <span class="o">=</span> <span class="n">at</span><span class="o">.</span><span class="n">n_tph</span><span class="p">(</span><span class="n">l</span><span class="o">=</span><span class="n">l1</span><span class="p">,</span> <span class="n">T</span><span class="o">=</span><span class="n">T</span><span class="p">,</span> <span class="n">p</span><span class="o">=</span><span class="n">P</span><span class="p">,</span> <span class="n">RH</span><span class="o">=</span><span class="n">H</span><span class="p">,</span> <span class="n">xc</span><span class="o">=</span><span class="n">xc</span><span class="p">)</span>
|
||||
<span class="n">dn1</span> <span class="o">=</span> <span class="n">at</span><span class="o">.</span><span class="n">dn_tph</span><span class="p">(</span><span class="n">l1</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">H</span><span class="p">,</span> <span class="n">xc</span><span class="p">,</span> <span class="n">dl</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span> <span class="n">dT</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">dP</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">dRH</span><span class="o">=</span><span class="mf">0.03</span><span class="p">,</span> <span class="n">dCO2</span><span class="o">=</span><span class="mi">25</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Calculating the uncertainty in the atmospheric refraction</span>
|
||||
<span class="n">refError</span> <span class="o">=</span> <span class="n">ref</span><span class="o">.</span><span class="n">cassiniError</span><span class="p">(</span><span class="n">n1</span><span class="p">,</span> <span class="n">dn1</span><span class="p">,</span> <span class="n">zenith_obs</span><span class="p">,</span> <span class="n">dz</span><span class="o">=</span><span class="mi">1</span><span class="o">/</span><span class="mi">3600</span><span class="p">)</span><span class="o">*</span><span class="mf">3.6e3</span>
|
||||
<span class="nb">print</span> <span class="p">(</span><span class="s1">'The refraction is: </span><span class="si">%.3f</span><span class="s1"> +/- </span><span class="si">%.3f</span><span class="s1"> arc seconds'</span> <span class="o">%</span><span class="p">(</span><span class="n">refraction_obs</span><span class="p">,</span> <span class="n">refError</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
@@ -13255,7 +13268,57 @@ div#notebook {
|
||||
|
||||
|
||||
<div class="output_subarea output_stream output_stdout output_text">
|
||||
<pre>The dispersion is 31.019 milli arc seconds
|
||||
<pre>The refraction is: 40.697 +/- 0.035 arc seconds
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
|
||||
</div><div class="inner_cell">
|
||||
<div class="text_cell_render border-box-sizing rendered_html">
|
||||
<p>Dispersion is simply the refraction differential between two wavelengths. This is calculated with a dispersion object. Again, we can also calculate the uncertainty in the dispersion based on the measurement uncertainties. We take the same values as above.</p>
|
||||
<p>Note that, since the unertainties in the refractive index at two wavelengths observated at the same time are correlated, we cannot simply use n1, n2, dn1 and dn2 as an input but require the whole set of conditions and uncertainties.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [23]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Initializing dispersion object</span>
|
||||
<span class="n">disp</span> <span class="o">=</span> <span class="n">dispersion</span><span class="p">(</span><span class="n">lat</span><span class="p">,</span> <span class="n">h</span><span class="p">)</span>
|
||||
<span class="n">disp</span><span class="o">.</span><span class="n">setReducedHeight</span><span class="p">(</span><span class="n">P</span><span class="p">,</span> <span class="n">rho</span><span class="p">)</span>
|
||||
|
||||
<span class="n">dispersion_obs</span> <span class="o">=</span> <span class="n">disp</span><span class="o">.</span><span class="n">cassini</span><span class="p">(</span><span class="n">n1</span><span class="p">,</span> <span class="n">n2</span><span class="p">,</span> <span class="n">zenith_obs</span><span class="p">)</span><span class="o">*</span><span class="mf">3.6e6</span>
|
||||
|
||||
<span class="c1"># Calculating the uncertainty in the atmospheric dispersion</span>
|
||||
<span class="n">dispersion_unc</span> <span class="o">=</span> <span class="n">disp</span><span class="o">.</span><span class="n">cassiniError</span><span class="p">(</span><span class="n">zenith_obs</span><span class="p">,</span> <span class="n">l1</span><span class="p">,</span> <span class="n">l2</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">P</span><span class="p">,</span> <span class="n">H</span><span class="p">,</span> <span class="n">xc</span><span class="p">,</span>
|
||||
<span class="n">dl1</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span> <span class="n">dl2</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span> <span class="n">dT</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">dP</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">dRH</span><span class="o">=</span><span class="mf">0.03</span><span class="p">,</span> <span class="n">dCO2</span><span class="o">=</span><span class="mi">25</span><span class="p">,</span> <span class="n">dz</span><span class="o">=</span><span class="mi">1</span><span class="o">/</span><span class="mi">3600</span><span class="p">)</span> <span class="o">*</span> <span class="mf">3.6e6</span>
|
||||
|
||||
<span class="nb">print</span> <span class="p">(</span><span class="s1">'The dispersion is </span><span class="si">%.03f</span><span class="s1"> +/- </span><span class="si">%.03f</span><span class="s1"> milli arc seconds'</span> <span class="o">%</span><span class="p">(</span><span class="n">dispersion_obs</span><span class="p">,</span> <span class="n">dispersion_unc</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="output_wrapper">
|
||||
<div class="output">
|
||||
|
||||
|
||||
<div class="output_area">
|
||||
|
||||
<div class="prompt"></div>
|
||||
|
||||
|
||||
<div class="output_subarea output_stream output_stdout output_text">
|
||||
<pre>The dispersion is 31.019 +/- 0.164 milli arc seconds
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user