-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquick_start.html
1147 lines (1127 loc) · 164 KB
/
quick_start.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="utf-8" />
<title>Quick Start — ChiantiPy 0.15.1 documentation</title>
<link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Tutorial" href="tutorial.html" />
<link rel="prev" title="Getting started with ChiantiPy" href="getting_started.html" />
</head><body>
<div style="padding: 20px 10px 10px 40px; background-color: #fff8d3; text-align: left;">
<a href="">
<img border="0" alt="chiantipy" src="_static/chiantipy_logo.png"/>
</a>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="tutorial.html" title="Tutorial"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="getting_started.html" title="Getting started with ChiantiPy"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">ChiantiPy 0.15.1 documentation</a> »</li>
</ul>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>Previous topic</h4>
<p class="topless"><a href="getting_started.html"
title="previous chapter">Getting started with ChiantiPy</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="tutorial.html"
title="next chapter">Tutorial</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="quick-start">
<h1>Quick Start<a class="headerlink" href="#quick-start" title="Permalink to this headline">¶</a></h1>
<p>This short tutorial will demonstrate some of the capabilities of ChiantiPy and the CHIANTI database. It assumes that you know what the CHIANTI database provides and why you want to use it. It is useful to begin by exploring the properties of the <strong>ion class</strong>, as much of ChiantiPy is based on it. An ion such as Fe XIV is specified by the string ‘fe_14’, in the usual CHIANTI notation.</p>
<p>Perhaps the easiest way is to use a jupyter-notebook is to load the quick start notebook file QuickStart.ipynb in the directory jupyter_notebooks. Then, just run each cell step by step. If you are not familiar with notebooks, then you can cut and paste the following code into a Python/IPython session.</p>
<p>N.B.: in the time some of the plots and data were produced, there have been some changes to ChiantiPy and CHIANTI. It is possible that you might find differences (hopefully small).</p>
<p>Bring up a Python session (using > Python -i ), or better yet, an IPython session</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">os</span>
</pre></div>
</div>
<p>the following will show the XUVTOP directory</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'XUVTOP'</span><span class="p">]</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">ChiantiPy</span>
<span class="kn">import</span> <span class="nn">ChiantiPy.core</span> <span class="k">as</span> <span class="nn">ch</span>
<span class="kn">import</span> <span class="nn">ChiantiPy.tools.filters</span> <span class="k">as</span> <span class="nn">chfilters</span>
<span class="kn">import</span> <span class="nn">ChiantiPy.tools.io</span> <span class="k">as</span> <span class="nn">chio</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">matplotlib</span> <span class="n">qt</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">autoreload</span> <span class="mi">2</span>
</pre></div>
</div>
<p>to see the ChiantiPy version</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">ChiantiPy</span><span class="o">.</span><span class="n">__version__</span>
</pre></div>
</div>
<p>to see the Ipython version</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">IPython</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">' IPython version = </span><span class="si">%i</span><span class="s1">.</span><span class="si">%i</span><span class="s1">.</span><span class="si">%i</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">IPython</span><span class="o">.</span><span class="n">version_info</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">IPython</span><span class="o">.</span><span class="n">version_info</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">IPython</span><span class="o">.</span><span class="n">version_info</span><span class="p">[</span><span class="mi">2</span><span class="p">]))</span>
</pre></div>
</div>
<p>It is useful to open a qtconsole where are the calculations can be easily examined</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">qtconsole</span>
</pre></div>
</div>
<p>to see the version of the CHIANTI database</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">chianti_version</span> <span class="o">=</span> <span class="n">chio</span><span class="o">.</span><span class="n">versionRead</span><span class="p">()</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">chianti_version</span>
</pre></div>
</div>
<div class="section" id="setting-default-values">
<h2>Setting default values<a class="headerlink" href="#setting-default-values" title="Permalink to this headline">¶</a></h2>
<p>ChiantiPy determines a number of default setting on instantiation. To use the default values list below, it is not necssary to do anything.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 17%" />
<col style="width: 47%" />
<col style="width: 36%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>setting</p></th>
<th class="head"><p>default</p></th>
<th class="head"><p>possible values</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>wavelength</p></td>
<td><p>angstrom</p></td>
<td><p>angstrom, nm, ev, kev</p></td>
</tr>
<tr class="row-odd"><td><p>flux</p></td>
<td><p>energy</p></td>
<td><p>energy, photon</p></td>
</tr>
<tr class="row-even"><td><p>abundfile</p></td>
<td><p>sun_photospheric_2015_scott</p></td>
<td><p>any.abund</p></td>
</tr>
<tr class="row-odd"><td><p>ioneqfile</p></td>
<td><p>chianti</p></td>
<td><p>any.ioneq</p></td>
</tr>
</tbody>
</table>
<p>to use any of the other possible values, check out the notes/setting_default_values in the documentation</p>
<p>the defaults can be checked</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">chdata</span><span class="o">.</span><span class="n">Defaults</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">chdata</span><span class="o">.</span><span class="n">Defaults</span><span class="p">[</span><span class="s1">'wavelength'</span><span class="p">]</span>
</pre></div>
</div>
</div>
<div class="section" id="level-populations">
<h2>Level populations<a class="headerlink" href="#level-populations" title="Permalink to this headline">¶</a></h2>
<p>As a start, we will examine the various properties of the Fe XIV emissivities as a function of temperature and density. So, let’s define a numpy array of temperatures</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">5.8</span> <span class="o">+</span> <span class="mf">0.05</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mf">21.</span><span class="p">))</span>
</pre></div>
</div>
<p>In ChiantiPy, temperatures are currently given in degrees Kelvin and densities as the number electron density per cubic cm. Then, construct fe14 as would be typically done</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="s1">'fe_14'</span><span class="p">,</span> <span class="n">temperature</span><span class="o">=</span><span class="n">temp</span><span class="p">,</span> <span class="n">eDensity</span><span class="o">=</span><span class="mf">1.e+9</span><span class="p">,</span> <span class="n">em</span><span class="o">=</span><span class="mf">1.e+27</span><span class="p">)</span>
</pre></div>
</div>
<p>note that eDensity is the new keyword for electron density</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">popPlot</span><span class="p">(</span><span class="n">addLegend</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</pre></div>
</div>
<p>produces a matplotlib plot window were the population of the top 10 (the default) levels are plotted as a function of temperature.</p>
<img alt="_images/fe14.popplot.png" class="align-center" src="_images/fe14.popplot.png" />
<p>If the level populations had not already been calculated, popPlot() would have invoked the populate() method which calculates the level populations and stores them in the Population dictionary, with keys = [‘protonDensity’, ‘population’, ‘temperature’, ‘density’].</p>
</div>
<div class="section" id="a-chiantipy-convention">
<h2>A ChiantiPy Convention<a class="headerlink" href="#a-chiantipy-convention" title="Permalink to this headline">¶</a></h2>
<p>Classes and function of ChiantiPy start with lower case letters. Data/attributes that are attached to the instantiation of a class will start with a capital letter. For example,</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">populate</span><span class="p">()</span> <span class="n">creates</span> <span class="n">fe14</span><span class="o">.</span><span class="n">Population</span> <span class="n">containing</span> <span class="n">the</span> <span class="n">level</span> <span class="n">population</span> <span class="n">information</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">intensity</span><span class="p">()</span> <span class="n">created</span> <span class="n">fe14</span><span class="o">.</span><span class="n">Intensity</span> <span class="n">contain</span> <span class="n">the</span> <span class="n">line</span> <span class="n">intensities</span> <span class="n">information</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">spectrum</span><span class="p">()</span> <span class="n">creates</span> <span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span> <span class="n">contain</span> <span class="n">the</span> <span class="n">line</span> <span class="ow">and</span> <span class="n">continuum</span> <span class="n">spectrum</span> <span class="n">information</span>
</pre></div>
</div>
</div>
<div class="section" id="spectral-line-intensities">
<h2>Spectral Line Intensities<a class="headerlink" href="#spectral-line-intensities" title="Permalink to this headline">¶</a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">intensityPlot</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">210.</span><span class="p">,</span><span class="mf">220.</span><span class="p">])</span>
</pre></div>
</div>
<p>will plot the intensities for the top (default = 10) lines in the specified wavelength range. If the <strong>Intensity</strong> attribute has not yet been calculated, it will calculate it. Since there are 21 temperature involved, a single temperature is selected (21//2 = 10). Otherwise,</p>
<img alt="_images/fe14_intensity_plot_lin.png" class="align-center" src="_images/fe14_intensity_plot_lin.png" />
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">intensityPlot</span><span class="p">(</span><span class="n">index</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">210.</span><span class="p">,</span> <span class="mf">220.</span><span class="p">],</span> <span class="n">relative</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<p>plots the intensities for a temperature = t[10] = 2.e+6, in this case. And, by specifying relative = True, the emissivities will be plotted relative to the strongest line.</p>
<img alt="_images/fe14_intensity_plot_lin_index10.png" class="align-center" src="_images/fe14_intensity_plot_lin_index10.png" />
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">intensityPlot</span><span class="p">(</span><span class="n">index</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">210.</span><span class="p">,</span> <span class="mf">220.</span><span class="p">],</span> <span class="n">relative</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">doTitle</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">lw</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
<p>plots the intensities for a temperature = t[10] = 2.e+6, in this case. And, by specifying relative = True, the emissivities will be plotted relative to the strongest line, doTitle=False, stops the title from appearing and lw sets the line width to 2.</p>
<img alt="_images/fe14_intensity_plot_lin_index10_rel_notitle.png" class="align-center" src="_images/fe14_intensity_plot_lin_index10_rel_notitle.png" />
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">intensityList</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mi">200</span><span class="p">,</span><span class="mi">220</span><span class="p">],</span> <span class="n">index</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
</pre></div>
</div>
<p>gives the following terminal output:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">using</span> <span class="n">index</span> <span class="o">=</span> <span class="mi">10</span> <span class="n">specifying</span> <span class="n">temperature</span> <span class="o">=</span> <span class="mf">2.00e+06</span><span class="p">,</span> <span class="n">eDensity</span> <span class="o">=</span> <span class="mf">1.00e+09</span> <span class="n">em</span> <span class="o">=</span> <span class="mf">1.00e+27</span>
<span class="o">------------------------------------------</span>
<span class="n">Ion</span> <span class="n">lvl1</span> <span class="n">lvl2</span> <span class="n">lower</span> <span class="o">-</span> <span class="n">upper</span> <span class="n">Wvl</span><span class="p">(</span><span class="n">A</span><span class="p">)</span> <span class="n">Intensity</span> <span class="n">A</span> <span class="n">value</span> <span class="n">Obs</span>
<span class="n">fe_14</span> <span class="mi">1</span> <span class="mi">11</span> <span class="mi">3</span><span class="n">s2</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span> <span class="mi">2</span><span class="n">P0</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s2</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">2</span><span class="n">D1</span><span class="o">.</span><span class="mi">5</span> <span class="mf">211.3172</span> <span class="mf">2.336e+02</span> <span class="mf">3.81e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">4</span> <span class="mi">27</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="mf">212.1255</span> <span class="mf">5.355e-01</span> <span class="mf">2.21e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">4</span> <span class="mi">28</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D2</span><span class="o">.</span><span class="mi">5</span> <span class="mf">212.1682</span> <span class="mf">4.039e-01</span> <span class="mf">1.15e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">3</span> <span class="mi">24</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P0</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D0</span><span class="o">.</span><span class="mi">5</span> <span class="mf">213.1955</span> <span class="mf">8.073e-01</span> <span class="mf">4.26e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">3</span> <span class="mi">23</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P0</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D1</span><span class="o">.</span><span class="mi">5</span> <span class="mf">213.8822</span> <span class="mf">1.393e+00</span> <span class="mf">2.97e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">5</span> <span class="mi">28</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P2</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D2</span><span class="o">.</span><span class="mi">5</span> <span class="mf">216.5786</span> <span class="mf">9.736e-01</span> <span class="mf">2.83e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">5</span> <span class="mi">25</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P2</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D3</span><span class="o">.</span><span class="mi">5</span> <span class="mf">216.9173</span> <span class="mf">1.730e+00</span> <span class="mf">4.29e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">7</span> <span class="mi">32</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">2</span><span class="n">D2</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">2</span><span class="n">F3</span><span class="o">.</span><span class="mi">5</span> <span class="mf">218.1767</span> <span class="mf">3.734e+00</span> <span class="mf">1.70e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">4</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">P2</span><span class="o">.</span><span class="mi">5</span> <span class="mf">218.5725</span> <span class="mf">2.391e+00</span> <span class="mf">2.65e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">2</span> <span class="mi">12</span> <span class="mi">3</span><span class="n">s2</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span> <span class="mi">2</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s2</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">2</span><span class="n">D2</span><span class="o">.</span><span class="mi">5</span> <span class="mf">219.1305</span> <span class="mf">5.077e+01</span> <span class="mf">4.27e+10</span> <span class="n">Y</span>
<span class="o">------------------------------------------</span>
</pre></div>
</div>
<p>optionally, an output file could also be created by setting the keyword outFile to the name of the desired name</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">intensityList</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">210.</span><span class="p">,</span><span class="mf">220.</span><span class="p">],</span> <span class="n">relative</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="mi">11</span><span class="p">)</span>
</pre></div>
</div>
<p>give the following terminal/notebook output</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">using</span> <span class="n">index</span> <span class="o">=</span> <span class="mi">11</span> <span class="n">specifying</span> <span class="n">temperature</span> <span class="o">=</span> <span class="mf">2.24e+06</span><span class="p">,</span> <span class="n">eDensity</span> <span class="o">=</span> <span class="mf">1.00e+09</span> <span class="n">em</span> <span class="o">=</span> <span class="mf">1.00e+27</span>
<span class="o">------------------------------------------</span>
<span class="n">Ion</span> <span class="n">lvl1</span> <span class="n">lvl2</span> <span class="n">lower</span> <span class="o">-</span> <span class="n">upper</span> <span class="n">Wvl</span><span class="p">(</span><span class="n">A</span><span class="p">)</span> <span class="n">Intensity</span> <span class="n">A</span> <span class="n">value</span> <span class="n">Obs</span>
<span class="n">fe_14</span> <span class="mi">1</span> <span class="mi">11</span> <span class="mi">3</span><span class="n">s2</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span> <span class="mi">2</span><span class="n">P0</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s2</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">2</span><span class="n">D1</span><span class="o">.</span><span class="mi">5</span> <span class="mf">211.3172</span> <span class="mf">1.000e+00</span> <span class="mf">3.81e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">4</span> <span class="mi">27</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="mf">212.1255</span> <span class="mf">2.267e-03</span> <span class="mf">2.21e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">4</span> <span class="mi">28</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D2</span><span class="o">.</span><span class="mi">5</span> <span class="mf">212.1682</span> <span class="mf">1.694e-03</span> <span class="mf">1.15e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">3</span> <span class="mi">24</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P0</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D0</span><span class="o">.</span><span class="mi">5</span> <span class="mf">213.1955</span> <span class="mf">3.390e-03</span> <span class="mf">4.26e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">3</span> <span class="mi">23</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P0</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D1</span><span class="o">.</span><span class="mi">5</span> <span class="mf">213.8822</span> <span class="mf">5.891e-03</span> <span class="mf">2.97e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">5</span> <span class="mi">28</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P2</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D2</span><span class="o">.</span><span class="mi">5</span> <span class="mf">216.5786</span> <span class="mf">4.083e-03</span> <span class="mf">2.83e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">5</span> <span class="mi">25</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P2</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">D3</span><span class="o">.</span><span class="mi">5</span> <span class="mf">216.9173</span> <span class="mf">7.085e-03</span> <span class="mf">4.29e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">7</span> <span class="mi">32</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">2</span><span class="n">D2</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">2</span><span class="n">F3</span><span class="o">.</span><span class="mi">5</span> <span class="mf">218.1767</span> <span class="mf">1.557e-02</span> <span class="mf">1.70e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">4</span> <span class="mi">22</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p2</span> <span class="mi">4</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span><span class="p">(</span><span class="mi">3</span><span class="n">P</span><span class="p">)</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">4</span><span class="n">P2</span><span class="o">.</span><span class="mi">5</span> <span class="mf">218.5725</span> <span class="mf">1.009e-02</span> <span class="mf">2.65e+10</span> <span class="n">Y</span>
<span class="n">fe_14</span> <span class="mi">2</span> <span class="mi">12</span> <span class="mi">3</span><span class="n">s2</span><span class="o">.</span><span class="mi">3</span><span class="n">p</span> <span class="mi">2</span><span class="n">P1</span><span class="o">.</span><span class="mi">5</span> <span class="o">-</span> <span class="mi">3</span><span class="n">s2</span><span class="o">.</span><span class="mi">3</span><span class="n">d</span> <span class="mi">2</span><span class="n">D2</span><span class="o">.</span><span class="mi">5</span> <span class="mf">219.1305</span> <span class="mf">2.096e-01</span> <span class="mf">4.27e+10</span> <span class="n">Y</span>
<span class="o">------------------------------------------</span>
</pre></div>
</div>
</div>
<div class="section" id="the-effect-of-electron-density-on-line-intensities">
<h2>The effect of electron density on line intensities<a class="headerlink" href="#the-effect-of-electron-density-on-line-intensities" title="Permalink to this headline">¶</a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="mf">2.e+6</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">6.</span> <span class="o">+</span> <span class="mf">0.1</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">61</span><span class="p">))</span>
<span class="n">fe14</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="s1">'fe_14'</span><span class="p">,</span> <span class="n">temp</span><span class="p">,</span> <span class="n">dens</span><span class="p">)</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">popPlot</span><span class="p">()</span>
</pre></div>
</div>
<p>a plot of the population of the top 10 levels is produced as a function of the electron density</p>
<img alt="_images/fe14_pop_vs_dens.png" class="align-center" src="_images/fe14_pop_vs_dens.png" />
</div>
<div class="section" id="g-n-t-function">
<h2>G(n,T) function<a class="headerlink" href="#g-n-t-function" title="Permalink to this headline">¶</a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">5.8</span> <span class="o">+</span> <span class="mf">0.05</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mf">21.</span><span class="p">))</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">fe14</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="s1">'fe_14'</span><span class="p">,</span> <span class="n">temp</span><span class="p">,</span> <span class="n">dens</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">gofnt</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">210.</span><span class="p">,</span> <span class="mf">220.</span><span class="p">],</span><span class="n">top</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
</pre></div>
</div>
<p>brings up a matplotlib plot window which shows the emissivities of the top (strongest) 3 lines in the wavelength region from 210 to 220 Angstroms.</p>
<img alt="_images/fe14.rel.emiss.png" class="align-center" src="_images/fe14.rel.emiss.png" />
<p>quickly followed by a dialog where the line(s) of interest can be specified</p>
<img alt="_images/fe14.gofnt.selector.png" class="align-center" src="_images/fe14.gofnt.selector.png" />
<p>and finally a plot of the G(n,T) function for the specified lines(s).</p>
<img alt="_images/fe14_gofnt.png" class="align-center" src="_images/fe14_gofnt.png" />
<p>The G(n,T) calculation is stored in the Gofnt dictionary, with keys = [‘gofnt’, ‘temperature’, ‘density’]</p>
<p>while the is a fairly straightforward way to get a G(T) function, it is not very practical to use for a more than a handful of lines. For if the fe_14 line at 211.3172 is in a list of lines to be analyzed, a more practical way is the following</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">intensity</span><span class="p">()</span>
<span class="n">dist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Intensity</span><span class="p">[</span><span class="s1">'wvl'</span><span class="p">])</span> <span class="o">-</span> <span class="mf">211.3172</span><span class="p">)</span>
<span class="n">idx</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">argmin</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">' wvl = </span><span class="si">%10.3f</span><span class="s1"> '</span><span class="o">%</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Intensity</span><span class="p">[</span><span class="s1">'wvl'</span><span class="p">][</span><span class="n">idx</span><span class="p">]))</span>
</pre></div>
</div>
<p>prints</p>
<p>wvl = 211.317</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">loglog</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span><span class="n">fe14</span><span class="o">.</span><span class="n">Intensity</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][:,</span><span class="n">idx</span><span class="p">])</span>
</pre></div>
</div>
<p>once the axes are properly scaled, this produces the same values as fe14.Gofnt[‘gofnt’]</p>
<img alt="_images/fe14_gofnt_alternate.png" class="align-center" src="_images/fe14_gofnt_alternate.png" />
</div>
<div class="section" id="ionization-equilibrium">
<h2>Ionization Equilibrium<a class="headerlink" href="#ionization-equilibrium" title="Permalink to this headline">¶</a></h2>
<p>For the Fe XIV example, the temperature was chosen to center around 2.e+6. It was not immediately apparent why this was done but in most of the following examples it is necessary to pick an appropriate temperature. This can be done with the <strong>ioneq</strong> class. To look at the ionization equilibrium for the iron ions (Z = 26, or ‘fe’)</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ioneq</span><span class="p">(</span><span class="mi">26</span><span class="p">)</span>
<span class="n">fe</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<span class="n">fe</span><span class="o">.</span><span class="n">plot</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>brings up a plot showing the ionization equilibrium for all of the stages of iron as a function of temperature</p>
<img alt="_images/fe_ioneq.png" class="align-center" src="_images/fe_ioneq.png" />
<p>This is pretty crowded and we are only interested in Fe XIV (fe_14), so</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">fe</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">stages</span><span class="o">=</span><span class="p">[</span><span class="mi">13</span><span class="p">,</span><span class="mi">14</span><span class="p">,</span><span class="mi">15</span><span class="p">],</span><span class="n">tRange</span><span class="o">=</span><span class="p">[</span><span class="mf">1.e+6</span><span class="p">,</span> <span class="mf">6.e+6</span><span class="p">],</span> <span class="n">yr</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1.e-2</span><span class="p">,</span> <span class="mf">0.4</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>produces a plot of the ionization equilibria of Fe XIII, XIV and XV over a limited temperature range (tRange) and vertical range (yr)</p>
<img alt="_images/fe_13_14_15_ioneq.png" src="_images/fe_13_14_15_ioneq.png" />
<p>from this it is clear that Fe XIV (fe_14) is formed at temperatures near <span class="math notranslate nohighlight">\(2 \times 10^6\)</span> K</p>
</div>
<div class="section" id="intensity-ratios">
<h2>Intensity Ratios<a class="headerlink" href="#intensity-ratios" title="Permalink to this headline">¶</a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">5.8</span> <span class="o">+</span> <span class="mf">0.05</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mf">21.</span><span class="p">))</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="s1">'fe_14'</span><span class="p">,</span> <span class="n">temperature</span> <span class="o">=</span> <span class="n">temp</span><span class="p">,</span> <span class="n">eDensity</span> <span class="o">=</span> <span class="n">dens</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span><span class="o">.</span><span class="n">intensityRatio</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">210.</span><span class="p">,</span> <span class="mf">225.</span><span class="p">])</span>
</pre></div>
</div>
<p>this brings up a plot showing the relative emissivities on the Fe XIV lines</p>
<img alt="_images/fe14.int.vs.t.png" class="align-center" src="_images/fe14.int.vs.t.png" />
<p>following by a dialog where you can selector the numerator(s) and denominator(s) of the desired intensity ratio</p>
<img alt="_images/2.selector.png" class="align-center" src="_images/2.selector.png" />
<p>so the specified ratio is then plotted</p>
<img alt="_images/fe14.int.ratio.vs.t.png" class="align-center" src="_images/fe14.int.ratio.vs.t.png" />
<p>if previously, we had done</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dens</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">6.</span> <span class="o">+</span> <span class="mf">0.1</span><span class="o">*</span><span class="n">arange</span><span class="p">(</span><span class="mi">61</span><span class="p">))</span>
<span class="n">fe14</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="s1">'fe_14'</span><span class="p">,</span> <span class="mf">2.e+6</span><span class="p">,</span> <span class="n">dens</span><span class="p">)</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">intensityRatio</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">210.</span><span class="p">,</span> <span class="mf">225.</span><span class="p">])</span>
</pre></div>
</div>
<p>then the plot of relative intensities vs density would appear</p>
<img alt="_images/fe14.int.vs.d.png" class="align-center" src="_images/fe14.int.vs.d.png" />
<p>the same numerator/denominator selector dialog would come up and when 2 or more lines are selected, the intensity ratio versus density appears.</p>
<img alt="_images/fe14.int.ratio.vs.d.png" class="align-center" src="_images/fe14.int.ratio.vs.d.png" />
<p>to obtain ratios of lines widely separated in wavelength, the wvlRanges keyword can be used:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe12</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="s1">'fe_12'</span><span class="p">,</span> <span class="n">temperature</span><span class="o">=</span><span class="n">t</span><span class="p">,</span> <span class="n">eDensity</span><span class="o">=</span><span class="mf">1.e+9</span>
<span class="n">fe12</span><span class="o">.</span><span class="n">intensityRatio</span><span class="p">(</span><span class="n">wvlRanges</span><span class="o">=</span><span class="p">[[</span><span class="mf">190.</span><span class="p">,</span><span class="mf">200.</span><span class="p">],[</span><span class="mf">1240.</span><span class="p">,</span><span class="mf">1250.</span><span class="p">]])</span>
</pre></div>
</div>
<img alt="_images/fe_12_wvlranges_ratio.png" class="align-center" src="_images/fe_12_wvlranges_ratio.png" />
</div>
<div class="section" id="spectra-of-a-single-ion">
<h2>Spectra of a single ion<a class="headerlink" href="#spectra-of-a-single-ion" title="Permalink to this headline">¶</a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="s1">'fe_14'</span><span class="p">,</span> <span class="n">temperature</span> <span class="o">=</span> <span class="mf">2.e+6</span><span class="p">,</span> <span class="n">density</span> <span class="o">=</span> <span class="mf">1.e+9</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">wvl</span> <span class="o">=</span> <span class="n">wvl</span><span class="o">=</span><span class="mf">200.</span> <span class="o">+</span> <span class="mf">0.125</span><span class="o">*</span><span class="n">arange</span><span class="p">(</span><span class="mi">801</span><span class="p">)</span>
</pre></div>
</div>
<dl class="simple">
<dt>::</dt><dd><p>fe14.spectrum(wvl, em=1.e+27)</p>
</dd>
</dl>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">])</span>
<span class="n">xy</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">()</span>
<span class="n">xy</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mf">200.</span><span class="p">,</span> <span class="mf">300.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">400.</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'xlabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'ylabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>this will calculate the spectrum of fe_14 over the specified wavelength range and filter it with the default filter which is a gaussian (filters.gaussianR) with a ‘resolving power’ of 1000 which gives a gaussian width of wvl/1000.</p>
<img alt="_images/fe14_spectrum.png" class="align-center" src="_images/fe14_spectrum.png" />
<p>other filters available in chianti.tools.filters include a boxcar filter and a gaussian filter where the width can be specified directly</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">fe14</span><span class="p">,</span><span class="s1">'Em'</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">' Emission Measure = </span><span class="si">%12.2e</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Em</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">' the value for the emission measure is unspecified'</span><span class="p">)</span>
</pre></div>
</div>
<p>Emission Measure = 1.00e+27</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">chianti.tools.filters</span> <span class="k">as</span> <span class="nn">chfilters</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">spectrum</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="nb">filter</span><span class="o">=</span><span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="o">.</span><span class="mi">04</span><span class="p">))</span>
</pre></div>
</div>
<p>calculates the spectrum of fe_14 for a gaussian filter with a width of 0.04 Angstroms.
The current value of the spectrum is kept in fe14.Spectrum with the following keys:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">akey</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">' </span><span class="si">%10s</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">akey</span><span class="p">))</span>
</pre></div>
</div>
<p>allLines
em
filter
filterWidth
intensity
wvl
xlabel
ylabel</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'xlabel'</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'ylabel'</span><span class="p">])</span>
</pre></div>
</div>
<img alt="_images/fe14_spectrum2.png" class="align-center" src="_images/fe14_spectrum2.png" />
<p>As of <strong>ChiantiPy 0.14.0</strong>, the <strong>ion</strong> class inherits the spectrumPlot method.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">wvlRange</span> <span class="o">=</span> <span class="p">[</span><span class="n">wvl</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">wvl</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="n">wvlRange</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
</pre></div>
</div>
<img alt="_images/fe14_spectrumPlot.png" class="align-center" src="_images/fe14_spectrumPlot.png" />
<p>Also in 0.14.0 is the saveData method and the redux class. Using the <strong>saveData</strong> method, the calculations can be save and the restored later with the <strong>redux</strong> class</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">saveName</span> <span class="o">=</span> <span class="s1">'fe14_save.pkl'</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">saveData</span><span class="p">(</span><span class="n">saveName</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<p>the attributes are used to create a dict and saved as a pickle file. If verbose is set to True, these attributes are listed</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">saveName</span><span class="p">,</span><span class="s1">'rb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">inpt</span><span class="p">:</span>
<span class="n">fe14Dict</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">inpt</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">akey</span> <span class="ow">in</span> <span class="n">fe14Dict</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">' key = </span><span class="si">%s</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">akey</span><span class="p">))</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">akey</span> <span class="ow">in</span> <span class="n">fe14Dict</span><span class="p">[</span><span class="s1">'Spectrum'</span><span class="p">]:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">' key = </span><span class="si">%s</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">akey</span><span class="p">))</span>
</pre></div>
</div>
<p>it is possible to work directly with the saved data</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">fe14Dict</span><span class="p">[</span><span class="s1">'Spectrum'</span><span class="p">][</span><span class="s1">'wavelength'</span><span class="p">],</span> <span class="n">fe14Dict</span><span class="p">[</span><span class="s1">'Spectrum'</span><span class="p">][</span><span class="s1">'intensity'</span><span class="p">])</span>
</pre></div>
</div>
<p>with version 0.14.0, there is a new class, <strong>redux</strong></p>
<p>with this class, the saved data can be restored and all of the apprpriated inherited methods are available</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rdx</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">redux</span><span class="p">(</span><span class="n">saveName</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<p>The save data are loaded as attributes. With verbose=True, they are listed</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rdx</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="n">wvlRange</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
</pre></div>
</div>
<p>Returns the previous plot</p>
<p>New in <strong>ChiantiPy 0.6</strong>, the <em>label</em> keyword has been added to the ion.spectrum method, and also to the other various spectral classes. This allows several spectral calculations for different filters to be saved and compared. However, when the <em>label</em> keyword is specified, the intensityPlot and spectrumPlot methods do not work, as of version 0.14.0</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">5.8</span> <span class="o">+</span> <span class="mf">0.1</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mf">11.</span><span class="p">))</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">fe14</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="s1">'fe_14'</span><span class="p">,</span> <span class="n">temp</span><span class="p">,</span> <span class="n">dens</span><span class="p">)</span>
<span class="n">emeas</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span><span class="s1">'float64'</span><span class="p">)</span><span class="o">*</span><span class="mf">1.e+27</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="mf">200.</span> <span class="o">+</span> <span class="mf">0.125</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">801</span><span class="p">)</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">spectrum</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="nb">filter</span><span class="o">=</span><span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="o">.</span><span class="mi">4</span><span class="p">),</span><span class="n">label</span><span class="o">=</span><span class="s1">'.4'</span><span class="p">,</span><span class="n">em</span><span class="o">=</span><span class="n">emeas</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'0.4'</span><span class="p">)</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">spectrum</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="nb">filter</span><span class="o">=</span><span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="mf">1.</span><span class="p">),</span><span class="n">label</span><span class="o">=</span><span class="s1">'1.'</span><span class="p">,</span> <span class="n">label</span><span class="o">-</span><span class="s1">'1.0'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'.4'</span><span class="p">][</span><span class="s1">'intensity'</span><span class="p">][</span><span class="mi">5</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'1.'</span><span class="p">][</span><span class="s1">'intensity'</span><span class="p">][</span><span class="mi">5</span><span class="p">],</span><span class="s1">'-r'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'.4'</span><span class="p">][</span><span class="s1">'xlabel'</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="n">fe14</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'.4'</span><span class="p">][</span><span class="s1">'ylabel'</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">'upper right'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<img alt="_images/fe14_spectrum_label.png" class="align-center" src="_images/fe14_spectrum_label.png" />
</div>
<div class="section" id="using-emission-measures-em">
<h2>Using emission measures (EM)<a class="headerlink" href="#using-emission-measures-em" title="Permalink to this headline">¶</a></h2>
<p>the line-of-sight emission measure is given by <span class="math notranslate nohighlight">\(\mathrm{\int \, n_e \, n_H \, dl}\)</span> (<span class="math notranslate nohighlight">\(\mathrm{cm}^{-5}\)</span>)</p>
<p>the volumetric emission measure is give by <span class="math notranslate nohighlight">\(\mathrm{\int \, n_e \, n_H \, dV}\)</span> (<span class="math notranslate nohighlight">\(\mathrm{cm^{-3}}\)</span>)</p>
<p>where the integrations are performed over the source region</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">emDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'XUVTOP'</span><span class="p">],</span> <span class="s1">'em'</span><span class="p">)</span>
<span class="n">emList</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">emDir</span><span class="p">)</span>
<span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">emFile</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">emList</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%i</span><span class="s1"> </span><span class="si">%s</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">idx</span><span class="p">,</span> <span class="n">emFile</span><span class="p">))</span>
</pre></div>
</div>
<p>the following is printed</p>
<div class="line-block">
<div class="line">0 quiet_sun_1993_serts_4T.em</div>
<div class="line">1 active_region_1993_serts_4T.em</div>
</div>
<p>Beginning with CHIANTI version 10, a new directory, em, as been added to contain emission measure files.</p>
<p>At this time, there only 2 files available and we can pick the active region file</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">arDict</span> <span class="o">=</span> <span class="n">chio</span><span class="o">.</span><span class="n">emRead</span><span class="p">(</span><span class="n">emList</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
<span class="n">arDict</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
</pre></div>
</div>
<p>dict_keys([‘temperature’, ‘density’, ‘em’, ‘ref’, ‘filename’])</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">arTemp</span> <span class="o">=</span> <span class="n">arDict</span><span class="p">[</span><span class="s1">'temperature'</span><span class="p">]</span>
<span class="n">arDens</span> <span class="o">=</span> <span class="n">arDict</span><span class="p">[</span><span class="s1">'density'</span><span class="p">]</span>
<span class="n">arEm</span> <span class="o">=</span> <span class="n">arDict</span><span class="p">[</span><span class="s1">'em'</span><span class="p">]</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">atemp</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">arTemp</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%i</span><span class="s1"> </span><span class="si">%10.2e</span><span class="s1"> </span><span class="si">%10.2e</span><span class="s1"> </span><span class="si">%10.2e</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">idx</span><span class="p">,</span> <span class="n">atemp</span><span class="p">,</span> <span class="n">arDens</span><span class="p">[</span><span class="n">idx</span><span class="p">],</span> <span class="n">arEm</span><span class="p">[</span><span class="n">idx</span><span class="p">]))</span>
</pre></div>
</div>
<div class="line-block">
<div class="line">0 6.17e+05 2.00e+09 4.97e+26</div>
<div class="line">1 1.12e+06 2.00e+09 2.09e+27</div>
<div class="line">2 1.86e+06 2.00e+09 7.89e+27</div>
<div class="line">3 3.16e+06 2.00e+09 1.46e+28</div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fe14</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="s1">'fe_14'</span><span class="p">,</span> <span class="n">arTemp</span><span class="p">,</span> <span class="n">arDens</span><span class="p">,</span> <span class="n">em</span><span class="o">=</span><span class="n">arEm</span><span class="p">)</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">200.</span><span class="p">,</span> <span class="mf">300.</span><span class="p">,</span> <span class="mi">10001</span><span class="p">)</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">spectrum</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="nb">filter</span><span class="o">=</span><span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span> <span class="o">.</span><span class="mi">03</span><span class="p">))</span>
<span class="n">fe14</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">264.</span><span class="p">,</span> <span class="mf">275.</span><span class="p">],</span> <span class="n">integrated</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">top</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
</pre></div>
</div>
<img alt="_images/fe14_integrated_spectrum_label.png" class="align-center" src="_images/fe14_integrated_spectrum_label.png" />
</div>
<div class="section" id="free-free-and-free-bound-continuum">
<h2>Free-free and free-bound continuum<a class="headerlink" href="#free-free-and-free-bound-continuum" title="Permalink to this headline">¶</a></h2>
<p>The module continuum provides the ability to calculate the free-free and free-bound spectrum for a large number of individual ions. The two-photon continuum is produced only by the hydrogen-like and helium-like ions</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">myIon</span> <span class="o">=</span> <span class="s1">'fe_25'</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temperature</span> <span class="o">=</span> <span class="p">[</span><span class="mf">2.e+7</span><span class="p">,</span> <span class="mf">3.e+7</span><span class="p">,</span> <span class="mf">6.e+7</span><span class="p">]</span>
<span class="n">density</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">em</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1.e+27</span><span class="p">,</span> <span class="mf">1.e+27</span><span class="p">,</span> <span class="mf">1.e+27</span><span class="p">]</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">+</span> <span class="mf">0.002</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">4501</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">c</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">continuum</span><span class="p">(</span><span class="n">myIon</span><span class="p">,</span> <span class="n">temperature</span> <span class="o">=</span> <span class="n">temperature</span><span class="p">,</span> <span class="n">em</span><span class="o">=</span><span class="n">em</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">freeFree</span><span class="p">(</span><span class="n">wvl</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">freeBound</span><span class="p">(</span><span class="n">wvl</span><span class="p">)</span>
<span class="n">fe25</span><span class="o">=</span><span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="n">myIon</span><span class="p">,</span> <span class="n">temperature</span><span class="p">,</span> <span class="n">density</span><span class="p">,</span> <span class="n">em</span><span class="o">=</span><span class="n">em</span><span class="p">)</span>
<span class="n">fe25</span><span class="o">.</span><span class="n">twoPhoton</span><span class="p">(</span><span class="n">wvl</span><span class="p">)</span>
<span class="n">total</span> <span class="o">=</span> <span class="n">c</span><span class="o">.</span><span class="n">FreeFree</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">itemp</span><span class="p">]</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">FreeBound</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">itemp</span><span class="p">]</span> <span class="o">+</span> <span class="n">fe25</span><span class="o">.</span><span class="n">TwoPhoton</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">itemp</span><span class="p">]</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">itemp</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">FreeFree</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">itemp</span><span class="p">],</span><span class="n">label</span><span class="o">=</span><span class="s1">'ff'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">FreeBound</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">itemp</span><span class="p">],</span><span class="n">label</span><span class="o">=</span><span class="s1">'fb'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="n">fe25</span><span class="o">.</span><span class="n">TwoPhoton</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">itemp</span><span class="p">],</span><span class="n">label</span><span class="o">=</span><span class="s1">'2 photon'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">total</span><span class="p">,</span> <span class="s1">'k'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'total'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">FreeFree</span><span class="p">[</span><span class="s1">'xlabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">FreeFree</span><span class="p">[</span><span class="s1">'ylabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">'upper right'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">' </span><span class="si">%s</span><span class="s1"> T = </span><span class="si">%10.2e</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">fe25</span><span class="o">.</span><span class="n">IonStr</span><span class="p">,</span> <span class="n">temperature</span><span class="p">[</span><span class="n">itemp</span><span class="p">]),</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">bottom</span><span class="o">=</span><span class="mf">0.</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="n">wvl</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span>
</pre></div>
</div>
<p>produces</p>
<img alt="_images/fe_25_ff_fb_tp_2e7_1_10.png" class="align-center" src="_images/fe_25_ff_fb_tp_2e7_1_10.png" />
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">myIon</span> <span class="o">=</span> <span class="s1">'o_8'</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temperature</span> <span class="o">=</span> <span class="p">[</span><span class="mf">3.e+6</span><span class="p">,</span> <span class="mf">6.e+6</span><span class="p">]</span>
<span class="n">density</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">em</span> <span class="o">=</span> <span class="p">[</span><span class="mf">2.e+27</span><span class="p">,</span><span class="mf">1.e+27</span><span class="p">]</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="mf">2.</span> <span class="o">+</span> <span class="mf">0.2</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">701</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">c</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">continuum</span><span class="p">(</span><span class="n">myIon</span><span class="p">,</span> <span class="n">temperature</span> <span class="o">=</span> <span class="n">temperature</span><span class="p">,</span> <span class="n">em</span><span class="o">=</span><span class="n">em</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">freeFree</span><span class="p">(</span><span class="n">wvl</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">freeBound</span><span class="p">(</span><span class="n">wvl</span><span class="p">)</span>
<span class="n">o8</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ion</span><span class="p">(</span><span class="n">myIon</span><span class="p">,</span> <span class="n">temperature</span><span class="p">,</span> <span class="n">density</span><span class="p">,</span> <span class="n">em</span><span class="o">=</span><span class="n">em</span><span class="p">)</span>
<span class="n">o8</span><span class="o">.</span><span class="n">twoPhoton</span><span class="p">(</span><span class="n">wvl</span><span class="p">)</span>
<span class="n">total</span> <span class="o">=</span> <span class="n">c</span><span class="o">.</span><span class="n">FreeFree</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">itemp</span><span class="p">]</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">FreeBound</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">itemp</span><span class="p">]</span> <span class="o">+</span> <span class="n">o8</span><span class="o">.</span><span class="n">TwoPhoton</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">itemp</span><span class="p">]</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">itemp</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">semilogy</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">FreeFree</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">index</span><span class="p">],</span><span class="n">label</span><span class="o">=</span><span class="s1">'ff'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">semilogy</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">FreeBound</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">index</span><span class="p">],</span><span class="n">label</span><span class="o">=</span><span class="s1">'fb'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">semilogy</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="n">o8</span><span class="o">.</span><span class="n">TwoPhoton</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="n">index</span><span class="p">],</span><span class="n">label</span><span class="o">=</span><span class="s1">'2 photon'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">total</span><span class="p">[</span><span class="n">itemp</span><span class="p">],</span> <span class="s1">'k'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'total'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">bottom</span><span class="o">=</span><span class="mf">1.e-4</span><span class="p">,</span> <span class="n">top</span><span class="o">=</span><span class="mf">1.</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">FreeFree</span><span class="p">[</span><span class="s1">'xlabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">FreeFree</span><span class="p">[</span><span class="s1">'ylabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">' </span><span class="si">%s</span><span class="s1"> T = </span><span class="si">%10.2e</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">o8</span><span class="o">.</span><span class="n">IonStr</span><span class="p">,</span> <span class="n">temperature</span><span class="p">[</span><span class="n">itemp</span><span class="p">]),</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">'upper right'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>produces</p>
<img alt="_images/o_8_ff_fb_tp_total_3e6_1_100.png" class="align-center" src="_images/o_8_ff_fb_tp_total_3e6_1_100.png" />
<p>In the continuum calculations, the specified ion, Fe XXV in this case, is the target ion for the free-free calculation. For the free-bound calculation, specified ion is also the target ion. In this case, the radiative recombination spectrum of Fe XXV recombining to form Fe XXIV is returned.</p>
</div>
<div class="section" id="the-multi-ion-class-bunch">
<h2>The multi-ion class Bunch<a class="headerlink" href="#the-multi-ion-class-bunch" title="Permalink to this headline">¶</a></h2>
<p>The multi-ion class <strong>bunch</strong> [new in v0.6] inherits a number of the same methods inherited by the ion class, for example <em>intensityList</em>, <em>intensityRatio</em>, and <em>intensityRatioSave</em>. As a short demonstration of its usefulness, Widing and Feldman (1989, ApJ, 344, 1046) used line ratios of Mg VI and Ne VI as diagnostics of elemental abundance variations in the solar atmosphere. For that to be accurate, it is necessary that the lines of the two ions have the same temperature response.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">5.0</span><span class="o">+</span><span class="mf">0.1</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">11</span><span class="p">))</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">wvlRange</span> <span class="o">=</span> <span class="p">[</span><span class="n">wvl</span><span class="o">.</span><span class="n">min</span><span class="p">(),</span><span class="n">wvl</span><span class="o">.</span><span class="n">max</span><span class="p">()]</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bnch</span><span class="o">=</span><span class="n">ch</span><span class="o">.</span><span class="n">bunch</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span> <span class="mf">1.e+9</span><span class="p">,</span> <span class="n">wvlRange</span><span class="o">=</span><span class="n">wvlRange</span><span class="p">,</span> <span class="n">ionList</span><span class="o">=</span><span class="p">[</span><span class="s1">'ne_6'</span><span class="p">,</span><span class="s1">'mg_6'</span><span class="p">],</span> <span class="n">abundance</span><span class="o">=</span><span class="s1">'unity'</span><span class="p">,</span> <span class="n">em</span><span class="o">=</span><span class="mf">1.e+27</span><span class="p">)</span>
<span class="n">bnch</span><span class="o">.</span><span class="n">intensityRatio</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">395.</span><span class="p">,</span><span class="mf">405.</span><span class="p">],</span> <span class="n">top</span><span class="o">=</span><span class="mi">7</span><span class="p">)</span>
</pre></div>
</div>
<p>produces and initial plot of the selected lines, a selection widget and finally a plot of the ratio</p>
<img alt="_images/ne6_mg6_t_ratio_top7.png" class="align-center" src="_images/ne6_mg6_t_ratio_top7.png" />
<img alt="_images/bunch_selector.png" class="align-center" src="_images/bunch_selector.png" />
<img alt="_images/ne6_mg6_t_ratio.png" class="align-center" src="_images/ne6_mg6_t_ratio.png" />
<p>there seems to be a significant temperature dependence to the ratio, even though both are formed near 4.e+5 K.</p>
<p>The intensityPlot method can also be used with the bunch class</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bnch</span><span class="o">.</span><span class="n">intensityPlot</span><span class="p">(</span><span class="n">index</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">398.</span><span class="p">,</span> <span class="mf">404.</span><span class="p">])</span>
</pre></div>
</div>
<p>results in</p>
<img alt="_images/bunch_intensityPlot.png" class="align-center" src="_images/bunch_intensityPlot.png" />
<p>with version 0.13.0 it is possible to save multi-ion calculations as a pickle file with the saveData method</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dataName</span> <span class="o">=</span> <span class="s1">'mybunch.pkl'</span>
<span class="n">bnch</span><span class="o">.</span><span class="n">saveData</span><span class="p">(</span><span class="n">dataName</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<p>the saveData method creates a dict of all of the attributes of the bnch instance. The pickle file can be loaded an it is possible to work directly with the data.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">dataName</span><span class="p">,</span> <span class="s1">'rb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">inpt</span><span class="p">:</span>
<span class="n">mybnch</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">inpt</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mybnch</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mybnch</span><span class="p">[</span><span class="s1">'Intensity'</span><span class="p">][</span><span class="s1">'intensity'</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span>
</pre></div>
</div>
<p>with version 0.14.1, the redux class is introduced to allow the use of the pickled data inside a class that inherits such methods as intensityPlot and spectrumPlot</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rebnch</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">redux</span><span class="p">(</span><span class="n">dataName</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rebnch</span><span class="o">.</span><span class="n">intensityPlot</span><span class="p">(</span><span class="n">index</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">398.</span><span class="p">,</span> <span class="mf">404.</span><span class="p">])</span>
</pre></div>
</div>
<p>then returns the above plot</p>
<p>A new keyword argument <strong>keepIons</strong> has been added in v0.6 to the bunch and the 3 spectrum classes. It should be used with some care as it can lead to very large instances in the case of a large number of ions, temperature, or densities.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">5.0</span><span class="o">+</span><span class="mf">0.2</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">6</span><span class="p">))</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dwvl</span> <span class="o">=</span> <span class="mf">0.01</span>
<span class="n">nwvl</span> <span class="o">=</span> <span class="p">(</span><span class="mf">406.</span><span class="o">-</span><span class="mf">394.</span><span class="p">)</span><span class="o">/</span><span class="n">dwvl</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="mf">394.</span> <span class="o">+</span> <span class="n">dwvl</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">nwvl</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bnch2</span><span class="o">=</span><span class="n">ch</span><span class="o">.</span><span class="n">bunch</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span> <span class="mf">1.e+9</span><span class="p">,</span> <span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="n">wvl</span><span class="o">.</span><span class="n">min</span><span class="p">(),</span><span class="n">wvl</span><span class="o">.</span><span class="n">max</span><span class="p">()],</span> <span class="n">elementList</span><span class="o">=</span><span class="p">[</span><span class="s1">'ne'</span><span class="p">,</span><span class="s1">'mg'</span><span class="p">],</span> \
<span class="n">keepIons</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">em</span><span class="o">=</span><span class="mf">1.e+27</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bnch2</span><span class="o">.</span><span class="n">convolve</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="nb">filter</span><span class="o">=</span><span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="mf">5.</span><span class="o">*</span><span class="n">dwvl</span><span class="p">))</span>
</pre></div>
</div>
<p>elapsed seconds = 11.000</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">one</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">bnch2</span><span class="o">.</span><span class="n">IonInstances</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">one</span><span class="p">))</span>
</pre></div>
</div>
<p>yields:</p>
<div class="line-block">
<div class="line">mg_10</div>
<div class="line">mg_10d</div>
<div class="line">mg_3</div>
<div class="line">mg_4</div>
<div class="line">mg_5</div>
<div class="line">mg_6</div>
<div class="line">mg_8</div>
<div class="line">mg_9</div>
<div class="line">ne_10</div>
<div class="line">ne_2</div>
<div class="line">ne_3</div>
<div class="line">ne_5</div>
<div class="line">ne_6</div>
<div class="line">ne_8</div>
</div>
<p>these IonInstances have all the properties of the Ion class for each of these ions. However, this should be used with some caution as it can result in a memory-hogging instance.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bnch2</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">integrated</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">doLabel</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="n">bnch2</span><span class="o">.</span><span class="n">IonInstances</span><span class="p">[</span><span class="s1">'mg_6'</span><span class="p">]</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'integrated'</span><span class="p">],</span><span class="s1">'r'</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s1">'mg_6'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="mf">398.</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="mf">404.</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">'upper left'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
</pre></div>
</div>
<p>produces</p>
<img alt="_images/bunch_spectrum_integrated_mg6.png" class="align-center" src="_images/bunch_spectrum_integrated_mg6.png" />
<p>The spectrumPlot method can also be used with bunch after convolve is run</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bnch2</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="mi">7</span><span class="p">)</span>
</pre></div>
</div>
<img alt="_images/bunch_spectrumPlot.png" class="align-center" src="_images/bunch_spectrumPlot.png" />
</div>
<div class="section" id="spectra-of-multiple-ions-and-continuum">
<h2>Spectra of multiple ions and continuum<a class="headerlink" href="#spectra-of-multiple-ions-and-continuum" title="Permalink to this headline">¶</a></h2>
<p>the spectrum for all ions in the CHIANTI database can also be calculated</p>
<p>The spectrum for a selection of all of the ions in the CHIANTI database can also be calculated. There are 3 spectral classes.</p>
<ul class="simple">
<li><p><strong>spectrum</strong> - the single processor implementation that can be used anywhere</p></li>
<li><p><strong>mspectrum</strong> - uses the Python multiprocessing class and cannot be used in a IPython qtconsole or notebook</p></li>
<li><p><strong>ipymspectrum</strong> [new in v0.6] - uses the IPython parallel class and can be used in a IPython qtconsole or notebook</p></li>
</ul>
<p>As of version 0.13.0, it is now possible to save the calculations with the <strong>saveData</strong> methods, demonstrated with the bunch class above</p>
<div class="section" id="the-single-processor-spectrum-class">
<h3>The single processor spectrum class<a class="headerlink" href="#the-single-processor-spectrum-class" title="Permalink to this headline">¶</a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temperature</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1.e+6</span><span class="p">,</span> <span class="mf">2.e+6</span><span class="p">]</span>
<span class="n">density</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="mf">200.</span> <span class="o">+</span> <span class="mf">0.05</span><span class="o">*</span><span class="n">arange</span><span class="p">(</span><span class="mi">2001</span><span class="p">)</span>
<span class="n">emeasure</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1.e+27</span> <span class="p">,</span><span class="mf">1.e+27</span><span class="p">]</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">spectrum</span><span class="p">(</span><span class="n">temperature</span><span class="p">,</span> <span class="n">density</span><span class="p">,</span> <span class="n">wvl</span><span class="p">,</span> <span class="nb">filter</span> <span class="o">=</span> <span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="o">.</span><span class="mi">2</span><span class="p">),</span> <span class="n">em</span> <span class="o">=</span> <span class="n">emeasure</span><span class="p">,</span> <span class="n">doContinuum</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">minAbund</span><span class="o">=</span><span class="mf">1.e-5</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">subplot</span><span class="p">(</span><span class="mi">311</span><span class="p">)</span>
<span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">s</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'integrated'</span><span class="p">])</span>
<span class="n">subplot</span><span class="p">(</span><span class="mi">312</span><span class="p">)</span>
<span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">s</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
<span class="n">subplot</span><span class="p">(</span><span class="mi">313</span><span class="p">)</span>
<span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">s</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span>
</pre></div>
</div>
<p>produces</p>
<img alt="_images/spectrum_200_300_3panel.png" class="align-center" src="_images/spectrum_200_300_3panel.png" />
<p>The integrated spectrum is formed by summing the spectra for all temperatures.</p>
<blockquote>
<div><ul class="simple">
<li><p>For minAbund=1.e-6, the calculatation takes 209 s on a 3.5 GHz processor.</p></li>
<li><p>For minAbund=1.e-5, the calculatation takes 122 s on a 3.5 GHz processor.</p></li>
</ul>
</div></blockquote>
<p>The filter is not applied to the continuum.</p>
<p>Save the calculations</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">saveName</span> <span class="o">=</span> <span class="s1">'spectrum.pkl'</span>
<span class="n">s</span><span class="o">.</span><span class="n">saveData</span><span class="p">(</span><span class="n">saveName</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<p>The spectrumPlot method is also available</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">integrated</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<p>yields</p>
<img alt="_images/spectrum_spectrumPlot.png" class="align-center" src="_images/spectrum_spectrumPlot.png" />
<p>One can return to the saved data at a later date and reload it with the redux class</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rdx</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">redux</span><span class="p">(</span><span class="n">saveName</span><span class="p">)</span>
</pre></div>
</div>
<p>The inherited spectrumPlot is again available</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rdx</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">index</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
</div>
<p>produces a figure like above</p>
<p>Calculations with the Spectrum module can be time consuming. One way to control the length of time the calculations take is to limit the number of ions with the ionList keyword and to avoid the continuum calculations by setting the doContinuum keyword to 0 or False. Another way to control the length of time the calculations take is with the minAbund keyword. It sets the minimum elemental abundance that an element can have for its spectra to be calculated. The default value is set include all elements. Some usefull values of minAbund are:</p>
<blockquote>
<div><ul class="simple">
<li><p>minAbund = 1.e-4, will include H, He, C, O, Ne</p></li>
<li><p>minAbund = 2.e-5 adds N, Mg, Si, S, Fe</p></li>
<li><p>minAbund = 1.e-6 adds Na, Al, Ar, Ca, Ni</p></li>
</ul>
</div></blockquote>
</div>
<div class="section" id="the-multiple-processor-mspectrum-class">
<h3>The multiple processor mspectrum class<a class="headerlink" href="#the-multiple-processor-mspectrum-class" title="Permalink to this headline">¶</a></h3>
<p>Another way to speed up calculations is to use the <em>mspectrum</em> class which uses multiple cores on your local computer. It requires the Python <em>multiprocessing</em> module which is available with Python versions 2.6 and later. <em>mspectrum</em> is called in the same way as <em>spectrum</em> but you can specify the number of cores with the <em>proc</em> keyword. The default is 3 but it will not use more cores than are available on your machine. For example,</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1.e+7</span><span class="p">,</span> <span class="mf">2.e+7</span><span class="p">,</span> <span class="mf">3.e+7</span><span class="p">]</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">1.5</span><span class="p">,</span> <span class="mf">4.</span><span class="p">,</span> <span class="mi">10001</span><span class="p">)</span>
<span class="n">emeasure</span> <span class="o">=</span> <span class="mf">1.e+27</span>
<span class="n">core</span><span class="o">=</span><span class="mi">6</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dwvl</span> <span class="o">=</span> <span class="n">wvl</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">wvl</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="s1">' dwvl: </span><span class="si">%8.4f</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">dwvl</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sm</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">mspectrum</span><span class="p">(</span><span class="n">temperature</span><span class="p">,</span> <span class="n">density</span> <span class="p">,</span><span class="n">wvl</span><span class="p">,</span> <span class="n">em</span><span class="o">=</span><span class="n">emeasure</span><span class="p">,</span> <span class="nb">filter</span> <span class="o">=</span> <span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span> <span class="mf">5.</span><span class="o">*</span><span class="n">dwvl</span><span class="p">),</span> <span class="n">proc</span><span class="o">=</span><span class="n">core</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sm</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">1.84</span><span class="p">,</span> <span class="mf">1.88</span><span class="p">],</span> <span class="n">index</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
<p>yields</p>
<img alt="_images/mspectrum_spectrumPlot_fe.png" class="align-center" src="_images/mspectrum_spectrumPlot_fe.png" />
<p>another example</p>
</div>
</div>
<div class="section" id="using-differential-emission-measures-dem">
<h2>Using differential emission measures (DEM)<a class="headerlink" href="#using-differential-emission-measures-dem" title="Permalink to this headline">¶</a></h2>
<p>Beginning with CHIANTI version 14.1, the io.demRead function has been added to read dem file in the existing XUVTOP/dem directory</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">demDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'XUVTOP'</span><span class="p">],</span> <span class="s1">'dem'</span><span class="p">)</span>
<span class="n">demList</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">demDir</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">demFile</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">demList</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="si">%i</span><span class="s1"> </span><span class="si">%s</span><span class="s1">'</span><span class="o">%</span><span class="p">(</span><span class="n">idx</span><span class="p">,</span> <span class="n">demFile</span><span class="p">))</span>
</pre></div>
</div>
<p>produces</p>
<div class="line-block">
<div class="line">0 quiet_sun_eis.dem</div>
<div class="line">1 version_3</div>
<div class="line">2 coronal_hole.dem</div>
<div class="line">3 flare.dem</div>
<div class="line">4 flare_ext.dem</div>
<div class="line">5 AU_Mic.dem</div>
<div class="line">6 quiet_sun.dem</div>
<div class="line">7 active_region.dem</div>
<div class="line">8 prominence.dem</div>
</div>
<p>select the desired file by index</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">flDict</span> <span class="o">=</span> <span class="n">chio</span><span class="o">.</span><span class="n">demRead</span><span class="p">(</span><span class="n">demList</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">flDict</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
</pre></div>
</div>
<p>dict_keys([‘temperature’, ‘density’, ‘dem’, ‘em’, ‘dt’, ‘ref’, ‘filename’])</p>
<p>since we will be looking at X-ray wavelengths, select only the highest temperatures</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">flTemp</span> <span class="o">=</span> <span class="n">flDict</span><span class="p">[</span><span class="s1">'temperature'</span><span class="p">][</span><span class="mi">20</span><span class="p">:]</span>
<span class="n">flDens</span> <span class="o">=</span> <span class="n">flDict</span><span class="p">[</span><span class="s1">'density'</span><span class="p">][</span><span class="mi">20</span><span class="p">:]</span>
<span class="n">flEm</span> <span class="o">=</span> <span class="n">flDict</span><span class="p">[</span><span class="s1">'em'</span><span class="p">][</span><span class="mi">20</span><span class="p">:]</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">wvl</span> <span class="o">=</span> <span class="mf">1.</span> <span class="o">+</span> <span class="mf">0.002</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">4501</span><span class="p">)</span>
<span class="n">core</span> <span class="o">=</span> <span class="mi">6</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s3</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">mspectrum</span><span class="p">(</span><span class="n">flTemp</span><span class="p">,</span> <span class="n">flDens</span><span class="p">,</span> <span class="n">wvl</span><span class="p">,</span> <span class="nb">filter</span> <span class="o">=</span> <span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="o">.</span><span class="mi">015</span><span class="p">),</span> <span class="n">em</span><span class="o">=</span><span class="n">flEm</span><span class="p">,</span> <span class="n">minAbund</span><span class="o">=</span><span class="mf">1.e-5</span><span class="p">,</span> <span class="n">proc</span><span class="o">=</span><span class="n">core</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
</pre></div>
</div>
<div class="section" id="save-the-calculations">
<h3>save the calculations<a class="headerlink" href="#save-the-calculations" title="Permalink to this headline">¶</a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">saveName</span> <span class="o">=</span> <span class="s1">'mspectrum3_dem.pkl'</span>
<span class="n">s3</span><span class="o">.</span><span class="n">saveData</span><span class="p">(</span><span class="n">saveName</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">s3</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">]</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="n">s3</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'xlabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="n">s3</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'ylabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">bottom</span> <span class="o">=</span> <span class="mf">0.</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="n">wvl</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<img alt="_images/mspectrum_1_10.png" class="align-center" src="_images/mspectrum_1_10.png" />
<p>The spectrumPlot method can also be used</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s3</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="mi">6</span><span class="p">)</span>
</pre></div>
</div>
<img alt="_images/mspectrum_spectrumPlot_1_10.png" class="align-center" src="_images/mspectrum_spectrumPlot_1_10.png" />
<p>the default value for doContinuum is True, so, the continuum can be plotted separately</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">s3</span><span class="o">.</span><span class="n">FreeFree</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">],</span> <span class="n">label</span><span class="o">=</span><span class="s1">'FF'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">s3</span><span class="o">.</span><span class="n">FreeBound</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">],</span> <span class="n">label</span><span class="o">=</span><span class="s1">'FB'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">s3</span><span class="o">.</span><span class="n">TwoPhoton</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">],</span> <span class="n">label</span><span class="o">=</span><span class="s1">'2 Photon'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">s3</span><span class="o">.</span><span class="n">Continuum</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">]</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">),</span> <span class="s1">'k'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'Total'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="n">s3</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'xlabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="n">s3</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'ylabel'</span><span class="p">],</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">bottom</span> <span class="o">=</span> <span class="mf">0.</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="n">wvl</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">'upper right'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>produces</p>
<img alt="_images/continuum_flare_dem_1_10.png" class="align-center" src="_images/continuum_flare_dem_1_10.png" />
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s3</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">4.</span><span class="p">,</span> <span class="mf">9.</span><span class="p">],</span> <span class="n">top</span><span class="o">=</span><span class="mi">6</span><span class="p">,</span> <span class="n">integrated</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<p>produces</p>
<img alt="_images/mspectrum_spectrumPlot_4_9.png" class="align-center" src="_images/mspectrum_spectrumPlot_4_9.png" />
</div>
<div class="section" id="with-the-redux-class-the-save-calculations-can-be-restored">
<h3>With the redux class, the save calculations can be restored<a class="headerlink" href="#with-the-redux-class-the-save-calculations-can-be-restored" title="Permalink to this headline">¶</a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s3r</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">redux</span><span class="p">(</span><span class="n">saveName</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<p>the redux class inherits the intensityPlot and spectrumPlot methods as well as a few others</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s3r</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">(</span><span class="n">wvlRange</span><span class="o">=</span><span class="p">[</span><span class="mf">6.</span><span class="p">,</span> <span class="mf">7.</span><span class="p">],</span> <span class="n">integrated</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">top</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
</pre></div>
</div>
<img alt="_images/mspectrum_spectrumPlot_6_7.png" class="align-center" src="_images/mspectrum_spectrumPlot_6_7.png" />
</div>
<div class="section" id="the-multiple-processor-ipymspectrum-class">
<h3>The multiple processor ipymspectrum class<a class="headerlink" href="#the-multiple-processor-ipymspectrum-class" title="Permalink to this headline">¶</a></h3>
<p>next, we will use the ipymspectrum class. First, it is necessary to start up the cluster. In some shell</p>
<p>> ipcluster start –n=4</p>
<p>or, if you are using Python3</p>
<p>> ipcluster3 start –n=4</p>
<p>this will start 4 engines if you have 4 cores but it won’t start more than you have</p>
<p>then in an IPython notebook or qtconsole</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1.e+6</span><span class="p">,</span> <span class="mf">2.e+6</span><span class="p">]</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="mf">200.</span> <span class="o">+</span> <span class="mf">0.05</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">2001</span><span class="p">)</span>
<span class="n">emeasure</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1.e+27</span> <span class="p">,</span><span class="mf">1.e+27</span><span class="p">]</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ipymspectrum</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span> <span class="n">dens</span><span class="p">,</span> <span class="n">wvl</span><span class="p">,</span> <span class="nb">filter</span> <span class="o">=</span> <span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="o">.</span><span class="mi">2</span><span class="p">),</span> \
<span class="n">em</span> <span class="o">=</span> <span class="n">emeasure</span><span class="p">,</span> <span class="n">doContinuum</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">minAbund</span><span class="o">=</span><span class="mf">1.e-5</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span> <span class="n">s</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'integrated'</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">bottom</span><span class="o">=</span><span class="mf">0.</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">([</span><span class="n">wvl</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">wvl</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Integrated'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="n">s</span><span class="o">.</span><span class="n">Xlabel</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="n">s</span><span class="o">.</span><span class="n">Ylabel</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<p>produces</p>
<img alt="_images/spectrum_200_300_integrated.png" class="align-center" src="_images/spectrum_200_300_integrated.png" />
<p>spectrum, mspectrum and ipymspectrum can all be instantiated with the same arguments and keyword arguments. Most of the examples below use the ipymspectrum class for speed.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temperature</span> <span class="o">=</span> <span class="mf">1.e+7</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="mf">10.</span> <span class="o">+</span> <span class="mf">0.005</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">2001</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ipymspectrum</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span> <span class="n">dens</span><span class="p">,</span> <span class="n">wvl</span><span class="p">,</span> <span class="nb">filter</span> <span class="o">=</span> <span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="o">.</span><span class="mi">015</span><span class="p">),</span> \
<span class="n">elementList</span><span class="o">=</span><span class="p">[</span><span class="s1">'fe'</span><span class="p">])</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">()</span>
</pre></div>
</div>
<p>produces</p>
<img alt="_images/spectrum_10_20.png" class="align-center" src="_images/spectrum_10_20.png" />
<p>It is also possible to specify a selection of ions by means of the <em>ionList</em> keyword, for example, <em>ionList=[‘fe_11’,’fe_12’,’fe_13’]</em></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s2</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ipymspectrum</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span> <span class="n">dens</span><span class="p">,</span> <span class="n">wvl</span><span class="p">,</span> <span class="nb">filter</span> <span class="o">=</span> <span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="o">.</span><span class="mi">2</span><span class="p">),</span> \
<span class="n">em</span> <span class="o">=</span> <span class="n">emeasure</span><span class="p">,</span> <span class="n">doContinuum</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">keepIons</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">elementList</span><span class="o">=</span><span class="p">[</span><span class="s1">'si'</span><span class="p">])</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fig</span><span class="p">,</span> <span class="p">[</span><span class="n">ax1</span><span class="p">,</span> <span class="n">ax2</span><span class="p">]</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
<span class="n">ax1</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="n">s2</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
<span class="n">ax1</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="n">bottom</span><span class="o">=</span><span class="mf">0.</span><span class="p">)</span>
<span class="n">ax1</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">([</span><span class="n">wvl</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">wvl</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]])</span>
<span class="n">ax1</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="sa">r</span><span class="s1">'erg cm$^{-2}$ s$^{-1}$ sr$^{-1} \AA^{-1}$'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">ax2</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">wvl</span><span class="p">,</span><span class="n">s2</span><span class="o">.</span><span class="n">IonInstances</span><span class="p">[</span><span class="s1">'si_9'</span><span class="p">]</span><span class="o">.</span><span class="n">Spectrum</span><span class="p">[</span><span class="s1">'intensity'</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
<span class="n">ax2</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="n">bottom</span><span class="o">=</span><span class="mf">0.</span><span class="p">)</span>
<span class="n">ax1</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">([</span><span class="n">wvl</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">wvl</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]])</span>
<span class="n">ax2</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="sa">r</span><span class="s1">'erg cm$^{-2}$ s$^{-1}$ sr$^{-1} \AA^{-1}$'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">ax2</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="sa">r</span><span class="s1">'Wavelength ($\AA$)'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">ax2</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">'Si IX'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">fig</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
</pre></div>
</div>
<img alt="_images/spectrum_200_300_w_si_9.png" class="align-center" src="_images/spectrum_200_300_w_si_9.png" />
<p>Because <strong>keepIons</strong> has been set, the ion instances of all of the ions are maintained in the s2.IonInstances dictionary. It has been possible to compare the spectrum of all of the ions with the spectrum of a single ion. It should be used with some care as it can lead to very large instances in the case of a large number of ions, temperature, or densities.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temperature</span> <span class="o">=</span> <span class="mf">2.e+7</span>
<span class="n">density</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">em</span> <span class="o">=</span> <span class="mf">1.e+27</span>
<span class="n">wvl</span> <span class="o">=</span> <span class="mf">1.84</span> <span class="o">+</span> <span class="mf">0.0001</span><span class="o">*</span><span class="n">arange</span><span class="p">(</span><span class="mi">601</span><span class="p">)</span>
<span class="n">s4</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">ipymspectrum</span><span class="p">(</span><span class="n">temperature</span><span class="p">,</span> <span class="n">density</span> <span class="p">,</span><span class="n">wvl</span><span class="p">,</span> <span class="nb">filter</span> <span class="o">=</span> <span class="p">(</span><span class="n">chfilters</span><span class="o">.</span><span class="n">gaussian</span><span class="p">,</span><span class="o">.</span><span class="mi">0003</span><span class="p">),</span> \
<span class="n">doContinuum</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">minAbund</span><span class="o">=</span><span class="mf">1.e-5</span><span class="p">,</span> <span class="n">em</span><span class="o">=</span><span class="n">em</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s4</span><span class="o">.</span><span class="n">spectrumPlot</span><span class="p">()</span>
</pre></div>
</div>
<p>produces</p>
<img alt="_images/spectrum_2e7_1.84_1.90.png" class="align-center" src="_images/spectrum_2e7_1.84_1.90.png" />
<p>There are two demo notebooks, spectrum_demo.ipynb and spectrum_demo_2.ipynb in the jupyter_notebooks directory on github.</p>
</div>
</div>
<div class="section" id="radiative-loss-rate">
<h2>Radiative loss rate<a class="headerlink" href="#radiative-loss-rate" title="Permalink to this headline">¶</a></h2>
<p>the radiative loss rate can be calculated as a function of temperature and density. If all elements are included, the calculation can take some time. So, for a shorter example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">4.</span><span class="o">+</span><span class="mf">0.05</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">81</span><span class="p">))</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
<span class="n">rlhhe</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">radLoss</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span> <span class="n">dens</span><span class="p">,</span> <span class="n">elementList</span><span class="o">=</span><span class="p">[</span><span class="s1">'h'</span><span class="p">,</span> <span class="s1">'he'</span><span class="p">])</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">rl</span><span class="o">.</span><span class="n">radLossPlot</span><span class="p">()</span>
</pre></div>
</div>
<p>produces, in 2s:</p>
<img alt="_images/radloss_hhe.png" class="align-center" src="_images/radloss_hhe.png" />
<p>with version 0.15.0, the class mradLoss is available for doing a multiprocessor calculation
of the radiation loss</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">temp</span> <span class="o">=</span> <span class="mf">10.</span><span class="o">**</span><span class="p">(</span><span class="mf">4.</span><span class="o">+</span><span class="mf">0.05</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">81</span><span class="p">))</span>
<span class="n">dens</span> <span class="o">=</span> <span class="mf">1.e+9</span>
</pre></div>
</div>
<p>the following will calculate the radiation loss for elements with an abundance greater the 1.e-5 that of the hydrogen abundance. In this case the default abundance file is for photospheric abundances</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mrl</span> <span class="o">=</span> <span class="n">ch</span><span class="o">.</span><span class="n">mradLoss</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span> <span class="n">dens</span><span class="p">,</span> <span class="n">minAbund</span><span class="o">=</span><span class="mf">1.e-5</span><span class="p">)</span>
</pre></div>
</div>
<p>these calculations can take some time so it is a good idea to save them</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mrl</span><span class="o">.</span><span class="n">saveData</span><span class="p">(</span><span class="s1">'rl_phot_1m5.pkl'</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
<span class="n">mrl</span><span class="o">.</span><span class="n">radLossPlot</span><span class="p">()</span>
</pre></div>
</div>
<p>produces, produces after 250s on a 3.5 GHz 4 core processor:</p>
<img alt="_images/rl_phot_1m5.png" class="align-center" src="_images/rl_phot_1m5.png" />
<p>the radiative losses are kept in the rl.RadLoss dictionary</p>
<p>the <strong>abundance</strong> keyword argument can be set to the name of an available abundance file in XUVTOP/abund</p>
<p>if abundance=’abc’, or some name that does not match an abundance name, a dialog will come up so that a abundance file can be selected</p>
<p>or:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">abundDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'XUVTOP'</span><span class="p">],</span> <span class="s1">'abundance'</span><span class="p">)</span>