<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.sternwarte.uni-erlangen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kreykenbohm</id>
	<title>Remeis-Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.sternwarte.uni-erlangen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kreykenbohm"/>
	<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php/Special:Contributions/Kreykenbohm"/>
	<updated>2026-04-09T06:47:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.7</generator>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_gratings&amp;diff=4017</id>
		<title>Isis tutorial gratings</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_gratings&amp;diff=4017"/>
		<updated>2026-02-19T12:35:42Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Adds clarification on tgcat download link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Further Data Fitting ==&lt;br /&gt;
&lt;br /&gt;
The walk through isis has given you a first overview of a simple X-ray spectral analysis. In this part of the tutorial we build upon this experience by performing a more complicated analysis of Chandra gratings spectra. You will learn about X-ray data archives and what to do when not all keywords are set in a X-ray spectral file. Furthermore we introduce an important X-ray diagnostics for tenuous plasmas.&lt;br /&gt;
&lt;br /&gt;
=== Data Archives and the ADS ===&lt;br /&gt;
&lt;br /&gt;
==== ADS ====&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will demonstrate the analysis of Chandra gratings data of stellar spectra and try to reproduce the results obtained by [http://adsabs.harvard.edu/abs/2002A%26A...394..911N Jan-Uwe Ness et al., 2002, Coronal density diagnostics with Helium-like triplets: CHANDRA-LETGS observations of Algol, Capella, Procyon, epsilon Eri, alpha Cen A&amp;amp;B, UX Ari, AD Leo, YY Gem, and HR 1099, Astronomy and Astrophysics 394, 911]. &lt;br /&gt;
&lt;br /&gt;
'''''Exercise 1'''''&lt;br /&gt;
* Go to the [http://adsabs.harvard.edu/abstract_service.html ADS Abstract Service] and search for the above paper. The best way to do this is to enter &amp;lt;code&amp;gt;^Ness&amp;lt;/code&amp;gt; for the Author and &amp;lt;code&amp;gt;Capella&amp;lt;/code&amp;gt; for the Object. The ADS is the best data base to find astronomical literature. It goes back to the early 1800s and is almost complete for the past 50 years or so. It will be very worth your time to familiarize yourself with searching papers there - even if you do not want to do astronomy in the end but other areas of physics, which are indexed in the ADS as well. In order to make sure that you really did the search and did not just click the link above, what is the newest paper published by this author?&lt;br /&gt;
&lt;br /&gt;
* Download, print, and read this paper. Yes, really, print it - you will need to refer to this paper often and you might want to scribble comments on your paper copy and you will read the paper much more intensively if it is not on a computer screen. In order to get to the PDF-copy of the paper, click on &amp;quot;Full Refereed Journal Article (PDF/Postscript)&amp;quot; in the above link. You will see it is colored in green, meaning that the paper is not behind a paywall. This is not the case for new articles, unfortunately, in this case you can always go to the arXiv-Link and get a preprint from there. Virtually all important astronomical papers can be found this way. &lt;br /&gt;
&lt;br /&gt;
==== Data Archives ====&lt;br /&gt;
&lt;br /&gt;
Here, we will show you how to perform the analysis of Capella, in your homework you will work on one of the other sources. Like the analysis of data from all other X-ray satellites, the reduction of Chandra gratings data can become very involved. Since we &amp;quot;just&amp;quot; want to analyze the time averaged spectrum of the source, we are lucky that somebody else (well, the Chandra gratings team) has done the work for us and has put the reduced spectra on the WWW for us. Such archives of pre-reduced data exist for all satellites, and while I caution ''not'' to use the reduced data in these archives for publication-level work, they are useful to get a feel for what is available (the reason why you do not want to use these data for publication level work is that you will typically have to apply a newer version of the detector calibration, different background screening criteria, different time intervals, and so on). TGCat is an important archive for Chandra data:&lt;br /&gt;
&lt;br /&gt;
* [http://tgcat.mit.edu/ TGCat] contains all public observations performed with the Chandra transmission gratings spectrometers. The user interface is self-explanatory and there is a nice help section available. If you know the name of the object you're interested in, click on &amp;quot;Query&amp;quot; at the top and select &amp;quot;Name&amp;quot;. Then enter the name of your source in the &amp;quot;Target list&amp;quot; box and hit submit. You'll get a list of matching sources known to TGCat. Then click on the object name and you will be getting a list of all available observations. Then select the observations you want to analyze and finally click on &amp;quot;Actions&amp;quot; on the top and select &amp;quot;Download&amp;quot;. You may also select the auxiliary data types (and explore them later on your own). Provide a working Email address and click on &amp;quot;Apply&amp;quot;. The system will process your request and send you an Email when the data is ready for download (make take a bit,though). &lt;br /&gt;
&lt;br /&gt;
For other missions like XMM-Newton there are of course similar archives available.&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 2'''''&lt;br /&gt;
* Download the observation with the longest exposure time available for the object you are interested in, unless your instructions say otherwise. If possible, disregard the observations where the HRC was in the focal plane, i.e., look at the ACIS-observations only (the HRC is not energy dispersive, and therefore order sorting is not so easy with this detector).&lt;br /&gt;
&lt;br /&gt;
Select the data, ask TGCat to send you an email, and then download the file. Remember that the download link in your Email will be different, so make sure that you use the download link your data, not the one in this example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://tgcat.mit.edu/tmp/1337349938_174950000/tgcat.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unpack it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar xzvf tgcat.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For Capella, we download the data from observation ID 8319. The data set looks as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hde226868:~/isistut&amp;gt; cd tgcat&lt;br /&gt;
hde226868:~/isistut/tgcat&amp;gt; ls -l&lt;br /&gt;
total 16&lt;br /&gt;
drwxr-xr-x 3 wilms wilms 4096 May 18 16:05 .&lt;br /&gt;
drwxr-xr-x 3 wilms wilms 4096 May 20 14:05 ..&lt;br /&gt;
-rw-r--r-- 1 wilms wilms  327 May 18 16:05 checksums.dat&lt;br /&gt;
drwxr-xr-x 2 wilms wilms 4096 May 18 16:05 obs_8319_tgid_3283&lt;br /&gt;
hde226868:~/isistut/tgcat&amp;gt; cd obs_8319_tgid_3283&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; ls -l&lt;br /&gt;
total 15648&lt;br /&gt;
-r--r--r-- 1 wilms wilms 1419840 May 18 16:05 pha2.gz&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_-1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7030080 May 18 16:05 leg_-1.rmf&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7032960 May 18 16:05 leg_1.rmf&lt;br /&gt;
-rw-r--r-- 1 wilms wilms      71 May 18 16:05 vv_report.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The spectral file is called &amp;lt;code&amp;gt;pha2.gz&amp;lt;/code&amp;gt;, which is not a very meaningful name, so we unpack it and rename it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; gunzip pha2.gz&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; mv pha2 capella.pha2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the name &amp;lt;code&amp;gt;pha2&amp;lt;/code&amp;gt;. In the walkthrough we encountered PHA-files, which contain one spectrum. &amp;lt;code&amp;gt;pha2&amp;lt;/code&amp;gt;-files contain multiple spectra. They are used, for example, in pulse phase resolved spectroscopy of neutron stars or in gratings spectra, where they contain multiple spectra.&lt;br /&gt;
&lt;br /&gt;
''''' Exercise 3 '''''&lt;br /&gt;
&lt;br /&gt;
* Take a look at the contents of your pha2-file using &amp;lt;code&amp;gt;fv&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;fstruct&amp;lt;/code&amp;gt;. Note that each &amp;quot;row&amp;quot; in the pha2-file now contains one spectrum.&lt;br /&gt;
&lt;br /&gt;
==== Preparing Gratings Data for Fitting ====&lt;br /&gt;
&lt;br /&gt;
We now enter &amp;quot;isis&amp;quot;, load the &amp;quot;isisscripts&amp;quot;, and load our data set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; isis&lt;br /&gt;
:&lt;br /&gt;
isis&amp;gt; require(&amp;quot;isisscripts&amp;quot;);           &lt;br /&gt;
:&lt;br /&gt;
isis&amp;gt; capella=load_data(&amp;quot;capella.pha2&amp;quot;);&lt;br /&gt;
Reading: ......&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As usual, we first take a look at what has been loaded, this time using a helpful function from the &amp;quot;isisscripts&amp;quot; that lists the data and the loaded &amp;quot;ARF&amp;quot;- and &amp;quot;RMF&amp;quot;-files.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_all;              &lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1     LETG-ACIS  leg-3   1    8192/ 8192   -   -  1.0222e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  2     LETG-ACIS  leg-2   1    8192/ 8192   -   -  4.4290e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  3     LETG-ACIS  leg-1   1    8192/ 8192   -   -  7.0583e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  4     LETG-ACIS  leg+1   1    8192/ 8192   -   -  1.1496e+05    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  5     LETG-ACIS  leg+2   1    8192/ 8192   -   -  4.7930e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  6     LETG-ACIS  leg+3   1    8192/ 8192   -   -  6.2380e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We note two things:&lt;br /&gt;
# &amp;lt;code&amp;gt;load_data&amp;lt;/code&amp;gt; loaded all contents of the &amp;lt;code&amp;gt;pha2&amp;lt;/code&amp;gt;-file,  total of '''six''' spectra. What these spectra are is identified in the &amp;lt;code&amp;gt;part/m&amp;lt;/code&amp;gt;-column: &amp;lt;code&amp;gt;leg&amp;lt;/code&amp;gt; is the &amp;quot;low energy grating&amp;quot; of Chandra-HETGS (the other grating would be called &amp;lt;code&amp;gt;meg&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;medium energy grating&amp;lt;/code&amp;gt;), and -3, -2, -1, +1, +2, +3 identifies the order of the spectrum.&lt;br /&gt;
# No &amp;lt;code&amp;gt;ARF&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RMF&amp;lt;/code&amp;gt; are listed. This means that while the spectra have been loaded we still need to tell &amp;lt;code&amp;gt;isis&amp;lt;/code&amp;gt; what &amp;lt;code&amp;gt;ARF&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RMF&amp;lt;/code&amp;gt; to use for the spectra (you can also see this by noticing the dashes in the &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; columns).&lt;br /&gt;
&lt;br /&gt;
We now remind ourselves what responses and ARF we were provided with, by using isis' &amp;quot;shell escape&amp;quot;. This means that within isis we can precede a normal shell command by an exclamation mark to have it executed by the shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 isis&amp;gt; !ls -l&lt;br /&gt;
total 15648&lt;br /&gt;
-r--r--r-- 1 wilms wilms 1419840 May 18 16:05 capella.pha2&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_-1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7030080 May 18 16:05 leg_-1.rmf&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7032960 May 18 16:05 leg_1.rmf&lt;br /&gt;
-rw-r--r-- 1 wilms wilms      71 May 18 16:05 vv_report.txt&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This means that we only have RMFs and ARFs available for the first order and we will have to ignore the higher orders. This is fine since most photons end up in the 1st order anyway. Let us now load the files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; arfm1=load_arf(&amp;quot;leg_-1.arf&amp;quot;); &lt;br /&gt;
isis&amp;gt; arfp1=load_arf(&amp;quot;leg_1.arf&amp;quot;);&lt;br /&gt;
isis&amp;gt; rmfm1=load_rmf(&amp;quot;leg_-1.rmf&amp;quot;);&lt;br /&gt;
isis&amp;gt; rmfp1=load_rmf(&amp;quot;leg_1.rmf&amp;quot;); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and check that everything went fine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_all; &lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1     LETG-ACIS  leg-3   1    8192/ 8192   -   -  1.0222e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  2     LETG-ACIS  leg-2   1    8192/ 8192   -   -  4.4290e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  3     LETG-ACIS  leg-1   1    8192/ 8192   -   -  7.0583e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  4     LETG-ACIS  leg+1   1    8192/ 8192   -   -  1.1496e+05    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  5     LETG-ACIS  leg+2   1    8192/ 8192   -   -  4.7930e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  6     LETG-ACIS  leg+3   1    8192/ 8192   -   -  6.2380e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
Current RMF List:&lt;br /&gt;
 id grating detector    m type   file/function&lt;br /&gt;
  1    LETG   ACIS-7   -1 file:  leg_-1.rmf&lt;br /&gt;
  2    LETG   ACIS-7    1 file:  leg_1.rmf&lt;br /&gt;
Current ARF List:&lt;br /&gt;
 id grating detector part/m  src   nbins  exp(ksec)  target&lt;br /&gt;
  1    LETG     ACIS leg-1    0     8192    59.15  Capella&lt;br /&gt;
file:  leg_-1.arf&lt;br /&gt;
  2    LETG     ACIS leg+1    0     8192    59.15  Capella&lt;br /&gt;
file:  leg_1.arf&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We now need to assign each ARF and RMF to the spectrum taken with this detector:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; assign_rmf(rmfm1,capella[2]);&lt;br /&gt;
isis&amp;gt; assign_arf(arfm1,capella[2]);&lt;br /&gt;
isis&amp;gt; assign_rmf(rmfp1,capella[3]);&lt;br /&gt;
isis&amp;gt; assign_arf(arfp1,capella[3]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that instead of using the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;-values directly (e.g., &amp;lt;code&amp;gt;assign_rmf(1,3)&amp;lt;/code&amp;gt;) we use the isis-variables that were returned in the different &amp;lt;code&amp;gt;load&amp;lt;/code&amp;gt;-commands (&amp;lt;code&amp;gt;capella&amp;lt;/code&amp;gt; is a variable, and in slang/isis arrays are zero-based). This approach is better than using the ids directly since it minimizes the likelihood of typos and we do not have to remember strange id numbers but rather variable names that (should) make sense. If you want to find out more about the slang programming language, you can have a look at the nice documentation at [http://www.jedsoft.org/slang/doc/html/slang.html]. In this case, especially Chapter 6 (Variables) and 11 (Arrays) might be interesting for you.&lt;br /&gt;
&lt;br /&gt;
Let's check whether the assignment was ok:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_data;                   &lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1     LETG-ACIS  leg-3   1    8192/ 8192   -   -  1.0222e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  2     LETG-ACIS  leg-2   1    8192/ 8192   -   -  4.4290e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  3     LETG-ACIS  leg-1   1    8192/ 8192   1   1  7.0583e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  4     LETG-ACIS  leg+1   1    8192/ 8192   2   2  1.1496e+05    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  5     LETG-ACIS  leg+2   1    8192/ 8192   -   -  4.7930e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  6     LETG-ACIS  leg+3   1    8192/ 8192   -   -  6.2380e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice that the &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; columns now contain the indices of the respective ARF and RMF.&lt;br /&gt;
&lt;br /&gt;
==== The First Fit ====&lt;br /&gt;
&lt;br /&gt;
Since we do not have an ARF and RMF for the other orders, we need to tell isis not to work with these data sets:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; exclude([capella[0],capella[1],capella[4],capella[5]]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The argument of the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; function is an array containing the indices of all spectra that should be ignored when fitting. In slang/isis, arrays are defined by listing their contents in brackets, i.e.,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
array=[1,2,5,6];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It is also possible to use a shorthand notation to define larger arrays, e.g.,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
array=[1:10];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
creates an array containing the 10 numbers 1,2,...,10, while&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
array=[1:10:2];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
creates an array containing the numbers 1,3,5,...,9. In principle, you can do something like this also with floating point numbers, but because of subtleties with floating point arithmetic, we do not recommend using this feature of the language. &lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt;-example before, note that we are again listing the indices of the spectra indirectly by specifying them through the &amp;lt;code&amp;gt;capella&amp;lt;/code&amp;gt; variable. As before, this makes our code more portable. Finally, note that you could have also used the &amp;lt;code&amp;gt;ignore&amp;lt;/code&amp;gt;-function to ignore these data sets, but &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; is preferred since it does not affect the currently noticed energy ranges.&lt;br /&gt;
&lt;br /&gt;
Finally, since we now only have two spectra to work with,  let's remember their indices in shorter variables such that we do not have to type &amp;lt;code&amp;gt;capella[x]&amp;lt;/code&amp;gt; all the time...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; m1=capella[2];                                         &lt;br /&gt;
isis&amp;gt; p1=capella[3];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We first plot the whole data set, switching the x-axis unit to Angstroms, because this is more appropriate for gratings data:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; fancy_plot_unit(&amp;quot;A&amp;quot;); &lt;br /&gt;
isis&amp;gt; plot_data(p1;dsym=1,dcol=2);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that for the moment we are only plotting one data set in order not to confuse ourselves. With &amp;lt;code&amp;gt;dsym=1&amp;lt;/code&amp;gt; we switch off the plot symbol, which is only distracting and does not help in understanding the figure (try the command without the &amp;lt;code&amp;gt;dsym&amp;lt;/code&amp;gt;-qualifier!).&lt;br /&gt;
&lt;br /&gt;
The resulting figure looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings01.png|center]]&lt;br /&gt;
&lt;br /&gt;
Notice the very strong emission lines, which are typical for stellar coronae. Most of the things are happening between 5 and 25 Angstroms, so let's zoom in that region:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings02.png|center]]&lt;br /&gt;
&lt;br /&gt;
Isis has very powerful functions that help in the identification of these lines. Also note the &amp;quot;bump&amp;quot; at lower wavelengths, which is due to bremsstrahlung emission of the hot corona. &lt;br /&gt;
&lt;br /&gt;
Right now we are only interested in the He-like oxygen triplet at 21.6, 21.8, and 22.1 Angstroms. These are called the resonant, intercombination, and forbidden line, respectively, and their fluxes are typically called r, i, and f. Let's therefore take a look at the 20-23 A band only:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings03.png|center]]&lt;br /&gt;
&lt;br /&gt;
All three lines can be clearly seen in the data set. In order to get more quantitative information, a look at the spectral plot indicates that we should be able to model this spectral region well with a spectral model that consists of the three lines plus a constant flux component (model name &amp;lt;code&amp;gt;constant&amp;lt;/code&amp;gt;) that describes the continuum emission. We should probably also ignore the 20.5-21.5 A band because otherwise the fit would be contaminated by the emission lines there. Finally, experience tells us that in such line fits it is often not a good idea to let the wavelength/energy of the line to be completely free. The reason is that often initially the &amp;lt;math&amp;gt;\chi^2&amp;lt;/math&amp;gt;-minimization routine will be trying to change the wavelength by a large factor and as a result it could be that the lines are switched. We therefore allow the lines only to vary by 0.1 A around their official values.&lt;br /&gt;
&lt;br /&gt;
With the commands discussed in the walkthrough, and with the information given by &amp;lt;code&amp;gt;help set_par&amp;lt;/code&amp;gt; you should now be able to setup a fit function that looks like this (note: the &amp;lt;code&amp;gt;gauss&amp;lt;/code&amp;gt;-model in isis is a Gaussian line in Angstrom units, the &amp;lt;code&amp;gt;gaussian&amp;lt;/code&amp;gt;-model is the same, but in keV units):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;                   &lt;br /&gt;
constant(1)+gauss(1)+gauss(2)+gauss(3)&lt;br /&gt;
 idx  param           tie-to  freeze         value         min         max&lt;br /&gt;
  1  constant(1).factor   0     0                1           0       1e+10  &lt;br /&gt;
  2  gauss(1).area        0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  3  gauss(1).center      0     0             21.6        21.5        21.7  A&lt;br /&gt;
  4  gauss(1).sigma       0     0            0.025       1e-06           1  A&lt;br /&gt;
  5  gauss(2).area        0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  6  gauss(2).center      0     0             21.8        21.7        21.9  A&lt;br /&gt;
  7  gauss(2).sigma       0     0            0.025       1e-06           1  A&lt;br /&gt;
  8  gauss(3).area        0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  9  gauss(3).center      0     0             22.1          22        22.2  A&lt;br /&gt;
 10  gauss(3).sigma       0     0            0.025       1e-06           1  A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To get a good fit, plot the model (do not forget the &amp;lt;code&amp;gt;eval_counts&amp;lt;/code&amp;gt; command!), and adjust the constant, line widths, and line fluxes (&amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;-parameter) until you get a good &amp;quot;fit by eye&amp;quot;. Playing a little bit with the parameters I find a starting model that looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings04.png|center]]&lt;br /&gt;
&lt;br /&gt;
We now ignore the 20.6-21.5 and 22.6-22.8 Angstrom bands in both data sets:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; ignore([p1,m1],20.6,21.5);&lt;br /&gt;
isis&amp;gt; ignore([p1,m1],22.6,22.8);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replot in order to confirm that these data are gone! Furthermore, we also ignore everything below 20A and above 23A:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; ignore([p1,m1],NULL,20);                                                          &lt;br /&gt;
isis&amp;gt; ignore([p1,m1],23,NULL);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
perform the fit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; Fit_Verbose=1;&lt;br /&gt;
isis&amp;gt; fit_counts();                                                    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The best fit parameters are as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;                                                             &lt;br /&gt;
constant(1)+gauss(1)+gauss(2)+gauss(3)&lt;br /&gt;
 idx  param           tie-to  freeze         value         min         max&lt;br /&gt;
  1  constant(1).factor   0     0     1.342954e-05           0       1e+10  &lt;br /&gt;
  2  gauss(1).area        0     0      0.001175245           0           0  photons/s/cm^2&lt;br /&gt;
  3  gauss(1).center      0     0         21.60025        21.5        21.7  A&lt;br /&gt;
  4  gauss(1).sigma       0     0       0.01614977       1e-06           1  A&lt;br /&gt;
  5  gauss(2).area        0     0      0.000183689           0           0  photons/s/cm^2&lt;br /&gt;
  6  gauss(2).center      0     0         21.79914        21.7        21.9  A&lt;br /&gt;
  7  gauss(2).sigma       0     0        0.0108202       1e-06           1  A&lt;br /&gt;
  8  gauss(3).area        0     0     0.0008692617           0           0  photons/s/cm^2&lt;br /&gt;
  9  gauss(3).center      0     0         22.09971          22        22.2  A&lt;br /&gt;
 10  gauss(3).sigma       0     0       0.02135323       1e-06           1  A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To check whether all went well with the fit, we plot our best fit. While for the manual adjustment of the fit parameters it was sufficient to just look at one of the spectra, we really should look at all of our data. This is done with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_data({m1,p1};dsym={1,1},decol={2,4},dcol={2,4},mcol={4,4},res=1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where the &amp;lt;code&amp;gt;{1,2}&amp;lt;/code&amp;gt; etc. are so-called ''lists''. These are somewhat more flexible forms of arrays. We will address the details of this data type later, for the moment, just remember that you need to put everything in curly parentheses instead of brackets. In the above, the color 4 is used for the m=+1 spectrum and 2 for the m=-1 spectrum.&lt;br /&gt;
&lt;br /&gt;
The best fit looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings05.png|center]]&lt;br /&gt;
&lt;br /&gt;
and the residuals are flat. This is not surprising, given that the reduced chi-square of the fit was only 0.5.&lt;br /&gt;
&lt;br /&gt;
Looking at the paper by Ness et al., for the spectral diagnosis the ratio &amp;lt;math&amp;gt;G=(f+i)/r&amp;lt;/math&amp;gt; as well as the ratio &amp;lt;math&amp;gt;R=f/i&amp;lt;/math&amp;gt; is used. As discussed by Ness et al., the diagnostic information contained in these ratios is discussed in great detail by [http://adsabs.harvard.edu/abs/2001A%26A...376.1113P Porquet et al. (2001)] (where the resonance line is called w, the intercombination x+y, and the forbidden line z; sorry, nobody claimed scientists are consistent...). Porquet et al. (2001) show that R is mainly dependent on the electron density and G is mainly dependent on the temperature. &lt;br /&gt;
&lt;br /&gt;
The following analysis can now proceed either by using your pocket calculator or by using isis as a pocket calculator. Since we have not yet introduced programming in slang/isis, feel free to use either way, or [isis:tutorial:slang take a look at our Slang programming introduction]. In the following, we show how one would get about calculating the above ratios with isis. To understand the code, you need to know that in slang structures contain several named values and that you can access the one of the variables (&amp;quot;tags&amp;quot;) that make up the content of a structure with the usual &amp;lt;code&amp;gt;variable.tag&amp;lt;/code&amp;gt; syntax that is also used, e.g., in C. Furthermore, read the help for the isis &amp;lt;code&amp;gt;get_params&amp;lt;/code&amp;gt; function&amp;lt;ref&amp;gt;if one is just interested in the best fit value of a parameter, you can also use the &amp;lt;code&amp;gt;get_par&amp;lt;/code&amp;gt; function, however, this would not have allowed us to introduce slang structures...&amp;lt;/ref&amp;gt;.&lt;br /&gt;
To calculate the ratios then do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; r=get_params(&amp;quot;gauss(1).area&amp;quot;);&lt;br /&gt;
isis&amp;gt; i=get_params(&amp;quot;gauss(2).area&amp;quot;); &lt;br /&gt;
isis&amp;gt; f=get_params(&amp;quot;gauss(3).area&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
take a look at the contents of r (which per the documentation of &amp;lt;code&amp;gt;get_params&amp;lt;/code&amp;gt; is an array):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; print(r);                     &lt;br /&gt;
{name=&amp;quot;gauss(1).area&amp;quot;, index=2, value=0.0011752452373316315, min=-1.7976931348623157e+308, max=1.7976931348623157e+308, hard_min=-inf, hard_max=inf, step=0.0, relstep=0.0001, freeze=0, tie=NULL, units=&amp;quot;photons/s/cm^2&amp;quot;, is_a_norm=1, fun=NULL}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and therefore&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; rat=f[0].value/i[0].value;&lt;br /&gt;
isis&amp;gt; g=(f[0].value+i[0].value)/r[0].value;&lt;br /&gt;
isis&amp;gt; print(rat);                          &lt;br /&gt;
4.732248259283046&lt;br /&gt;
isis&amp;gt; print(g);  &lt;br /&gt;
0.8959412576621245&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per the discussion in Porquet, the small value of G is an indication that the observed plasma is dominated by collisions, i.e., it is very thin and very hot and the ionization of the plasma is due to collisions and not due to a strong X-ray source in the vicinity that ionizes the plasma through photoionization. We are also happy that our ratio for R, 4.7, is close to that found by Ness et al., which is around 4 (right hand panel of their Figure 10).&lt;br /&gt;
&lt;br /&gt;
While this is all very nice and the result that we obtain is in rough agreement with the literature, we do not know how uncertain our parameters are. The reason is that even though we have the best fit, we do not yet know the uncertainty of our fit parameters. To calculate the uncertainty of a parameter isis uses the usual &amp;lt;math&amp;gt;\Delta\chi^2&amp;lt;/math&amp;gt; approach, first discussed for X-ray astronomical data by [http://adsabs.harvard.edu/abs/1976ApJ...208..177L Lampton, Margon, Bowyer, 1978, Apj 208, 177]. We will call the parameter for which the uncertainty is to be calculated the &amp;quot;parameter of interest&amp;quot;. Lampton et al. show that the confidence interval can be determined with the following recipe:&lt;br /&gt;
# Calculate &amp;lt;math&amp;gt;\Delta\chi^2&amp;lt;/math&amp;gt; from the chi-square-distribution with one degree of freedom. Common in X-ray astronomy are &amp;quot;&amp;lt;math&amp;gt;1\sigma&amp;lt;/math&amp;gt;&amp;quot;-errors with &amp;lt;math&amp;gt;\Delta\chi^2=1.00&amp;lt;/math&amp;gt;, 90% confidence ranges with &amp;lt;math&amp;gt;\Delta\chi^2=2.71&amp;lt;/math&amp;gt;, and 99% confidence contours with &amp;lt;math&amp;gt;\Delta\chi^2=6.63&amp;lt;/math&amp;gt;. The most common errors are the 90% ones.&lt;br /&gt;
# Change the parameter of interest away from its best fit value to a slightly smaller value. Keep it frozen and refit. This will result in a slightly larger &amp;lt;math&amp;gt;\chi^2&amp;lt;/math&amp;gt; for the best fit.&lt;br /&gt;
# Repeat the previous step until you find the parameter value where the chi-squared is &amp;lt;math&amp;gt;\chi^2 = \chi_\mathrm{min}^2+\Delta\chi^2&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\chi_\mathrm{min}^2&amp;lt;/math&amp;gt; is the chi-squared of our original best fit. The value of our parameter is now the lower bound of the confidence interval.&lt;br /&gt;
# Repeat for values larger than the best fit value until you find the upper bound of the confidence region.&lt;br /&gt;
# Designating the lower and upper end of the confidence region by &amp;lt;math&amp;gt;p_\mathrm{min}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;p_\mathrm{max}&amp;lt;/math&amp;gt; and the best fit value &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, we then write the best fit parameter as follows: &amp;lt;math&amp;gt;p^{+\Delta p_\mathrm{max}}_{-\Delta p_\mathrm{min}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\Delta p_\mathrm{max} = p_\mathrm{max}-p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;p_\mathrm{min}=p-p_\mathrm{min}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because of correlations between parameters, error bars are typically not symmetric and great care has to be taken when doing error propagation. We ignore all of those for the moment and use the rule of thumb that if the error bars are not too asymmetric, a rough estimate for a symmetric error bar which can be used for the standard Gaussian error propagation is the average of the lower and the upper error bars, i.e., use &amp;lt;math&amp;gt;\Delta p =(\Delta p_\mathrm{min}+\Delta p_\mathrm{max})/2&amp;lt;/math&amp;gt; and write the best fit parameter as &amp;lt;math&amp;gt;p\pm\Delta p&amp;lt;/math&amp;gt; (where we usually also use 90% error bars!).&lt;br /&gt;
 &lt;br /&gt;
The above procedure is implemented in isis through the &amp;lt;code&amp;gt;conf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;vconf&amp;lt;/code&amp;gt; functions. These are identical, &amp;lt;code&amp;gt;vconf&amp;lt;/code&amp;gt; gives more information about the procedure (the &amp;quot;v&amp;quot; stands for &amp;quot;verbose&amp;quot;). Since the above procedure searches for the zero of a function, it is not guaranteed to converge numerically. For this reason isis calculates confidence intervals only when explicit limits are set. These limits are returned in case the error calculation failed. Typically, for good data sets the errors will be less than 20-30% of the value, but this depends a lot on the data set and one often has to play around a little bit. &lt;br /&gt;
&lt;br /&gt;
The error bar for the flux of the forbidden line is then calculated as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; set_par(&amp;quot;gauss(3).area&amp;quot;,f[0].value,0,0.75*f[0].value,1.25*f[0].value);&lt;br /&gt;
isis&amp;gt; list_par;                                                             &lt;br /&gt;
constant(1)+gauss(1)+gauss(2)+gauss(3)&lt;br /&gt;
 idx  param           tie-to  freeze         value         min         max&lt;br /&gt;
  1  constant(1).factor   0     0     1.342954e-05           0       1e+10  &lt;br /&gt;
  2  gauss(1).area        0     0      0.001175245           0           0  photons/s/cm^2&lt;br /&gt;
  3  gauss(1).center      0     0         21.60025        21.5        21.7  A&lt;br /&gt;
  4  gauss(1).sigma       0     0       0.01614977       1e-06           1  A&lt;br /&gt;
  5  gauss(2).area        0     0      0.000183689           0           0  photons/s/cm^2&lt;br /&gt;
  6  gauss(2).center      0     0         21.79914        21.7        21.9  A&lt;br /&gt;
  7  gauss(2).sigma       0     0        0.0108202       1e-06           1  A&lt;br /&gt;
  8  gauss(3).area        0     0     0.0008692617  0.0006519463  0.001086577  photons/s/cm^2&lt;br /&gt;
  9  gauss(3).center      0     0         22.09971          22        22.2  A&lt;br /&gt;
 10  gauss(3).sigma       0     0       0.02135323       1e-06           1  A&lt;br /&gt;
isis&amp;gt; (fmi,fma)=vconf(&amp;quot;gauss(3).area&amp;quot;);&lt;br /&gt;
:&lt;br /&gt;
: lots of output...&lt;br /&gt;
:&lt;br /&gt;
 gauss(3).sigma=  2.25766046e-02&lt;br /&gt;
chi-square value converged&lt;br /&gt;
par[8]=  9.64711324e-04  stat=  1.5337e+02  dstat=  2.7100e+00&lt;br /&gt;
limit found:  9.64711324e-04  dstat=  2.7100e+00&lt;br /&gt;
isis&amp;gt; print(fmi);    &lt;br /&gt;
0.0007743270669346407&lt;br /&gt;
isis&amp;gt; print(fma);&lt;br /&gt;
0.0009647113237380715&lt;br /&gt;
isis&amp;gt; print(f[0].value-fmi);&lt;br /&gt;
9.493467346016499e-05&lt;br /&gt;
isis&amp;gt; print(fma-f[0].value);&lt;br /&gt;
9.544958334326589e-05&lt;br /&gt;
isis&amp;gt; print(f[0].value);    &lt;br /&gt;
0.0008692617403948057&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
this means that the error bar is almost symmetric and therefore &amp;lt;math&amp;gt;f=(8.7\pm1.0)\times10^{-5}\,\mathrm{ph}\,\mathrm{s}^{-1}\,\mathrm{cm}^{-2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 4'''''&lt;br /&gt;
# Perform the above analysis for &amp;quot;your&amp;quot; star. Do not forget to calculate error bars for R and G using error propagation!&lt;br /&gt;
# Use the tables of Porquet et al. to estimate the density and temperature of the plasma. Looking at the discussion by Ness et al., what is the systematic error of this analysis?&lt;br /&gt;
&lt;br /&gt;
==== References ====&lt;br /&gt;
&lt;br /&gt;
[[Category:Isis / Slang]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_walkthrough&amp;diff=4013</id>
		<title>Isis tutorial walkthrough</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_walkthrough&amp;diff=4013"/>
		<updated>2026-02-12T16:57:17Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: add some more verbatim commands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Walk Through ISIS ==&lt;br /&gt;
&lt;br /&gt;
In this first part of the tutorial, in order to get you started we will show you an example for a full X-ray data analysis using a fairly simple spectrum&amp;lt;ref&amp;gt;this section is mainly based on [http://space.mit.edu/home/mnowak/isis_vs_xspec/ Mike Nowak's introduction to isis]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the following tutorial, we will be working on a simple data set from an observation of a black hole, Cygnus X-1, that was obtained with NASA's Rossi X-ray Timing Explorer satellite. The test data set can be downloaded from [http://www.sternwarte.uni-erlangen.de/~wilms/isistut/ here]. It consists of the following parts:&lt;br /&gt;
* &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt; -- the spectrum itself. &lt;br /&gt;
* &amp;lt;code&amp;gt;standard2f_back_SkyVLE_top_good_0134off.pha&amp;lt;/code&amp;gt; -- The background spectrum (referred to in the &amp;lt;code&amp;gt;BACKFILE&amp;lt;/code&amp;gt; keyword of &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt;; see later for explanations).&lt;br /&gt;
* &amp;lt;code&amp;gt;p2_LR1_2009-05-06.rsp&amp;lt;/code&amp;gt; -- The response matrix (referred to in the &amp;lt;code&amp;gt;RESPFILE&amp;lt;/code&amp;gt; keyword of &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt;; see later for explanations)&lt;br /&gt;
The data are in FITS-format, a standard file format that is used in all of astronomy. Right now you can treat these files as a black box, at the end of this document there is some additional information about how to inspect the contents of these files outside of isis.&lt;br /&gt;
&lt;br /&gt;
=== Invoking isis ===&lt;br /&gt;
&lt;br /&gt;
Isis is a command-line program and is therefore usually executed from the command line (the details are explained in the installation instructions):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~&amp;gt; isis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which then prints out some start up messages before you end with the isis prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Welcome to ISIS Version 1.6.2-51&lt;br /&gt;
Copyright (C) 1998-2020 Massachusetts Institute of Technology&lt;br /&gt;
&lt;br /&gt;
          Isis web page: http://space.mit.edu/cxc/isis/&lt;br /&gt;
   Mailing list archive: http://space.mit.edu/cxc/isis/archive/&lt;br /&gt;
 Send questions to the mailing list: &amp;lt;isis-users@space.mit.edu&amp;gt;.&lt;br /&gt;
     For a summary of recent changes, type:  &amp;quot;help changes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
isis&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As part of its startup, isis executes a file called [[ISIS auto start (.isisrc)|.isisrc]], which is useful for setting up a standard environment.&lt;br /&gt;
&lt;br /&gt;
In the following we will show you an interactive session with isis. It is the typical approach when working with new data to look at these first by hand, in a way similar to that shown here. In later, more advanced analysis you will probably mainly interact with isis through programs, although it should be emphasized that working interactively with data first is always a good idea. This is the only way how you can get a good feeling for your data, even though automated reductions ''are'' important, especially when working on data sets with many different observations.&lt;br /&gt;
&lt;br /&gt;
For a more formal walk through through isis and the programming language s-lang, take a look at the [http://space.mit.edu/cxc/isis isis web page], especially the [https://space.mit.edu/cxc/isis/docs.html documentation] available there.&lt;br /&gt;
&lt;br /&gt;
=== Loading and Inspecting Your Data Set ===&lt;br /&gt;
&lt;br /&gt;
We now load the data we looked at before into isis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pca=load_data(&amp;quot;standard2f_0134off_top.pha&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;load_data&amp;lt;/code&amp;gt; command loads the file given as its argument and returns an unique number that identifies this data set. In the above example, this identifier is stored in the variable called &amp;lt;code&amp;gt;pca&amp;lt;/code&amp;gt; (it usually makes sense to use the name of the detector with which the data were taken, although there are exceptions).  Note that the command ends with a semicolon. This is standard in slang, the language on which isis is based. Although it is in principle possible to switch off this feature when working interactively with isis&amp;lt;ref&amp;gt;since you are curious: put&amp;lt;pre&amp;gt;Isis_Append_Semicolon=1;&amp;lt;/pre&amp;gt; in your &amp;lt;code&amp;gt;~/.isisrc&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;, we recommend you do not use this option -- having to type the semicolon requires you to think before doing something, which is generally a good idea ;-). &lt;br /&gt;
&lt;br /&gt;
If all goes fine, you will be informed that the response matrix includes the ARF. Now check whether isis loaded what you think it should have loaded by looking at some basic information about the background file, the RMF, and the ARF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_data;&lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1           PCA          0     129/  129   -   1  3.1773e+06     2.528  CYG_X-1&lt;br /&gt;
file:  standard2f_0134off_top.pha&lt;br /&gt;
back:  standard2f_back_SkyVLE_top_good_0134off.pha&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amongs others, the table columns include&lt;br /&gt;
* &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;: the identifier of this data set, &lt;br /&gt;
* &amp;lt;code&amp;gt;nbins&amp;lt;/code&amp;gt;: the number of spectral bins, &lt;br /&gt;
* &amp;lt;code&amp;gt;totcts&amp;lt;/code&amp;gt;: the total counts in the spectrum, &lt;br /&gt;
* &amp;lt;code&amp;gt;exp&amp;lt;/code&amp;gt;: the exposure time in kiloseconds, and &lt;br /&gt;
* &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;: the nominal source we are working with.&lt;br /&gt;
Finally, the output also lists the file name and the associated background file.&lt;br /&gt;
&lt;br /&gt;
Similar information can also be obtained for the response matrix and the ARF using the commands&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list_rmf;&lt;br /&gt;
list_arf;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that for your data set no information is given back for the ARF, since none was loaded.&lt;br /&gt;
&lt;br /&gt;
Like for all commands in isis, information about the commands can be obtained with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; help commandname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
so, for example,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; help list_arf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(If this does not give you help for the command you put in, you can try just&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; commandname;&lt;br /&gt;
&amp;lt;/pre&amp;gt; without any additional arguments. For some commands that works.)&lt;br /&gt;
Some of the help information might appear pure gibberish for you. Ignore this for the moment, with time it will all become clear to you.&lt;br /&gt;
&lt;br /&gt;
A second help function that is very useful is the &amp;lt;code&amp;gt;apropos&amp;lt;/code&amp;gt; command. For example, if you want to do something with an ARF, do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; apropos arf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which will return all isis commands that contain &amp;quot;arf&amp;quot; in their name.&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 1'''''&lt;br /&gt;
# Load your data set and check the information given by ISIS using the above commands.&lt;br /&gt;
&lt;br /&gt;
=== Plotting the Data ===&lt;br /&gt;
&lt;br /&gt;
X-ray data analysis of a data set that you do not yet know consists basically of the following steps:&lt;br /&gt;
# plot something&lt;br /&gt;
# think about what the plot/data set tries to tell you&lt;br /&gt;
# try something out (e.g., perform a fit)&lt;br /&gt;
# goto 1&lt;br /&gt;
and then repeat until you are convinced that everything works as expected. Depending on the data set, the above might take five minutes, but we also had complicated data sets that so far have resulted in 2-3 PhD theses...&lt;br /&gt;
&lt;br /&gt;
Therefore, as the first step, we take a look at our data.&lt;br /&gt;
&lt;br /&gt;
While isis contains some basic plotting routines, it is generally faster to use the very powerful plotting routines developed at MIT and at Remeis/ECAP to look at the data. The reason is that these are more user friendly than the basic isis routines.&lt;br /&gt;
&lt;br /&gt;
In order to do so, we first need to load the Remeis isis scripts. In our standard install, just do a&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; require(&amp;quot;isisscripts&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;isisscripts&amp;lt;/code&amp;gt; are a large set of useful routines developed by many people. If you use them for professional work, please contact J. Wilms first and ask whom to put in the acknowledgments of your paper. They are freely available through a git-repository.&lt;br /&gt;
&lt;br /&gt;
So let's plot the data set:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A window pops up, looking something like this&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough01.png|center]]&lt;br /&gt;
&lt;br /&gt;
In this standard display, not much can be seen except for the fact that the detector sensitivity is the best at low energies. For this reason, we first switch the plot over to a log-log plot and plot again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; xlog;&lt;br /&gt;
isis&amp;gt; ylog;&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This results in a much nicer plot. With the exception of gratings data, it is usually better to take a look at X-ray data in log-log space, so you should get used to switching over to log-space before doing any plots:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough02.png|center]]&lt;br /&gt;
&lt;br /&gt;
Note that what is shown are counts per PHA bin as a function of energy. Here, the response matrix is used to get an approximate conversion of the channel number to energy. The jump at around 20keV is not a spectral feature, but caused by the detector: at this energy, the standard data mode on RXTE PCA increases the energy width per PHA bin by a factor of two. Since the spectrum changes only slowly at this energy, because of the increase in width twice as many counts are detected in this bin. In addition, the feature at around 30keV is also a detector feature, it mainly reflects the change in sensitivity of this Xe-based proportional counter at the Xe-K-edge, which is at roughly 30keV.&lt;br /&gt;
&lt;br /&gt;
Experience for this detector shows that its calibration is best at energies between 3keV and 22keV, such that for the moment we will ignore what is happening outside of this energy band using isis' &amp;lt;code&amp;gt;notice&amp;lt;/code&amp;gt; function:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; notice_values(pca,3.,22.;unit=&amp;quot;keV&amp;quot;);&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that immediately after ignoring, we plot the data again in order to make sure that our command worked as intended. This way you can visually confirm, e.g., that a feature that you want to ignore really was outside of the energy range considered. Furthermore, note that we are explicitly telling isis to work in energy space. This is necessary since for historic reasons many isis commands are by default working in wavelength space.&lt;br /&gt;
&lt;br /&gt;
Other useful isis commands for noticing and ignoring energy and wavelength ranges are&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ignore(id);         % Ignore dataset id&lt;br /&gt;
notice(id,a,b);     % Notice wavelength range [a,b] in dataset id&lt;br /&gt;
notice_en(id,a,b);  % Notice energy range [a,b] in dataset id&lt;br /&gt;
xnotice(id,a,b);    % *Only* notice wavelength range [a,b] in dataset id&lt;br /&gt;
xnotice_en(id,a,b); % *Only* notice energy range [a,b] in dataset id&lt;br /&gt;
exclude(id);        % Don't change the ignored/noticed channels, but&lt;br /&gt;
                    % exclude the whole data set until reinstated with:&lt;br /&gt;
include(id);        % Reinstate the data with prior excluded channels&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can get more information about all of these commands with the &amp;lt;code&amp;gt;.help&amp;lt;/code&amp;gt;-command. Note that all of the above commands are &amp;quot;inclusive&amp;quot;, in the sense that the energy bins in the spectrum that include the two borders, a and b, are contained in the noticed energy band. &lt;br /&gt;
 &lt;br /&gt;
'''''Exercise 2'''''&lt;br /&gt;
# Perform the above steps for your data set. In the write up of your homework, include the relevant figures. Prepare these figures as publication-quality (postscript) figures. For this you will have to switch the output to postscript before plotting, and switch back to screen output afterwards:&lt;br /&gt;
&amp;lt;pre&amp;gt;isis&amp;gt;plotid = open_print(&amp;quot;example.ps/vcps&amp;quot;);&lt;br /&gt;
isis&amp;gt; keynote_size; nice_width;&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
isis&amp;gt; close_print(plotid);&lt;br /&gt;
&amp;lt;/pre&amp;gt; where &amp;lt;code&amp;gt;example.ps&amp;lt;/code&amp;gt; is the file name of the postscript file, and where &amp;lt;code&amp;gt;keynote_size&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;nice_width&amp;lt;/code&amp;gt; set the size of the figure to something that is appropriate for inclusion into a journal article. If you rather work with pdf, convert the ps-file to pdf afterwards, e.g., using Linux &amp;lt;code&amp;gt;epstopdf&amp;lt;/code&amp;gt; program.&lt;br /&gt;
&lt;br /&gt;
=== Inspecting ARF and RMF ===&lt;br /&gt;
&lt;br /&gt;
It is always useful in data analysis to have a feeling for the major features introduced by specific properties of the detector used to measure the data. For example, in the spectra above there are drops in detector sensitivity at the K- and L-edges of the detector gas. Usually, the regions around these edges are less well calibrated. Visualizing the ARF and RMF helps in this case (as does reading the user's manual for the satellite you're using...). &lt;br /&gt;
&lt;br /&gt;
Before trying to plot the RMF or ARF, make sure that you are using linear scaling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; xlin;&lt;br /&gt;
isis&amp;gt; ylin;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is easy to produce a plot of the RMF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; fits_plot_rmf(&amp;quot;p2_LR1_2009-05-06.rsp&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting plot should be similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:Rmf.png|center]]&lt;br /&gt;
&lt;br /&gt;
To visualize the sensitivity of the detector we need to plot the effective area of the detector as a function of energy. Depending on the instrument, the detector sensitivity is either saved as a separate ARF (Ancilliary Response File) or it is stored as part of the RMF. In the latter case isis will tell you so with the warning message &amp;quot;RMF includes the effective area&amp;quot; when you load the response. In this case we need to factor the response first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; rsp=load_rmf(&amp;quot;p2_LR1_2009-05-06.rsp&amp;quot;);&lt;br /&gt;
RMF includes the effective area&lt;br /&gt;
isis&amp;gt; arf=factor_rsp(rsp);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can then get the information about the effective area and plot it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; arfdata=get_arf(arf);&lt;br /&gt;
isis&amp;gt; xlog;&lt;br /&gt;
isis&amp;gt; hplot(_A(arfdata));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the function _A converts the wavelength information contained in the structure arfdata to keV.&lt;br /&gt;
&lt;br /&gt;
[[File:Arf.gif|center]]&lt;br /&gt;
&lt;br /&gt;
=== Performing a First Spectral Fit ===&lt;br /&gt;
&lt;br /&gt;
We are now ready to perform a first spectral fit. We first need to define the spectral model that we want to describe our data with. In general, one first tries to get a rough description of the data, which is for example based on earlier observations of the object and general astrophysical knowledge about the class of objects - if present -, and then refines this spectral model by adding further spectral components if an initial fit was successful. Isis includes a large number of spectral models. Since the models are derived from XSPEC, a good overview is given by the exhaustive list of the models in the [https://heasarc.gsfc.nasa.gov/xanadu/xspec/manual/XspecManual.html XSPEC manual].&lt;br /&gt;
&lt;br /&gt;
What model to use depends on the object one looks at. In most cases, one tries either a power law or a black body first and only later works with more CPU-intensive, physics-based models. Since all X-ray sources are absorbed by the interstellar medium in our Galaxy, one ''always'' includes Galactic absorption. &lt;br /&gt;
&lt;br /&gt;
Here, we know that Cygnus X-1 is a black hole. These often have power-law spectra. We therefore start by trying an absorbed power-law as our fit function:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt;fit_fun(&amp;quot;tbabs(1)*powerlaw(1)&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice the numbers behind the model components. These will be later used to distinguish different fit-functions, e.g., when one works with a source that has a spectrum that can be described as the sum of two power laws of different photon indices. &lt;br /&gt;
&lt;br /&gt;
Next we take a look at our fit parameters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;&lt;br /&gt;
tbabs(1)*powerlaw(1)&lt;br /&gt;
 idx  param             tie-to  freeze         value         min         max&lt;br /&gt;
  1  tbabs(1).nH            0     0                1           0      100000  10^22&lt;br /&gt;
  2  powerlaw(1).norm       0     0                1           0       1e+10  &lt;br /&gt;
  3  powerlaw(1).PhoIndex   0     0                1          -2           9  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amongst other information, which we will be discussing in a later tutorial, the table contains the following information:&lt;br /&gt;
* &amp;lt;code&amp;gt;idx&amp;lt;/code&amp;gt;: The index of the parameter (see below)&lt;br /&gt;
* &amp;lt;code&amp;gt;param&amp;lt;/code&amp;gt;: The name of the parameter. For example, &amp;lt;code&amp;gt;tbabs(1).nH&amp;lt;/code&amp;gt; is the absorption column (in units of 10^22 cm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt;. The physical meaning of the parameters is explained in the [https://heasarc.gsfc.nasa.gov/xanadu/xspec/manual/XspecManual.html XSPEC manual].&lt;br /&gt;
* &amp;lt;code&amp;gt;tie-to&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;freeze&amp;lt;/code&amp;gt;: see later&lt;br /&gt;
* &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: the current value of the parameter&lt;br /&gt;
* &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt;: The fit has to remain in the range between these two values.&lt;br /&gt;
&lt;br /&gt;
Before we do our first fit, we take a look at how this model looks like when folded through the detector response matrix. In order to do so we first ask isis to change the model flux such that the predicted count rate is close to the model count rate.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; renorm_counts;&lt;br /&gt;
: &lt;br /&gt;
 Parameters[Variable] = 3[1]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 898942.6&lt;br /&gt;
   Reduced chi-square = 20430.51&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isis has changed the parameter &amp;lt;code&amp;gt;powerlaw(1).norm&amp;lt;/code&amp;gt; and has left all other parameters unchanged:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;&lt;br /&gt;
tbabs(1)*powerlaw(1)&lt;br /&gt;
 idx  param             tie-to  freeze         value         min         max&lt;br /&gt;
  1  tbabs(1).nH            0     0                1           0      100000  10^22&lt;br /&gt;
  2  powerlaw(1).norm       0     0        0.4145608           0       1e+10  &lt;br /&gt;
  3  powerlaw(1).PhoIndex   0     0                1          -2           9 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now let us take a look at what the model looks like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; xlog;&lt;br /&gt;
isis&amp;gt; ylog;&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The resulting plot looks something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough03.png|center]]&lt;br /&gt;
&lt;br /&gt;
Notice that the slope of the spectrum and the data is very different. With a photon index of 1 the spectrum is harder than the data. We therefore change the photon index to something that is more typical for black holes, renorm the spectrum and plot it again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; set_par(3,1.7);&lt;br /&gt;
isis&amp;gt; renorm_counts;&lt;br /&gt;
 Parameters[Variable] = 3[1]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 339671.5&lt;br /&gt;
   Reduced chi-square = 7719.808&lt;br /&gt;
0&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The resulting model looks like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough04.png|center]]&lt;br /&gt;
&lt;br /&gt;
Note that the overall slope now looks ok, but there is still some deviation between the data and the model at the soft part of the spectrum, where the model looks too much absorbed. Taking a look at the isis help for &amp;lt;code&amp;gt;set_par&amp;lt;/code&amp;gt;, we are being told that instead of changing the parameter by giving &amp;lt;code&amp;gt;set_par&amp;lt;/code&amp;gt; its index number, we could also have given the full name of the parameter. So let us remove some absorption to get the curvature at the low energies right, by setting N&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt; to its interstellar value of &amp;lt;latex&amp;gt;N_\mathrm{H}=3\times 10^{21}\,\mathrm{cm}^{-2}&amp;lt;/latex&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; set_par(&amp;quot;tbabs(1).nH&amp;quot;,0.3);&lt;br /&gt;
isis&amp;gt; renorm_counts;&lt;br /&gt;
 Parameters[Variable] = 3[1]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 314595.1&lt;br /&gt;
   Reduced chi-square = 7149.888&lt;br /&gt;
0&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the Chi-square value decreased, meaning that the new description of the model is slightly better than the previous one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We now have starting values that are good enough to start the proper fitting. Here isis is using a so-called Levenberg-Marquardt-gradient method to minimize chi-square by varying the parameters. This is done step by step, until a (possibly local) minimum is reached. In order to see how the parameters are being varied, we instruct isis to display all intermediate parameter values first, and then perform the fit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; Fit_Verbose=1;&lt;br /&gt;
isis&amp;gt; fit_counts();&lt;br /&gt;
chisqr= 3.1460e+05:&lt;br /&gt;
 tbabs(1).nH=  3.00000000e-01 powerlaw(1).norm=  2.26407499e+00&lt;br /&gt;
 powerlaw(1).PhoIndex=  1.70000000e+00&lt;br /&gt;
chisqr= 3.1460e+05:&lt;br /&gt;
 tbabs(1).nH=  3.00030000e-01 powerlaw(1).norm=  2.26407499e+00&lt;br /&gt;
 powerlaw(1).PhoIndex=  1.70000000e+00&lt;br /&gt;
:&lt;br /&gt;
: multiple further steps&lt;br /&gt;
:&lt;br /&gt;
chisqr= 9.6239e+03:&lt;br /&gt;
 tbabs(1).nH=  0.00000000e+00 powerlaw(1).norm=  1.32707632e+01&lt;br /&gt;
 powerlaw(1).PhoIndex=  2.61135748e+00&lt;br /&gt;
chi-square value converged&lt;br /&gt;
 Parameters[Variable] = 3[3]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 9623.869&lt;br /&gt;
   Reduced chi-square = 229.1397&lt;br /&gt;
0&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
While the reduced chi-square is already much smaller, it is still very much above its ideal value of around unity. Let us take a look what the current best fit looks like by plotting it again:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough05.png|center]]&lt;br /&gt;
&lt;br /&gt;
The model describes the overall shape of the data rather well, but statistically significant residuals remain. We will tackle these in the next section, but first let us save our work so far such that we can start again from the current best fit in case our next steps are not successful:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; save_par(&amp;quot;powerlaw.par&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This creates a file called &amp;lt;code&amp;gt;powerlaw.par&amp;lt;/code&amp;gt; that can be re-read later using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; load_par(&amp;quot;powerlaw.par&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The file is a simple ASCII file that you can either just display on screen (using the unix-command &amp;lt;code&amp;gt;cat powerlaw.par&amp;lt;/code&amp;gt; from the shell or any editor of your choice.&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 3'''''&lt;br /&gt;
# Perform the procedure described above with &amp;quot;your&amp;quot; data set, documenting all steps.&lt;br /&gt;
# If you want to change more than one parameter at a time, instead of using &amp;lt;code&amp;gt;set_par&amp;lt;/code&amp;gt; you can also use the &amp;lt;code&amp;gt;edit_par&amp;lt;/code&amp;gt; function, which will invoke an editor of your choice with a table like the parameter table above. You can then overwrite all values with your new values, save this temporary file, and exit the editor. Try this with your data set.&lt;br /&gt;
&lt;br /&gt;
=== Improving the Initial Fit ===&lt;br /&gt;
&lt;br /&gt;
Now that we have an initial fit, we can take a closer look at the difference between the data and the model to get a feeling what we can do to improve the model. Since the data values and the model are already rather close together, guessing what is going on by looking at the slight differences between both is not very useful. We therefore plot our data again, but this time not only displaying the data but also the &amp;quot;residuals&amp;quot;, that is the difference between the data and the model:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_data(pca;res=1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This results in the following figure:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough06.png|center]]&lt;br /&gt;
&lt;br /&gt;
Note the following:&lt;br /&gt;
* instead of using &amp;lt;code&amp;gt;plot_counts&amp;lt;/code&amp;gt; we have used &amp;lt;code&amp;gt;plot_data&amp;lt;/code&amp;gt; (which is in reality an alias for the &amp;lt;code&amp;gt;plot_data_counts&amp;lt;/code&amp;gt; function). &amp;lt;code&amp;gt;plot_data&amp;lt;/code&amp;gt; displays the counts and the model in terms of counts per keV, while previously we used counts per PHA bin. This is the preferred way to plot X-ray data, since it is slightly closer to showing the proper spectrum than &amp;lt;code&amp;gt;plot_counts&amp;lt;/code&amp;gt;. &lt;br /&gt;
* Secondly, in addition to plotting the data we are also plotting the residuals, by using the &amp;quot;qualifier&amp;quot; &amp;lt;code&amp;gt;res=1&amp;lt;/code&amp;gt;. In Slang/isis, qualifiers are special switches in functions. They all have names (&amp;lt;code&amp;gt;res&amp;lt;/code&amp;gt; in the above example), i.e., the order in which they are listed after the initial semicolon does not matter. The most important ways of displaying residuals are&lt;br /&gt;
** &amp;lt;code&amp;gt;res=1&amp;lt;/code&amp;gt;: Display the residual in terms of chi, i.e., display the value of &amp;lt;latex&amp;gt;(data-model)/\sigma&amp;lt;/latex&amp;gt; where &amp;lt;latex&amp;gt;\sigma&amp;lt;/latex&amp;gt; is the statistical uncertainty of the bin.&lt;br /&gt;
** &amp;lt;code&amp;gt;res=3&amp;lt;/code&amp;gt;: Display the ratio between the data and the model, &amp;lt;latex&amp;gt;data/model&amp;lt;/latex&amp;gt;.&lt;br /&gt;
* other qualifiers that are useful in plotting are:&lt;br /&gt;
** &amp;lt;code&amp;gt;mcol=number&amp;lt;/code&amp;gt;: the color of the model, number is, well, a number. Avoid &amp;lt;code&amp;gt;mcol=3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mcol=5&amp;lt;/code&amp;gt; since these colors do not show up on beamers.&lt;br /&gt;
** &amp;lt;code&amp;gt;dcol=number&amp;lt;/code&amp;gt;: dito, for the data&lt;br /&gt;
** &amp;lt;code&amp;gt;decol=number&amp;lt;/code&amp;gt;: dito, for the error bars&lt;br /&gt;
** &amp;lt;code&amp;gt;bkg&amp;lt;/code&amp;gt;: if &amp;lt;code&amp;gt;bkg=0&amp;lt;/code&amp;gt; then plot the data with the background subtracted, if &amp;lt;code&amp;gt;bkg=1&amp;lt;/code&amp;gt; also show the background (this will be useful later).&lt;br /&gt;
** &amp;lt;code&amp;gt;xrange={min,max}&amp;lt;/code&amp;gt;: plot the x-axis from min to max only. Note the curly braces! Set &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;NULL&amp;lt;/code&amp;gt; if you want to reset this range to its default value. It is important to remember that &amp;lt;code&amp;gt;xrange&amp;lt;/code&amp;gt; just sets the ''plot''-range, you need to use &amp;lt;code&amp;gt;notice&amp;lt;/code&amp;gt; to set the energy range that is used for fitting.&lt;br /&gt;
** &amp;lt;code&amp;gt;yrange={min,max}&amp;lt;/code&amp;gt;: dito, for the y-axis.&lt;br /&gt;
&lt;br /&gt;
As an example, try&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_data(pca;res=1,mcol=2,dcol=1,decol=5);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The residuals in the plot tell us two things:&lt;br /&gt;
  - there is a &amp;quot;bump&amp;quot; around 6.4keV. This is typically an indication that there is an iron Kα line present around 6.4keV.&lt;br /&gt;
  - there is a &amp;quot;soft excess&amp;quot; at low energies, which might be indicative of an accretion disk.&lt;br /&gt;
&lt;br /&gt;
Looking at the [https://heasarc.gsfc.nasa.gov/xanadu/xspec/manual/XspecManual.html XSPEC] manual tells us that accretion disk spectra are modeled with the &amp;lt;code&amp;gt;diskbb&amp;lt;/code&amp;gt; model while emission lines are modeled using the &amp;lt;code&amp;gt;gauss&amp;lt;/code&amp;gt; model. However, reading the isis manual tells us that the ''only'' model that has a different name in isis and in XSPEC is &amp;lt;code&amp;gt;gauss&amp;lt;/code&amp;gt; where we will have to use &amp;lt;code&amp;gt;egauss&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
Based with this information we setup the new fit function as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; fit_fun(&amp;quot;tbabs(1)*(diskbb(1)+egauss(1)+powerlaw(1))&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and identify the new parameters with &amp;lt;code&amp;gt;list_par&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isis&amp;gt; list_par;&lt;br /&gt;
tbabs(1)*(diskbb(1)+egauss(1)+powerlaw(1))&lt;br /&gt;
 idx  param             tie-to  freeze         value         min         max&lt;br /&gt;
  1  tbabs(1).nH            0     0                0           0      100000  10^22&lt;br /&gt;
  2  diskbb(1).norm         0     0                1           0       1e+10  &lt;br /&gt;
  3  diskbb(1).Tin          0     0                1           0        1000  keV&lt;br /&gt;
  4  egauss(1).area         0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  5  egauss(1).center       0     0                1           0           0  keV&lt;br /&gt;
  6  egauss(1).sigma        0     0            0.002       1e-06           1  keV&lt;br /&gt;
  7  powerlaw(1).norm       0     0         13.27076           0       1e+10  &lt;br /&gt;
  8  powerlaw(1).PhoIndex   0     0         2.611357          -2           9  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We then set the center of the Gaussian to 6.4keV (&amp;lt;code&amp;gt;set_par(5,6.4);&amp;lt;/code&amp;gt;) and plot again. Nothing changes. The reason is that we first have to tell isis to recalculate the model. Not doing this automatically after every invocation of &amp;lt;code&amp;gt;set_par&amp;lt;/code&amp;gt; makes sense since some models might take up large amounts of CPU time. To recalculate the model, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; eval_counts;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Plot the model again (using &amp;lt;code&amp;gt;plot_data&amp;lt;/code&amp;gt;). You will notice that the Fe line is too strong. Reduce its flux accordingly by changing the &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt; parameter. You will probably need a few attempts to get something that looks ok. Then repeat this procedure with the parameters of the accretion disk until you get something that looks halfway ok. Save this attempt, just to be on the save side, and then perform a fit.&lt;br /&gt;
&lt;br /&gt;
Repeating the above a few times, I managed to coax the following best fit out of the data&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;&lt;br /&gt;
tbabs(1)*(diskbb(1)+egauss(1)+powerlaw(1))&lt;br /&gt;
 idx  param             tie-to  freeze         value         min         max&lt;br /&gt;
  1  tbabs(1).nH            0     0                0           0      100000  10^22&lt;br /&gt;
  2  diskbb(1).norm         0     0          4088.32           0       1e+10  &lt;br /&gt;
  3  diskbb(1).Tin          0     0        0.7163385           0        1000  keV&lt;br /&gt;
  4  egauss(1).area         0     0       0.07462147           0           0  photons/s/cm^2&lt;br /&gt;
  5  egauss(1).center       0     0         6.085836           0           0  keV&lt;br /&gt;
  6  egauss(1).sigma        0     0                1       1e-06           1  keV&lt;br /&gt;
  7  powerlaw(1).norm       0     0         2.948465           0       1e+10  &lt;br /&gt;
  8  powerlaw(1).PhoIndex   0     0         1.984697          -2           9  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Parameters[Variable] = 8[8]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 291.7067&lt;br /&gt;
   Reduced chi-square = 7.883964&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This fit looks the following:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough07.png|center]]&lt;br /&gt;
&lt;br /&gt;
This is quite ok for such a simple model. Note that there still is some hardening above 10keV and the residuals are not perfect around 8keV either. This is due to the too large width of the simple Gaussian line, limitations in the &amp;lt;code&amp;gt;diskbb&amp;lt;/code&amp;gt;-model, and the fact that in this data set the source was in its intermediate state, where the combination of the disk component and the power law is notoriously hard to model. &lt;br /&gt;
&lt;br /&gt;
'''''Exercise 4'''''&lt;br /&gt;
# you guessed it: try to find a good fit for your data set.&lt;br /&gt;
&lt;br /&gt;
=== Inspecting your data set outside of isis ===&lt;br /&gt;
&lt;br /&gt;
 You can take a look at what such a file looks like using the &amp;lt;code&amp;gt;fv&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;fdump&amp;lt;/code&amp;gt; programs, which are part of HEASOFT and should already be installed on your machine. ''Outside'' of isis, invoke fv with &amp;lt;pre&amp;gt;fv standard2f_0134off_top.pha&amp;lt;/pre&amp;gt; A window pops up that displays the contents of the file. Like all FITS files PHA&amp;lt;ref&amp;gt;&amp;quot;PHA&amp;quot; stands for ''pulse height analyzer'', since X-ray data do usually not contain real energy or wavelength information, since the limited resolution of X-ray detectors does usually not allow directly measuring the photon's energy with high precision&amp;lt;/ref&amp;gt; files consist of a so-called primary-header and then multiple extensions, which again contain some human-readable header data that contain information about your data set and the data itself. The header information is given as a keyword name, the value of the keyword, and often a comment that describes the meaning of the keyword. Important keywords are&lt;br /&gt;
** &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt;: The name of the observed object (a string defined by the observer, often - but not always - a meaningful name)&lt;br /&gt;
** &amp;lt;code&amp;gt;RA_OBJ&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEC_OBJ&amp;lt;/code&amp;gt;: The position of the object (often useful if the &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt;-keyword is not set or wrong)&lt;br /&gt;
** &amp;lt;code&amp;gt;TELESCOP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;INSTRUME&amp;lt;/code&amp;gt;: The satellite and instrument used&lt;br /&gt;
** &amp;lt;code&amp;gt;DATE-OBS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATE-END&amp;lt;/code&amp;gt;: The date and time of the start and the end of the observation&lt;br /&gt;
** &amp;lt;code&amp;gt;EXPOSURE&amp;lt;/code&amp;gt;: The exposure time, i.e., how long were data accumulated. Note that often &amp;lt;code&amp;gt;EXPOSURE&amp;lt;/code&amp;gt; is smaller than the difference between &amp;lt;code&amp;gt;DATE-OBS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATE-END&amp;lt;/code&amp;gt; since the detector could have been switched off for part of the observation, or data were discarded during the data reduction, e.g., because of large background fluxes&amp;lt;ref&amp;gt;The full information about the times during which the data in the spectrum were accumulated is contained in the so-called GTI (good time intervals) extension of the PHA-file&amp;lt;/ref&amp;gt;. &lt;br /&gt;
** &amp;lt;code&amp;gt;BACKFILE&amp;lt;/code&amp;gt;: The name of the PHA-file that defines the background, which is automatically subtracted from the data before fitting.&lt;br /&gt;
** &amp;lt;code&amp;gt;RESPFILE&amp;lt;/code&amp;gt;: The name of the file containing the detector response matrix (often called &amp;quot;RMF&amp;quot; or &amp;quot;RSP&amp;quot;, which describes the mapping from PHA-space to energy space and all detector effects.&lt;br /&gt;
** &amp;lt;code&amp;gt;ANCRFILE&amp;lt;/code&amp;gt;: The name of the ancilliary response file, often called ARF-file. This file is used by some instruments which separate the detector response into a pure energy redistribution matrix and an effective area. See the X-ray astronomy lectures for details. This keyword has the value &amp;lt;code&amp;gt;NONE&amp;lt;/code&amp;gt; if the ARF is already part of the response matrix.&lt;br /&gt;
** Further keywords depending on the satellite (often one finds, e.g., &amp;lt;code&amp;gt;TSTART&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TSTOP&amp;lt;/code&amp;gt; which contain the same information as &amp;lt;code&amp;gt;DATE-OBS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATE-END&amp;lt;/code&amp;gt;, only in a system that is easier to use in calculation than the human-readable information in &amp;lt;code&amp;gt;DATE-OBS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATE-END&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &amp;lt;code&amp;gt;standard2f_back_SkyVLE_top_good_0134off.pha&amp;lt;/code&amp;gt;: The background spectrum referred to in the &amp;lt;code&amp;gt;BACKFILE&amp;lt;/code&amp;gt; keyword of &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;p2_LR1_2010-07-04.rsp&amp;lt;/code&amp;gt;: The response matrix referred to in the &amp;lt;code&amp;gt;RESPFILE&amp;lt;/code&amp;gt; keyword of &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As mentioned above, you can either take a look at the files with &amp;lt;code&amp;gt;fv&amp;lt;/code&amp;gt;, or by dumping the FITS-file on the screen using the &amp;lt;code&amp;gt;fdump&amp;lt;/code&amp;gt; command. Here is the output of the latter, showing typical values of the keywords above:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~/isistut&amp;gt; fdump standard2f_0134off_top.pha&lt;br /&gt;
Name of optional output file[STDOUT] &lt;br /&gt;
Names of columns[] &lt;br /&gt;
Lists of rows[-] &lt;br /&gt;
SIMPLE  =                    T / file does conform to FITS standard&lt;br /&gt;
BITPIX  =                  -32 / number of bits per data pixel&lt;br /&gt;
NAXIS   =                    0 / number of data axes&lt;br /&gt;
EXTEND  =                    T / FITS dataset may contain extensions&lt;br /&gt;
COMMENT   FITS (Flexible Image Transport System) format is defined in 'Astronomy&lt;br /&gt;
COMMENT   and Astrophysics', volume 376, page 359; bibcode: 2001A&amp;amp;A...376..359H&lt;br /&gt;
:&lt;br /&gt;
: ... many further lines&lt;br /&gt;
:&lt;br /&gt;
XTENSION= 'BINTABLE'           / binary table extension&lt;br /&gt;
BITPIX  =                    8 / 8-bit bytes&lt;br /&gt;
:&lt;br /&gt;
:&lt;br /&gt;
EXTNAME = 'SPECTRUM'           / name of this binary table extension&lt;br /&gt;
:&lt;br /&gt;
TELESCOP= 'XTE     '           / Telescope (mission) name&lt;br /&gt;
INSTRUME= 'PCA     '           / Instrument name&lt;br /&gt;
FILTER  = 'NONE    '           / Instrument filter in use&lt;br /&gt;
EXPOSURE= 2.52800000000001E+03 / Exposure time&lt;br /&gt;
:&lt;br /&gt;
BACKFILE= 'standard2f_back_SkyVLE_top_good_0134off.pha' / Background FITS file f&lt;br /&gt;
CORRFILE= 'standard2f_back_SkyVLE_top_good_0134off.pha' / Correlation FITS file&lt;br /&gt;
RESPFILE= 'p2_LR1_2010-07-04.rsp' / Redistribution matrix file (RMF)&lt;br /&gt;
ANCRFILE= 'NONE    '           / Ancillary response file (ARF)&lt;br /&gt;
:&lt;br /&gt;
CREATOR = 'SAEXTRCT version 4.2g' / Program name that produced this file&lt;br /&gt;
DATE    = '2011-06-26T10:08:03' / file creation date (YYYY-MM-DDThh:mm:ss UT)&lt;br /&gt;
RA_OBJ  =       2.99591705E+02 / RA of First input object&lt;br /&gt;
DEC_OBJ =       3.52016983E+01 / DEC of First input object&lt;br /&gt;
EQUINOX =              2000.00 / Equinox of the FIRST object&lt;br /&gt;
:&lt;br /&gt;
DATASUM = '3317156129'         / data unit checksum updated 2011-06-26T10:08:03&lt;br /&gt;
END&lt;br /&gt;
 &lt;br /&gt;
        CHANNEL COUNTS                  STAT_ERR&lt;br /&gt;
                count                   count&lt;br /&gt;
      1      0    2.860600000000000E+04   1.691330836944682E+02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The data themselves give, for each PHA-channel, the number of counts measured in the &amp;lt;code&amp;gt;COUNTS&amp;lt;/code&amp;gt; column and the uncertainty of the data in the &amp;lt;code&amp;gt;STAT_ERR&amp;lt;/code&amp;gt; column. If the data have not been background subtracted before the analysis, which is typical for most instruments except for data from coded mask telescopes, then &amp;lt;code&amp;gt;STAT_ERR&amp;lt;/code&amp;gt; will usually have been determined assuming Poisson-statistics, i.e., it is the square-root of the value in &amp;lt;code&amp;gt;COUNTS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There are many more useful programs to inspect FITS-files. You can get an overview of what is available using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~/isistut&amp;gt; fhelp ftools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and if you only want to see the list of general (non satellite-specific) tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~/isistut&amp;gt; fhelp futils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Full information on individual ftools can be obtained with &amp;lt;code&amp;gt;fhelp toolname&amp;lt;/code&amp;gt;, e.g.,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~/isistut&amp;gt; fhelp fdump&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Other useful tools for inspecting FITS-files are, e.g., &amp;lt;code&amp;gt;fstruct&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;fstatistic&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Optional Exercise 1'''''&lt;br /&gt;
# For your example data set, determine the date of the observation, the exposure time, and the name of the background file.&lt;br /&gt;
# Use &amp;lt;code&amp;gt;fstruct&amp;lt;/code&amp;gt; to determine the structure of the backgrund file and confirm that it is the same as the structure of the PHA file containing the data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
[[Category:Isis / Slang]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_walkthrough&amp;diff=4012</id>
		<title>Isis tutorial walkthrough</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_walkthrough&amp;diff=4012"/>
		<updated>2026-02-12T16:41:32Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Adds hint to switch back to linear scaling before plotting the rmf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Walk Through ISIS ==&lt;br /&gt;
&lt;br /&gt;
In this first part of the tutorial, in order to get you started we will show you an example for a full X-ray data analysis using a fairly simple spectrum&amp;lt;ref&amp;gt;this section is mainly based on [http://space.mit.edu/home/mnowak/isis_vs_xspec/ Mike Nowak's introduction to isis]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the following tutorial, we will be working on a simple data set from an observation of a black hole, Cygnus X-1, that was obtained with NASA's Rossi X-ray Timing Explorer satellite. The test data set can be downloaded from [http://www.sternwarte.uni-erlangen.de/~wilms/isistut/ here]. It consists of the following parts:&lt;br /&gt;
* &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt; -- the spectrum itself. &lt;br /&gt;
* &amp;lt;code&amp;gt;standard2f_back_SkyVLE_top_good_0134off.pha&amp;lt;/code&amp;gt; -- The background spectrum (referred to in the &amp;lt;code&amp;gt;BACKFILE&amp;lt;/code&amp;gt; keyword of &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt;; see later for explanations).&lt;br /&gt;
* &amp;lt;code&amp;gt;p2_LR1_2009-05-06.rsp&amp;lt;/code&amp;gt; -- The response matrix (referred to in the &amp;lt;code&amp;gt;RESPFILE&amp;lt;/code&amp;gt; keyword of &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt;; see later for explanations)&lt;br /&gt;
The data are in FITS-format, a standard file format that is used in all of astronomy. Right now you can treat these files as a black box, at the end of this document there is some additional information about how to inspect the contents of these files outside of isis.&lt;br /&gt;
&lt;br /&gt;
=== Invoking isis ===&lt;br /&gt;
&lt;br /&gt;
Isis is a command-line program and is therefore usually executed from the command line (the details are explained in the installation instructions):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~&amp;gt; isis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which then prints out some start up messages before you end with the isis prompt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Welcome to ISIS Version 1.6.2-51&lt;br /&gt;
Copyright (C) 1998-2020 Massachusetts Institute of Technology&lt;br /&gt;
&lt;br /&gt;
          Isis web page: http://space.mit.edu/cxc/isis/&lt;br /&gt;
   Mailing list archive: http://space.mit.edu/cxc/isis/archive/&lt;br /&gt;
 Send questions to the mailing list: &amp;lt;isis-users@space.mit.edu&amp;gt;.&lt;br /&gt;
     For a summary of recent changes, type:  &amp;quot;help changes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
isis&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As part of its startup, isis executes a file called [[ISIS auto start (.isisrc)|.isisrc]], which is useful for setting up a standard environment.&lt;br /&gt;
&lt;br /&gt;
In the following we will show you an interactive session with isis. It is the typical approach when working with new data to look at these first by hand, in a way similar to that shown here. In later, more advanced analysis you will probably mainly interact with isis through programs, although it should be emphasized that working interactively with data first is always a good idea. This is the only way how you can get a good feeling for your data, even though automated reductions ''are'' important, especially when working on data sets with many different observations.&lt;br /&gt;
&lt;br /&gt;
For a more formal walk through through isis and the programming language s-lang, take a look at the [http://space.mit.edu/cxc/isis isis web page], especially the [https://space.mit.edu/cxc/isis/docs.html documentation] available there.&lt;br /&gt;
&lt;br /&gt;
=== Loading and Inspecting Your Data Set ===&lt;br /&gt;
&lt;br /&gt;
We now load the data we looked at before into isis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pca=load_data(&amp;quot;standard2f_0134off_top.pha&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;load_data&amp;lt;/code&amp;gt; command loads the file given as its argument and returns an unique number that identifies this data set. In the above example, this identifier is stored in the variable called &amp;lt;code&amp;gt;pca&amp;lt;/code&amp;gt; (it usually makes sense to use the name of the detector with which the data were taken, although there are exceptions).  Note that the command ends with a semicolon. This is standard in slang, the language on which isis is based. Although it is in principle possible to switch off this feature when working interactively with isis&amp;lt;ref&amp;gt;since you are curious: put&amp;lt;pre&amp;gt;Isis_Append_Semicolon=1;&amp;lt;/pre&amp;gt; in your &amp;lt;code&amp;gt;~/.isisrc&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;, we recommend you do not use this option -- having to type the semicolon requires you to think before doing something, which is generally a good idea ;-). &lt;br /&gt;
&lt;br /&gt;
If all goes fine, you will be informed that the response matrix includes the ARF. Now check whether isis loaded what you think it should have loaded by looking at some basic information about the background file, the RMF, and the ARF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_data;&lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1           PCA          0     129/  129   -   1  3.1773e+06     2.528  CYG_X-1&lt;br /&gt;
file:  standard2f_0134off_top.pha&lt;br /&gt;
back:  standard2f_back_SkyVLE_top_good_0134off.pha&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amongs others, the table columns include&lt;br /&gt;
* &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;: the identifier of this data set, &lt;br /&gt;
* &amp;lt;code&amp;gt;nbins&amp;lt;/code&amp;gt;: the number of spectral bins, &lt;br /&gt;
* &amp;lt;code&amp;gt;totcts&amp;lt;/code&amp;gt;: the total counts in the spectrum, &lt;br /&gt;
* &amp;lt;code&amp;gt;exp&amp;lt;/code&amp;gt;: the exposure time in kiloseconds, and &lt;br /&gt;
* &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;: the nominal source we are working with.&lt;br /&gt;
Finally, the output also lists the file name and the associated background file.&lt;br /&gt;
&lt;br /&gt;
Similar information can also be obtained for the response matrix and the ARF using the commands&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list_rmf;&lt;br /&gt;
list_arf;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that for your data set no information is given back for the ARF, since none was loaded.&lt;br /&gt;
&lt;br /&gt;
Like for all commands in isis, information about the commands can be obtained with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; help commandname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
so, for example,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; help list_arf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(If this does not give you help for the command you put in, you can try just&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; commandname;&lt;br /&gt;
&amp;lt;/pre&amp;gt; without any additional arguments. For some commands that works.)&lt;br /&gt;
Some of the help information might appear pure gibberish for you. Ignore this for the moment, with time it will all become clear to you.&lt;br /&gt;
&lt;br /&gt;
A second help function that is very useful is the &amp;lt;code&amp;gt;apropos&amp;lt;/code&amp;gt; command. For example, if you want to do something with an ARF, do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; apropos arf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which will return all isis commands that contain &amp;quot;arf&amp;quot; in their name.&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 1'''''&lt;br /&gt;
# Load your data set and check the information given by ISIS using the above commands.&lt;br /&gt;
&lt;br /&gt;
=== Plotting the Data ===&lt;br /&gt;
&lt;br /&gt;
X-ray data analysis of a data set that you do not yet know consists basically of the following steps:&lt;br /&gt;
# plot something&lt;br /&gt;
# think about what the plot/data set tries to tell you&lt;br /&gt;
# try something out (e.g., perform a fit)&lt;br /&gt;
# goto 1&lt;br /&gt;
and then repeat until you are convinced that everything works as expected. Depending on the data set, the above might take five minutes, but we also had complicated data sets that so far have resulted in 2-3 PhD theses...&lt;br /&gt;
&lt;br /&gt;
Therefore, as the first step, we take a look at our data.&lt;br /&gt;
&lt;br /&gt;
While isis contains some basic plotting routines, it is generally faster to use the very powerful plotting routines developed at MIT and at Remeis/ECAP to look at the data. The reason is that these are more user friendly than the basic isis routines.&lt;br /&gt;
&lt;br /&gt;
In order to do so, we first need to load the Remeis isis scripts. In our standard install, just do a&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; require(&amp;quot;isisscripts&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;isisscripts&amp;lt;/code&amp;gt; are a large set of useful routines developed by many people. If you use them for professional work, please contact J. Wilms first and ask whom to put in the acknowledgments of your paper. They are freely available through a git-repository.&lt;br /&gt;
&lt;br /&gt;
So let's plot the data set:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A window pops up, looking something like this&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough01.png|center]]&lt;br /&gt;
&lt;br /&gt;
In this standard display, not much can be seen except for the fact that the detector sensitivity is the best at low energies. For this reason, we first switch the plot over to a log-log plot and plot again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; xlog;&lt;br /&gt;
isis&amp;gt; ylog;&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This results in a much nicer plot. With the exception of gratings data, it is usually better to take a look at X-ray data in log-log space, so you should get used to switching over to log-space before doing any plots:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough02.png|center]]&lt;br /&gt;
&lt;br /&gt;
Note that what is shown are counts per PHA bin as a function of energy. Here, the response matrix is used to get an approximate conversion of the channel number to energy. The jump at around 20keV is not a spectral feature, but caused by the detector: at this energy, the standard data mode on RXTE PCA increases the energy width per PHA bin by a factor of two. Since the spectrum changes only slowly at this energy, because of the increase in width twice as many counts are detected in this bin. In addition, the feature at around 30keV is also a detector feature, it mainly reflects the change in sensitivity of this Xe-based proportional counter at the Xe-K-edge, which is at roughly 30keV.&lt;br /&gt;
&lt;br /&gt;
Experience for this detector shows that its calibration is best at energies between 3keV and 22keV, such that for the moment we will ignore what is happening outside of this energy band using isis' &amp;lt;code&amp;gt;notice&amp;lt;/code&amp;gt; function:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; notice_values(pca,3.,22.;unit=&amp;quot;keV&amp;quot;);&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that immediately after ignoring, we plot the data again in order to make sure that our command worked as intended. This way you can visually confirm, e.g., that a feature that you want to ignore really was outside of the energy range considered. Furthermore, note that we are explicitly telling isis to work in energy space. This is necessary since for historic reasons many isis commands are by default working in wavelength space.&lt;br /&gt;
&lt;br /&gt;
Other useful isis commands for noticing and ignoring energy and wavelength ranges are&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ignore(id);         % Ignore dataset id&lt;br /&gt;
notice(id,a,b);     % Notice wavelength range [a,b] in dataset id&lt;br /&gt;
notice_en(id,a,b);  % Notice energy range [a,b] in dataset id&lt;br /&gt;
xnotice(id,a,b);    % *Only* notice wavelength range [a,b] in dataset id&lt;br /&gt;
xnotice_en(id,a,b); % *Only* notice energy range [a,b] in dataset id&lt;br /&gt;
exclude(id);        % Don't change the ignored/noticed channels, but&lt;br /&gt;
                    % exclude the whole data set until reinstated with:&lt;br /&gt;
include(id);        % Reinstate the data with prior excluded channels&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can get more information about all of these commands with the &amp;lt;code&amp;gt;.help&amp;lt;/code&amp;gt;-command. Note that all of the above commands are &amp;quot;inclusive&amp;quot;, in the sense that the energy bins in the spectrum that include the two borders, a and b, are contained in the noticed energy band. &lt;br /&gt;
 &lt;br /&gt;
'''''Exercise 2'''''&lt;br /&gt;
# Perform the above steps for your data set. In the write up of your homework, include the relevant figures. Prepare these figures as publication-quality (postscript) figures. For this you will have to switch the output to postscript before plotting, and switch back to screen output afterwards:&lt;br /&gt;
&amp;lt;pre&amp;gt;isis&amp;gt;plotid = open_print(&amp;quot;example.ps/vcps&amp;quot;);&lt;br /&gt;
isis&amp;gt; keynote_size; nice_width;&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
isis&amp;gt; close_print(plotid);&lt;br /&gt;
&amp;lt;/pre&amp;gt; where &amp;lt;code&amp;gt;example.ps&amp;lt;/code&amp;gt; is the file name of the postscript file, and where &amp;lt;code&amp;gt;keynote_size&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;nice_width&amp;lt;/code&amp;gt; set the size of the figure to something that is appropriate for inclusion into a journal article. If you rather work with pdf, convert the ps-file to pdf afterwards, e.g., using Linux &amp;lt;code&amp;gt;epstopdf&amp;lt;/code&amp;gt; program.&lt;br /&gt;
&lt;br /&gt;
=== Inspecting ARF and RMF ===&lt;br /&gt;
&lt;br /&gt;
It is always useful in data analysis to have a feeling for the major features introduced by specific properties of the detector used to measure the data. For example, in the spectra above there are drops in detector sensitivity at the K- and L-edges of the detector gas. Usually, the regions around these edges are less well calibrated. Visualizing the ARF and RMF helps in this case (as does reading the user's manual for the satellite you're using...). &lt;br /&gt;
&lt;br /&gt;
Before trying to plot the RMF or ARF, make sure that you are using linear scaling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; xlin;&lt;br /&gt;
isis&amp;gt; ylin;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is easy to produce a plot of the RMF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; fits_plot_rmf(&amp;quot;p2_LR1_2009-05-06.rsp&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting plot should be similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:Rmf.png|center]]&lt;br /&gt;
&lt;br /&gt;
To visualize the sensitivity of the detector we need to plot the effective area of the detector as a function of energy. Depending on the instrument, the detector sensitivity is either saved as a separate ARF (Ancilliary Response File) or it is stored as part of the RMF. In the latter case isis will tell you so with the warning message &amp;quot;RMF includes the effective area&amp;quot; when you load the response. In this case we need to factor the response first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; rsp=load_rmf(&amp;quot;p2_LR1_2009-05-06.rsp&amp;quot;);&lt;br /&gt;
RMF includes the effective area&lt;br /&gt;
isis&amp;gt; arf=factor_rsp(rsp);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can then get the information about the effective area and plot it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; arfdata=get_arf(arf);&lt;br /&gt;
isis&amp;gt; xlog;&lt;br /&gt;
isis&amp;gt; hplot(_A(arfdata));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the function _A converts the wavelength information contained in the structure arfdata to keV.&lt;br /&gt;
&lt;br /&gt;
[[File:Arf.gif|center]]&lt;br /&gt;
&lt;br /&gt;
=== Performing a First Spectral Fit ===&lt;br /&gt;
&lt;br /&gt;
We are now ready to perform a first spectral fit. We first need to define the spectral model that we want to describe our data with. In general, one first tries to get a rough description of the data, which is for example based on earlier observations of the object and general astrophysical knowledge about the class of objects - if present -, and then refines this spectral model by adding further spectral components if an initial fit was successful. Isis includes a large number of spectral models. Since the models are derived from XSPEC, a good overview is given by the exhaustive list of the models in the [https://heasarc.gsfc.nasa.gov/xanadu/xspec/manual/XspecManual.html XSPEC manual].&lt;br /&gt;
&lt;br /&gt;
What model to use depends on the object one looks at. In most cases, one tries either a power law or a black body first and only later works with more CPU-intensive, physics-based models. Since all X-ray sources are absorbed by the interstellar medium in our Galaxy, one ''always'' includes Galactic absorption. &lt;br /&gt;
&lt;br /&gt;
Here, we know that Cygnus X-1 is a black hole. These often have power-law spectra. We therefore start by trying an absorbed power-law as our fit function:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt;fit_fun(&amp;quot;tbabs(1)*powerlaw(1)&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice the numbers behind the model components. These will be later used to distinguish different fit-functions, e.g., when one works with a source that has a spectrum that can be described as the sum of two power laws of different photon indices. &lt;br /&gt;
&lt;br /&gt;
Next we take a look at our fit parameters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;&lt;br /&gt;
tbabs(1)*powerlaw(1)&lt;br /&gt;
 idx  param             tie-to  freeze         value         min         max&lt;br /&gt;
  1  tbabs(1).nH            0     0                1           0      100000  10^22&lt;br /&gt;
  2  powerlaw(1).norm       0     0                1           0       1e+10  &lt;br /&gt;
  3  powerlaw(1).PhoIndex   0     0                1          -2           9  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amongst other information, which we will be discussing in a later tutorial, the table contains the following information:&lt;br /&gt;
* &amp;lt;code&amp;gt;idx&amp;lt;/code&amp;gt;: The index of the parameter (see below)&lt;br /&gt;
* &amp;lt;code&amp;gt;param&amp;lt;/code&amp;gt;: The name of the parameter. For example, &amp;lt;code&amp;gt;tbabs(1).nH&amp;lt;/code&amp;gt; is the absorption column (in units of 10^22 cm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt;. The physical meaning of the parameters is explained in the [https://heasarc.gsfc.nasa.gov/xanadu/xspec/manual/XspecManual.html XSPEC manual].&lt;br /&gt;
* &amp;lt;code&amp;gt;tie-to&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;freeze&amp;lt;/code&amp;gt;: see later&lt;br /&gt;
* &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: the current value of the parameter&lt;br /&gt;
* &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt;: The fit has to remain in the range between these two values.&lt;br /&gt;
&lt;br /&gt;
Before we do our first fit, we take a look at how this model looks like when folded through the detector response matrix. In order to do so we first ask isis to change the model flux such that the predicted count rate is close to the model count rate.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; renorm_counts;&lt;br /&gt;
: &lt;br /&gt;
 Parameters[Variable] = 3[1]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 898942.6&lt;br /&gt;
   Reduced chi-square = 20430.51&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isis has changed the parameter &amp;lt;code&amp;gt;powerlaw(1).norm&amp;lt;/code&amp;gt; and has left all other parameters unchanged:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;&lt;br /&gt;
tbabs(1)*powerlaw(1)&lt;br /&gt;
 idx  param             tie-to  freeze         value         min         max&lt;br /&gt;
  1  tbabs(1).nH            0     0                1           0      100000  10^22&lt;br /&gt;
  2  powerlaw(1).norm       0     0        0.4145608           0       1e+10  &lt;br /&gt;
  3  powerlaw(1).PhoIndex   0     0                1          -2           9 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now let us take a look at what the model looks like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The resulting plot looks something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough03.png|center]]&lt;br /&gt;
&lt;br /&gt;
Notice that the slope of the spectrum and the data is very different. With a photon index of 1 the spectrum is harder than the data. We therefore change the photon index to something that is more typical for black holes, renorm the spectrum and plot it again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; set_par(3,1.7);&lt;br /&gt;
isis&amp;gt; renorm_counts;&lt;br /&gt;
 Parameters[Variable] = 3[1]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 339671.5&lt;br /&gt;
   Reduced chi-square = 7719.808&lt;br /&gt;
0&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The resulting model looks like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough04.png|center]]&lt;br /&gt;
&lt;br /&gt;
Note that the overall slope now looks ok, but there is still some deviation between the data and the model at the soft part of the spectrum, where the model looks too much absorbed. Taking a look at the isis help for &amp;lt;code&amp;gt;set_par&amp;lt;/code&amp;gt;, we are being told that instead of changing the parameter by giving &amp;lt;code&amp;gt;set_par&amp;lt;/code&amp;gt; its index number, we could also have given the full name of the parameter. So let us remove some absorption to get the curvature at the low energies right, by setting N&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt; to its interstellar value of &amp;lt;latex&amp;gt;N_\mathrm{H}=3\times 10^{21}\,\mathrm{cm}^{-2}&amp;lt;/latex&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; set_par(&amp;quot;tbabs(1).nH&amp;quot;,0.3);&lt;br /&gt;
isis&amp;gt; renorm_counts;&lt;br /&gt;
 Parameters[Variable] = 3[1]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 314595.1&lt;br /&gt;
   Reduced chi-square = 7149.888&lt;br /&gt;
0&lt;br /&gt;
isis&amp;gt; plot_counts(pca);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the Chi-square value decreased, meaning that the new description of the model is slightly better than the previous one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We now have starting values that are good enough to start the proper fitting. Here isis is using a so-called Levenberg-Marquardt-gradient method to minimize chi-square by varying the parameters. This is done step by step, until a (possibly local) minimum is reached. In order to see how the parameters are being varied, we instruct isis to display all intermediate parameter values first, and then perform the fit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; Fit_Verbose=1;&lt;br /&gt;
isis&amp;gt; fit_counts();&lt;br /&gt;
chisqr= 3.1460e+05:&lt;br /&gt;
 tbabs(1).nH=  3.00000000e-01 powerlaw(1).norm=  2.26407499e+00&lt;br /&gt;
 powerlaw(1).PhoIndex=  1.70000000e+00&lt;br /&gt;
chisqr= 3.1460e+05:&lt;br /&gt;
 tbabs(1).nH=  3.00030000e-01 powerlaw(1).norm=  2.26407499e+00&lt;br /&gt;
 powerlaw(1).PhoIndex=  1.70000000e+00&lt;br /&gt;
:&lt;br /&gt;
: multiple further steps&lt;br /&gt;
:&lt;br /&gt;
chisqr= 9.6239e+03:&lt;br /&gt;
 tbabs(1).nH=  0.00000000e+00 powerlaw(1).norm=  1.32707632e+01&lt;br /&gt;
 powerlaw(1).PhoIndex=  2.61135748e+00&lt;br /&gt;
chi-square value converged&lt;br /&gt;
 Parameters[Variable] = 3[3]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 9623.869&lt;br /&gt;
   Reduced chi-square = 229.1397&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
While the reduced chi-square is already much smaller, it is still very much above its ideal value of around unity. Let us take a look what the current best fit looks like by plotting it again:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough05.png|center]]&lt;br /&gt;
&lt;br /&gt;
The model describes the overall shape of the data rather well, but statistically significant residuals remain. We will tackle these in the next section, but first let us save our work so far such that we can start again from the current best fit in case our next steps are not successful:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; save_par(&amp;quot;powerlaw.par&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This creates a file called &amp;lt;code&amp;gt;powerlaw.par&amp;lt;/code&amp;gt; that can be re-read later using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; load_par(&amp;quot;powerlaw.par&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The file is a simple ASCII file that you can either just display on screen (using the unix-command &amp;lt;code&amp;gt;cat powerlaw.par&amp;lt;/code&amp;gt; from the shell or any editor of your choice.&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 3'''''&lt;br /&gt;
# Perform the procedure described above with &amp;quot;your&amp;quot; data set, documenting all steps.&lt;br /&gt;
# If you want to change more than one parameter at a time, instead of using &amp;lt;code&amp;gt;set_par&amp;lt;/code&amp;gt; you can also use the &amp;lt;code&amp;gt;edit_par&amp;lt;/code&amp;gt; function, which will invoke an editor of your choice with a table like the parameter table above. You can then overwrite all values with your new values, save this temporary file, and exit the editor. Try this with your data set.&lt;br /&gt;
&lt;br /&gt;
=== Improving the Initial Fit ===&lt;br /&gt;
&lt;br /&gt;
Now that we have an initial fit, we can take a closer look at the difference between the data and the model to get a feeling what we can do to improve the model. Since the data values and the model are already rather close together, guessing what is going on by looking at the slight differences between both is not very useful. We therefore plot our data again, but this time not only displaying the data but also the &amp;quot;residuals&amp;quot;, that is the difference between the data and the model:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_data(pca;res=1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This results in the following figure:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough06.png|center]]&lt;br /&gt;
&lt;br /&gt;
Note the following:&lt;br /&gt;
* instead of using &amp;lt;code&amp;gt;plot_counts&amp;lt;/code&amp;gt; we have used &amp;lt;code&amp;gt;plot_data&amp;lt;/code&amp;gt; (which is in reality an alias for the &amp;lt;code&amp;gt;plot_data_counts&amp;lt;/code&amp;gt; function). &amp;lt;code&amp;gt;plot_data&amp;lt;/code&amp;gt; displays the counts and the model in terms of counts per keV, while previously we used counts per PHA bin. This is the preferred way to plot X-ray data, since it is slightly closer to showing the proper spectrum than &amp;lt;code&amp;gt;plot_counts&amp;lt;/code&amp;gt;. &lt;br /&gt;
* Secondly, in addition to plotting the data we are also plotting the residuals, by using the &amp;quot;qualifier&amp;quot; &amp;lt;code&amp;gt;res=1&amp;lt;/code&amp;gt;. In Slang/isis, qualifiers are special switches in functions. They all have names (&amp;lt;code&amp;gt;res&amp;lt;/code&amp;gt; in the above example), i.e., the order in which they are listed after the initial semicolon does not matter. The most important ways of displaying residuals are&lt;br /&gt;
** &amp;lt;code&amp;gt;res=1&amp;lt;/code&amp;gt;: Display the residual in terms of chi, i.e., display the value of &amp;lt;latex&amp;gt;(data-model)/\sigma&amp;lt;/latex&amp;gt; where &amp;lt;latex&amp;gt;\sigma&amp;lt;/latex&amp;gt; is the statistical uncertainty of the bin.&lt;br /&gt;
** &amp;lt;code&amp;gt;res=3&amp;lt;/code&amp;gt;: Display the ratio between the data and the model, &amp;lt;latex&amp;gt;data/model&amp;lt;/latex&amp;gt;.&lt;br /&gt;
* other qualifiers that are useful in plotting are:&lt;br /&gt;
** &amp;lt;code&amp;gt;mcol=number&amp;lt;/code&amp;gt;: the color of the model, number is, well, a number. Avoid &amp;lt;code&amp;gt;mcol=3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mcol=5&amp;lt;/code&amp;gt; since these colors do not show up on beamers.&lt;br /&gt;
** &amp;lt;code&amp;gt;dcol=number&amp;lt;/code&amp;gt;: dito, for the data&lt;br /&gt;
** &amp;lt;code&amp;gt;decol=number&amp;lt;/code&amp;gt;: dito, for the error bars&lt;br /&gt;
** &amp;lt;code&amp;gt;bkg&amp;lt;/code&amp;gt;: if &amp;lt;code&amp;gt;bkg=0&amp;lt;/code&amp;gt; then plot the data with the background subtracted, if &amp;lt;code&amp;gt;bkg=1&amp;lt;/code&amp;gt; also show the background (this will be useful later).&lt;br /&gt;
** &amp;lt;code&amp;gt;xrange={min,max}&amp;lt;/code&amp;gt;: plot the x-axis from min to max only. Note the curly braces! Set &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;NULL&amp;lt;/code&amp;gt; if you want to reset this range to its default value. It is important to remember that &amp;lt;code&amp;gt;xrange&amp;lt;/code&amp;gt; just sets the ''plot''-range, you need to use &amp;lt;code&amp;gt;notice&amp;lt;/code&amp;gt; to set the energy range that is used for fitting.&lt;br /&gt;
** &amp;lt;code&amp;gt;yrange={min,max}&amp;lt;/code&amp;gt;: dito, for the y-axis.&lt;br /&gt;
&lt;br /&gt;
As an example, try&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_data(pca;res=1,mcol=2,dcol=1,decol=5);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The residuals in the plot tell us two things:&lt;br /&gt;
  - there is a &amp;quot;bump&amp;quot; around 6.4keV. This is typically an indication that there is an iron Kα line present around 6.4keV.&lt;br /&gt;
  - there is a &amp;quot;soft excess&amp;quot; at low energies, which might be indicative of an accretion disk.&lt;br /&gt;
&lt;br /&gt;
Looking at the [https://heasarc.gsfc.nasa.gov/xanadu/xspec/manual/XspecManual.html XSPEC] manual tells us that accretion disk spectra are modeled with the &amp;lt;code&amp;gt;diskbb&amp;lt;/code&amp;gt; model while emission lines are modeled using the &amp;lt;code&amp;gt;gauss&amp;lt;/code&amp;gt; model. However, reading the isis manual tells us that the ''only'' model that has a different name in isis and in XSPEC is &amp;lt;code&amp;gt;gauss&amp;lt;/code&amp;gt; where we will have to use &amp;lt;code&amp;gt;egauss&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
Based with this information we setup the new fit function as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; fit_fun(&amp;quot;tbabs(1)*(diskbb(1)+egauss(1)+powerlaw(1))&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and identify the new parameters with &amp;lt;code&amp;gt;list_par&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isis&amp;gt; list_par;&lt;br /&gt;
tbabs(1)*(diskbb(1)+egauss(1)+powerlaw(1))&lt;br /&gt;
 idx  param             tie-to  freeze         value         min         max&lt;br /&gt;
  1  tbabs(1).nH            0     0                0           0      100000  10^22&lt;br /&gt;
  2  diskbb(1).norm         0     0                1           0       1e+10  &lt;br /&gt;
  3  diskbb(1).Tin          0     0                1           0        1000  keV&lt;br /&gt;
  4  egauss(1).area         0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  5  egauss(1).center       0     0                1           0           0  keV&lt;br /&gt;
  6  egauss(1).sigma        0     0            0.002       1e-06           1  keV&lt;br /&gt;
  7  powerlaw(1).norm       0     0         13.27076           0       1e+10  &lt;br /&gt;
  8  powerlaw(1).PhoIndex   0     0         2.611357          -2           9  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We then set the center of the Gaussian to 6.4keV (&amp;lt;code&amp;gt;set_par(5,6.4);&amp;lt;/code&amp;gt;) and plot again. Nothing changes. The reason is that we first have to tell isis to recalculate the model. Not doing this automatically after every invocation of &amp;lt;code&amp;gt;set_par&amp;lt;/code&amp;gt; makes sense since some models might take up large amounts of CPU time. To recalculate the model, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; eval_counts;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Plot the model again (using &amp;lt;code&amp;gt;plot_data&amp;lt;/code&amp;gt;). You will notice that the Fe line is too strong. Reduce its flux accordingly by changing the &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt; parameter. You will probably need a few attempts to get something that looks ok. Then repeat this procedure with the parameters of the accretion disk until you get something that looks halfway ok. Save this attempt, just to be on the save side, and then perform a fit.&lt;br /&gt;
&lt;br /&gt;
Repeating the above a few times, I managed to coax the following best fit out of the data&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;&lt;br /&gt;
tbabs(1)*(diskbb(1)+egauss(1)+powerlaw(1))&lt;br /&gt;
 idx  param             tie-to  freeze         value         min         max&lt;br /&gt;
  1  tbabs(1).nH            0     0                0           0      100000  10^22&lt;br /&gt;
  2  diskbb(1).norm         0     0          4088.32           0       1e+10  &lt;br /&gt;
  3  diskbb(1).Tin          0     0        0.7163385           0        1000  keV&lt;br /&gt;
  4  egauss(1).area         0     0       0.07462147           0           0  photons/s/cm^2&lt;br /&gt;
  5  egauss(1).center       0     0         6.085836           0           0  keV&lt;br /&gt;
  6  egauss(1).sigma        0     0                1       1e-06           1  keV&lt;br /&gt;
  7  powerlaw(1).norm       0     0         2.948465           0       1e+10  &lt;br /&gt;
  8  powerlaw(1).PhoIndex   0     0         1.984697          -2           9  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Parameters[Variable] = 8[8]&lt;br /&gt;
            Data bins = 45&lt;br /&gt;
           Chi-square = 291.7067&lt;br /&gt;
   Reduced chi-square = 7.883964&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This fit looks the following:&lt;br /&gt;
&lt;br /&gt;
[[File:Walkthrough07.png|center]]&lt;br /&gt;
&lt;br /&gt;
This is quite ok for such a simple model. Note that there still is some hardening above 10keV and the residuals are not perfect around 8keV either. This is due to the too large width of the simple Gaussian line, limitations in the &amp;lt;code&amp;gt;diskbb&amp;lt;/code&amp;gt;-model, and the fact that in this data set the source was in its intermediate state, where the combination of the disk component and the power law is notoriously hard to model. &lt;br /&gt;
&lt;br /&gt;
'''''Exercise 4'''''&lt;br /&gt;
# you guessed it: try to find a good fit for your data set.&lt;br /&gt;
&lt;br /&gt;
=== Inspecting your data set outside of isis ===&lt;br /&gt;
&lt;br /&gt;
 You can take a look at what such a file looks like using the &amp;lt;code&amp;gt;fv&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;fdump&amp;lt;/code&amp;gt; programs, which are part of HEASOFT and should already be installed on your machine. ''Outside'' of isis, invoke fv with &amp;lt;pre&amp;gt;fv standard2f_0134off_top.pha&amp;lt;/pre&amp;gt; A window pops up that displays the contents of the file. Like all FITS files PHA&amp;lt;ref&amp;gt;&amp;quot;PHA&amp;quot; stands for ''pulse height analyzer'', since X-ray data do usually not contain real energy or wavelength information, since the limited resolution of X-ray detectors does usually not allow directly measuring the photon's energy with high precision&amp;lt;/ref&amp;gt; files consist of a so-called primary-header and then multiple extensions, which again contain some human-readable header data that contain information about your data set and the data itself. The header information is given as a keyword name, the value of the keyword, and often a comment that describes the meaning of the keyword. Important keywords are&lt;br /&gt;
** &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt;: The name of the observed object (a string defined by the observer, often - but not always - a meaningful name)&lt;br /&gt;
** &amp;lt;code&amp;gt;RA_OBJ&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEC_OBJ&amp;lt;/code&amp;gt;: The position of the object (often useful if the &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt;-keyword is not set or wrong)&lt;br /&gt;
** &amp;lt;code&amp;gt;TELESCOP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;INSTRUME&amp;lt;/code&amp;gt;: The satellite and instrument used&lt;br /&gt;
** &amp;lt;code&amp;gt;DATE-OBS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATE-END&amp;lt;/code&amp;gt;: The date and time of the start and the end of the observation&lt;br /&gt;
** &amp;lt;code&amp;gt;EXPOSURE&amp;lt;/code&amp;gt;: The exposure time, i.e., how long were data accumulated. Note that often &amp;lt;code&amp;gt;EXPOSURE&amp;lt;/code&amp;gt; is smaller than the difference between &amp;lt;code&amp;gt;DATE-OBS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATE-END&amp;lt;/code&amp;gt; since the detector could have been switched off for part of the observation, or data were discarded during the data reduction, e.g., because of large background fluxes&amp;lt;ref&amp;gt;The full information about the times during which the data in the spectrum were accumulated is contained in the so-called GTI (good time intervals) extension of the PHA-file&amp;lt;/ref&amp;gt;. &lt;br /&gt;
** &amp;lt;code&amp;gt;BACKFILE&amp;lt;/code&amp;gt;: The name of the PHA-file that defines the background, which is automatically subtracted from the data before fitting.&lt;br /&gt;
** &amp;lt;code&amp;gt;RESPFILE&amp;lt;/code&amp;gt;: The name of the file containing the detector response matrix (often called &amp;quot;RMF&amp;quot; or &amp;quot;RSP&amp;quot;, which describes the mapping from PHA-space to energy space and all detector effects.&lt;br /&gt;
** &amp;lt;code&amp;gt;ANCRFILE&amp;lt;/code&amp;gt;: The name of the ancilliary response file, often called ARF-file. This file is used by some instruments which separate the detector response into a pure energy redistribution matrix and an effective area. See the X-ray astronomy lectures for details. This keyword has the value &amp;lt;code&amp;gt;NONE&amp;lt;/code&amp;gt; if the ARF is already part of the response matrix.&lt;br /&gt;
** Further keywords depending on the satellite (often one finds, e.g., &amp;lt;code&amp;gt;TSTART&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TSTOP&amp;lt;/code&amp;gt; which contain the same information as &amp;lt;code&amp;gt;DATE-OBS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATE-END&amp;lt;/code&amp;gt;, only in a system that is easier to use in calculation than the human-readable information in &amp;lt;code&amp;gt;DATE-OBS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DATE-END&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &amp;lt;code&amp;gt;standard2f_back_SkyVLE_top_good_0134off.pha&amp;lt;/code&amp;gt;: The background spectrum referred to in the &amp;lt;code&amp;gt;BACKFILE&amp;lt;/code&amp;gt; keyword of &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;p2_LR1_2010-07-04.rsp&amp;lt;/code&amp;gt;: The response matrix referred to in the &amp;lt;code&amp;gt;RESPFILE&amp;lt;/code&amp;gt; keyword of &amp;lt;code&amp;gt;standard2f_0134off_top.pha&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As mentioned above, you can either take a look at the files with &amp;lt;code&amp;gt;fv&amp;lt;/code&amp;gt;, or by dumping the FITS-file on the screen using the &amp;lt;code&amp;gt;fdump&amp;lt;/code&amp;gt; command. Here is the output of the latter, showing typical values of the keywords above:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~/isistut&amp;gt; fdump standard2f_0134off_top.pha&lt;br /&gt;
Name of optional output file[STDOUT] &lt;br /&gt;
Names of columns[] &lt;br /&gt;
Lists of rows[-] &lt;br /&gt;
SIMPLE  =                    T / file does conform to FITS standard&lt;br /&gt;
BITPIX  =                  -32 / number of bits per data pixel&lt;br /&gt;
NAXIS   =                    0 / number of data axes&lt;br /&gt;
EXTEND  =                    T / FITS dataset may contain extensions&lt;br /&gt;
COMMENT   FITS (Flexible Image Transport System) format is defined in 'Astronomy&lt;br /&gt;
COMMENT   and Astrophysics', volume 376, page 359; bibcode: 2001A&amp;amp;A...376..359H&lt;br /&gt;
:&lt;br /&gt;
: ... many further lines&lt;br /&gt;
:&lt;br /&gt;
XTENSION= 'BINTABLE'           / binary table extension&lt;br /&gt;
BITPIX  =                    8 / 8-bit bytes&lt;br /&gt;
:&lt;br /&gt;
:&lt;br /&gt;
EXTNAME = 'SPECTRUM'           / name of this binary table extension&lt;br /&gt;
:&lt;br /&gt;
TELESCOP= 'XTE     '           / Telescope (mission) name&lt;br /&gt;
INSTRUME= 'PCA     '           / Instrument name&lt;br /&gt;
FILTER  = 'NONE    '           / Instrument filter in use&lt;br /&gt;
EXPOSURE= 2.52800000000001E+03 / Exposure time&lt;br /&gt;
:&lt;br /&gt;
BACKFILE= 'standard2f_back_SkyVLE_top_good_0134off.pha' / Background FITS file f&lt;br /&gt;
CORRFILE= 'standard2f_back_SkyVLE_top_good_0134off.pha' / Correlation FITS file&lt;br /&gt;
RESPFILE= 'p2_LR1_2010-07-04.rsp' / Redistribution matrix file (RMF)&lt;br /&gt;
ANCRFILE= 'NONE    '           / Ancillary response file (ARF)&lt;br /&gt;
:&lt;br /&gt;
CREATOR = 'SAEXTRCT version 4.2g' / Program name that produced this file&lt;br /&gt;
DATE    = '2011-06-26T10:08:03' / file creation date (YYYY-MM-DDThh:mm:ss UT)&lt;br /&gt;
RA_OBJ  =       2.99591705E+02 / RA of First input object&lt;br /&gt;
DEC_OBJ =       3.52016983E+01 / DEC of First input object&lt;br /&gt;
EQUINOX =              2000.00 / Equinox of the FIRST object&lt;br /&gt;
:&lt;br /&gt;
DATASUM = '3317156129'         / data unit checksum updated 2011-06-26T10:08:03&lt;br /&gt;
END&lt;br /&gt;
 &lt;br /&gt;
        CHANNEL COUNTS                  STAT_ERR&lt;br /&gt;
                count                   count&lt;br /&gt;
      1      0    2.860600000000000E+04   1.691330836944682E+02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The data themselves give, for each PHA-channel, the number of counts measured in the &amp;lt;code&amp;gt;COUNTS&amp;lt;/code&amp;gt; column and the uncertainty of the data in the &amp;lt;code&amp;gt;STAT_ERR&amp;lt;/code&amp;gt; column. If the data have not been background subtracted before the analysis, which is typical for most instruments except for data from coded mask telescopes, then &amp;lt;code&amp;gt;STAT_ERR&amp;lt;/code&amp;gt; will usually have been determined assuming Poisson-statistics, i.e., it is the square-root of the value in &amp;lt;code&amp;gt;COUNTS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There are many more useful programs to inspect FITS-files. You can get an overview of what is available using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~/isistut&amp;gt; fhelp ftools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and if you only want to see the list of general (non satellite-specific) tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~/isistut&amp;gt; fhelp futils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Full information on individual ftools can be obtained with &amp;lt;code&amp;gt;fhelp toolname&amp;lt;/code&amp;gt;, e.g.,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wilms@leo:~/isistut&amp;gt; fhelp fdump&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Other useful tools for inspecting FITS-files are, e.g., &amp;lt;code&amp;gt;fstruct&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;fstatistic&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Optional Exercise 1'''''&lt;br /&gt;
# For your example data set, determine the date of the observation, the exposure time, and the name of the background file.&lt;br /&gt;
# Use &amp;lt;code&amp;gt;fstruct&amp;lt;/code&amp;gt; to determine the structure of the backgrund file and confirm that it is the same as the structure of the PHA file containing the data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
[[Category:Isis / Slang]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_gratings&amp;diff=2785</id>
		<title>Isis tutorial gratings</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_gratings&amp;diff=2785"/>
		<updated>2023-02-21T11:54:59Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Further Data Fitting ==&lt;br /&gt;
&lt;br /&gt;
The walk through isis has given you a first overview of a simple X-ray spectral analysis. In this part of the tutorial we build upon this experience by performing a more complicated analysis of Chandra gratings spectra. You will learn about X-ray data archives and what to do when not all keywords are set in a X-ray spectral file. Furthermore we introduce an important X-ray diagnostics for tenuous plasmas.&lt;br /&gt;
&lt;br /&gt;
=== Data Archives and the ADS ===&lt;br /&gt;
&lt;br /&gt;
==== ADS ====&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will demonstrate the analysis of Chandra gratings data of stellar spectra and try to reproduce the results obtained by [http://adsabs.harvard.edu/abs/2002A%26A...394..911N Jan-Uwe Ness et al., 2002, Coronal density diagnostics with Helium-like triplets: CHANDRA-LETGS observations of Algol, Capella, Procyon, epsilon Eri, alpha Cen A&amp;amp;B, UX Ari, AD Leo, YY Gem, and HR 1099, Astronomy and Astrophysics 394, 911]. &lt;br /&gt;
&lt;br /&gt;
'''''Exercise 1'''''&lt;br /&gt;
* Go to the [http://adsabs.harvard.edu/abstract_service.html ADS Abstract Service] and search for the above paper. The best way to do this is to enter &amp;lt;code&amp;gt;^Ness&amp;lt;/code&amp;gt; for the Author and &amp;lt;code&amp;gt;Capella&amp;lt;/code&amp;gt; for the Object. The ADS is the best data base to find astronomical literature. It goes back to the early 1800s and is almost complete for the past 50 years or so. It will be very worth your time to familiarize yourself with searching papers there - even if you do not want to do astronomy in the end but other areas of physics, which are indexed in the ADS as well. In order to make sure that you really did the search and did not just click the link above, what is the newest paper published by this author?&lt;br /&gt;
&lt;br /&gt;
* Download, print, and read this paper. Yes, really, print it - you will need to refer to this paper often and you might want to scribble comments on your paper copy and you will read the paper much more intensively if it is not on a computer screen. In order to get to the PDF-copy of the paper, click on &amp;quot;Full Refereed Journal Article (PDF/Postscript)&amp;quot; in the above link. You will see it is colored in green, meaning that the paper is not behind a paywall. This is not the case for new articles, unfortunately, in this case you can always go to the arXiv-Link and get a preprint from there. Virtually all important astronomical papers can be found this way. &lt;br /&gt;
&lt;br /&gt;
==== Data Archives ====&lt;br /&gt;
&lt;br /&gt;
Here, we will show you how to perform the analysis of Capella, in your homework you will work on one of the other sources. Like the analysis of data from all other X-ray satellites, the reduction of Chandra gratings data can become very involved. Since we &amp;quot;just&amp;quot; want to analyze the time averaged spectrum of the source, we are lucky that somebody else (well, the Chandra gratings team) has done the work for us and has put the reduced spectra on the WWW for us. Such archives of pre-reduced data exist for all satellites, and while I caution ''not'' to use the reduced data in these archives for publication-level work, they are useful to get a feel for what is available (the reason why you do not want to use these data for publication level work is that you will typically have to apply a newer version of the detector calibration, different background screening criteria, different time intervals, and so on). TGCat is an important archive for Chandra data:&lt;br /&gt;
&lt;br /&gt;
* [http://tgcat.mit.edu/ TGCat] contains all public observations performed with the Chandra transmission gratings spectrometers. The user interface is self-explanatory and there is a nice help section available. If you know the name of the object you're interested in, click on &amp;quot;Query&amp;quot; at the top and select &amp;quot;Name&amp;quot;. Then enter the name of your source in the &amp;quot;Target list&amp;quot; box and hit submit. You'll get a list of matching sources known to TGCat. Then click on the object name and you will be getting a list of all available observations. Then select the observations you want to analyze and finally click on &amp;quot;Actions&amp;quot; on the top and select &amp;quot;Download&amp;quot;. You may also select the auxiliary data types (and explore them later on your own). Provide a working Email address and click on &amp;quot;Apply&amp;quot;. The system will process your request and send you an Email when the data is ready for download (make take a bit,though). &lt;br /&gt;
&lt;br /&gt;
For other missions like XMM-Newton there are of course similar archives available.&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 2'''''&lt;br /&gt;
* Download the observation with the longest exposure time available for the object you are interested in, unless your instructions say otherwise. If possible, disregard the observations where the HRC was in the focal plane, i.e., look at the ACIS-observations only (the HRC is not energy dispersive, and therefore order sorting is not so easy with this detector).&lt;br /&gt;
&lt;br /&gt;
Select the data, ask TGCat to send you an email, and then download the file. For example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://tgcat.mit.edu/tmp/1337349938_174950000/tgcat.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unpack it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar xzvf tgcat.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For Capella, we download the data from observation ID 8319. The data set looks as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hde226868:~/isistut&amp;gt; cd tgcat&lt;br /&gt;
hde226868:~/isistut/tgcat&amp;gt; ls -l&lt;br /&gt;
total 16&lt;br /&gt;
drwxr-xr-x 3 wilms wilms 4096 May 18 16:05 .&lt;br /&gt;
drwxr-xr-x 3 wilms wilms 4096 May 20 14:05 ..&lt;br /&gt;
-rw-r--r-- 1 wilms wilms  327 May 18 16:05 checksums.dat&lt;br /&gt;
drwxr-xr-x 2 wilms wilms 4096 May 18 16:05 obs_8319_tgid_3283&lt;br /&gt;
hde226868:~/isistut/tgcat&amp;gt; cd obs_8319_tgid_3283&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; ls -l&lt;br /&gt;
total 15648&lt;br /&gt;
-r--r--r-- 1 wilms wilms 1419840 May 18 16:05 pha2.gz&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_-1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7030080 May 18 16:05 leg_-1.rmf&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7032960 May 18 16:05 leg_1.rmf&lt;br /&gt;
-rw-r--r-- 1 wilms wilms      71 May 18 16:05 vv_report.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The spectral file is called &amp;lt;code&amp;gt;pha2.gz&amp;lt;/code&amp;gt;, which is not a very meaningful name, so we unpack it and rename it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; gunzip pha2.gz&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; mv pha2 capella.pha2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the name &amp;lt;code&amp;gt;pha2&amp;lt;/code&amp;gt;. In the walkthrough we encountered PHA-files, which contain one spectrum. &amp;lt;code&amp;gt;pha2&amp;lt;/code&amp;gt;-files contain multiple spectra. They are used, for example, in pulse phase resolved spectroscopy of neutron stars or in gratings spectra, where they contain multiple spectra.&lt;br /&gt;
&lt;br /&gt;
''''' Exercise 3 '''''&lt;br /&gt;
&lt;br /&gt;
* Take a look at the contents of your pha2-file using &amp;lt;code&amp;gt;fv&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;fstruct&amp;lt;/code&amp;gt;. Note that each &amp;quot;row&amp;quot; in the pha2-file now contains one spectrum.&lt;br /&gt;
&lt;br /&gt;
==== Preparing Gratings Data for Fitting ====&lt;br /&gt;
&lt;br /&gt;
We now enter &amp;quot;isis&amp;quot;, load the &amp;quot;isisscripts&amp;quot;, and load our data set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; isis&lt;br /&gt;
:&lt;br /&gt;
isis&amp;gt; require(&amp;quot;isisscripts&amp;quot;);           &lt;br /&gt;
:&lt;br /&gt;
isis&amp;gt; capella=load_data(&amp;quot;capella.pha2&amp;quot;);&lt;br /&gt;
Reading: ......&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As usual, we first take a look at what has been loaded, this time using a helpful function from the &amp;quot;isisscripts&amp;quot; that lists the data and the loaded &amp;quot;ARF&amp;quot;- and &amp;quot;RMF&amp;quot;-files.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_all;              &lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1     LETG-ACIS  leg-3   1    8192/ 8192   -   -  1.0222e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  2     LETG-ACIS  leg-2   1    8192/ 8192   -   -  4.4290e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  3     LETG-ACIS  leg-1   1    8192/ 8192   -   -  7.0583e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  4     LETG-ACIS  leg+1   1    8192/ 8192   -   -  1.1496e+05    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  5     LETG-ACIS  leg+2   1    8192/ 8192   -   -  4.7930e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  6     LETG-ACIS  leg+3   1    8192/ 8192   -   -  6.2380e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We note two things:&lt;br /&gt;
# &amp;lt;code&amp;gt;load_data&amp;lt;/code&amp;gt; loaded all contents of the &amp;lt;code&amp;gt;pha2&amp;lt;/code&amp;gt;-file,  total of '''six''' spectra. What these spectra are is identified in the &amp;lt;code&amp;gt;part/m&amp;lt;/code&amp;gt;-column: &amp;lt;code&amp;gt;leg&amp;lt;/code&amp;gt; is the &amp;quot;low energy grating&amp;quot; of Chandra-HETGS (the other grating would be called &amp;lt;code&amp;gt;meg&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;medium energy grating&amp;lt;/code&amp;gt;), and -3, -2, -1, +1, +2, +3 identifies the order of the spectrum.&lt;br /&gt;
# No &amp;lt;code&amp;gt;ARF&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RMF&amp;lt;/code&amp;gt; are listed. This means that while the spectra have been loaded we still need to tell &amp;lt;code&amp;gt;isis&amp;lt;/code&amp;gt; what &amp;lt;code&amp;gt;ARF&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RMF&amp;lt;/code&amp;gt; to use for the spectra (you can also see this by noticing the dashes in the &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; columns).&lt;br /&gt;
&lt;br /&gt;
We now remind ourselves what responses and ARF we were provided with, by using isis' &amp;quot;shell escape&amp;quot;. This means that within isis we can precede a normal shell command by an exclamation mark to have it executed by the shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 isis&amp;gt; !ls -l&lt;br /&gt;
total 15648&lt;br /&gt;
-r--r--r-- 1 wilms wilms 1419840 May 18 16:05 capella.pha2&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_-1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7030080 May 18 16:05 leg_-1.rmf&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7032960 May 18 16:05 leg_1.rmf&lt;br /&gt;
-rw-r--r-- 1 wilms wilms      71 May 18 16:05 vv_report.txt&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This means that we only have RMFs and ARFs available for the first order and we will have to ignore the higher orders. This is fine since most photons end up in the 1st order anyway. Let us now load the files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; arfm1=load_arf(&amp;quot;leg_-1.arf&amp;quot;); &lt;br /&gt;
isis&amp;gt; arfp1=load_arf(&amp;quot;leg_1.arf&amp;quot;);&lt;br /&gt;
isis&amp;gt; rmfm1=load_rmf(&amp;quot;leg_-1.rmf&amp;quot;);&lt;br /&gt;
isis&amp;gt; rmfp1=load_rmf(&amp;quot;leg_1.rmf&amp;quot;); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and check that everything went fine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_all; &lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1     LETG-ACIS  leg-3   1    8192/ 8192   -   -  1.0222e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  2     LETG-ACIS  leg-2   1    8192/ 8192   -   -  4.4290e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  3     LETG-ACIS  leg-1   1    8192/ 8192   -   -  7.0583e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  4     LETG-ACIS  leg+1   1    8192/ 8192   -   -  1.1496e+05    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  5     LETG-ACIS  leg+2   1    8192/ 8192   -   -  4.7930e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  6     LETG-ACIS  leg+3   1    8192/ 8192   -   -  6.2380e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
Current RMF List:&lt;br /&gt;
 id grating detector    m type   file/function&lt;br /&gt;
  1    LETG   ACIS-7   -1 file:  leg_-1.rmf&lt;br /&gt;
  2    LETG   ACIS-7    1 file:  leg_1.rmf&lt;br /&gt;
Current ARF List:&lt;br /&gt;
 id grating detector part/m  src   nbins  exp(ksec)  target&lt;br /&gt;
  1    LETG     ACIS leg-1    0     8192    59.15  Capella&lt;br /&gt;
file:  leg_-1.arf&lt;br /&gt;
  2    LETG     ACIS leg+1    0     8192    59.15  Capella&lt;br /&gt;
file:  leg_1.arf&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We now need to assign each ARF and RMF to the spectrum taken with this detector:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; assign_rmf(rmfm1,capella[2]);&lt;br /&gt;
isis&amp;gt; assign_arf(arfm1,capella[2]);&lt;br /&gt;
isis&amp;gt; assign_rmf(rmfp1,capella[3]);&lt;br /&gt;
isis&amp;gt; assign_arf(arfp1,capella[3]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that instead of using the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;-values directly (e.g., &amp;lt;code&amp;gt;assign_rmf(1,3)&amp;lt;/code&amp;gt;) we use the isis-variables that were returned in the different &amp;lt;code&amp;gt;load&amp;lt;/code&amp;gt;-commands (&amp;lt;code&amp;gt;capella&amp;lt;/code&amp;gt; is a variable, and in slang/isis arrays are zero-based). This approach is better than using the ids directly since it minimizes the likelihood of typos and we do not have to remember strange id numbers but rather variable names that (should) make sense. If you want to find out more about the slang programming language, you can have a look at the nice documentation at [http://www.jedsoft.org/slang/doc/html/slang.html]. In this case, especially Chapter 6 (Variables) and 11 (Arrays) might be interesting for you.&lt;br /&gt;
&lt;br /&gt;
Let's check whether the assignment was ok:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_data;                   &lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1     LETG-ACIS  leg-3   1    8192/ 8192   -   -  1.0222e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  2     LETG-ACIS  leg-2   1    8192/ 8192   -   -  4.4290e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  3     LETG-ACIS  leg-1   1    8192/ 8192   1   1  7.0583e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  4     LETG-ACIS  leg+1   1    8192/ 8192   2   2  1.1496e+05    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  5     LETG-ACIS  leg+2   1    8192/ 8192   -   -  4.7930e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  6     LETG-ACIS  leg+3   1    8192/ 8192   -   -  6.2380e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice that the &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; columns now contain the indices of the respective ARF and RMF.&lt;br /&gt;
&lt;br /&gt;
==== The First Fit ====&lt;br /&gt;
&lt;br /&gt;
Since we do not have an ARF and RMF for the other orders, we need to tell isis not to work with these data sets:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; exclude([capella[0],capella[1],capella[4],capella[5]]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The argument of the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; function is an array containing the indices of all spectra that should be ignored when fitting. In slang/isis, arrays are defined by listing their contents in brackets, i.e.,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
array=[1,2,5,6];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It is also possible to use a shorthand notation to define larger arrays, e.g.,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
array=[1:10];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
creates an array containing the 10 numbers 1,2,...,10, while&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
array=[1:10:2];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
creates an array containing the numbers 1,3,5,...,9. In principle, you can do something like this also with floating point numbers, but because of subtleties with floating point arithmetic, we do not recommend using this feature of the language. &lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt;-example before, note that we are again listing the indices of the spectra indirectly by specifying them through the &amp;lt;code&amp;gt;capella&amp;lt;/code&amp;gt; variable. As before, this makes our code more portable. Finally, note that you could have also used the &amp;lt;code&amp;gt;ignore&amp;lt;/code&amp;gt;-function to ignore these data sets, but &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; is preferred since it does not affect the currently noticed energy ranges.&lt;br /&gt;
&lt;br /&gt;
Finally, since we now only have two spectra to work with,  let's remember their indices in shorter variables such that we do not have to type &amp;lt;code&amp;gt;capella[x]&amp;lt;/code&amp;gt; all the time...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; m1=capella[2];                                         &lt;br /&gt;
isis&amp;gt; p1=capella[3];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We first plot the whole data set, switching the x-axis unit to Angstroms, because this is more appropriate for gratings data:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; fancy_plot_unit(&amp;quot;A&amp;quot;); &lt;br /&gt;
isis&amp;gt; plot_data(p1;dsym=1,dcol=2);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that for the moment we are only plotting one data set in order not to confuse ourselves. With &amp;lt;code&amp;gt;dsym=1&amp;lt;/code&amp;gt; we switch off the plot symbol, which is only distracting and does not help in understanding the figure (try the command without the &amp;lt;code&amp;gt;dsym&amp;lt;/code&amp;gt;-qualifier!).&lt;br /&gt;
&lt;br /&gt;
The resulting figure looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings01.png|center]]&lt;br /&gt;
&lt;br /&gt;
Notice the very strong emission lines, which are typical for stellar coronae. Most of the things are happening between 5 and 25 Angstroms, so let's zoom in that region:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings02.png|center]]&lt;br /&gt;
&lt;br /&gt;
Isis has very powerful functions that help in the identification of these lines. Also note the &amp;quot;bump&amp;quot; at lower wavelengths, which is due to bremsstrahlung emission of the hot corona. &lt;br /&gt;
&lt;br /&gt;
Right now we are only interested in the He-like oxygen triplet at 21.6, 21.8, and 22.1 Angstroms. These are called the resonant, intercombination, and forbidden line, respectively, and their fluxes are typically called r, i, and f. Let's therefore take a look at the 20-23 A band only:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings03.png|center]]&lt;br /&gt;
&lt;br /&gt;
All three lines can be clearly seen in the data set. In order to get more quantitative information, a look at the spectral plot indicates that we should be able to model this spectral region well with a spectral model that consists of the three lines plus a constant flux component (model name &amp;lt;code&amp;gt;constant&amp;lt;/code&amp;gt;) that describes the continuum emission. We should probably also ignore the 20.5-21.5 A band because otherwise the fit would be contaminated by the emission lines there. Finally, experience tells us that in such line fits it is often not a good idea to let the wavelength/energy of the line to be completely free. The reason is that often initially the &amp;lt;math&amp;gt;\chi^2&amp;lt;/math&amp;gt;-minimization routine will be trying to change the wavelength by a large factor and as a result it could be that the lines are switched. We therefore allow the lines only to vary by 0.1 A around their official values.&lt;br /&gt;
&lt;br /&gt;
With the commands discussed in the walkthrough, and with the information given by &amp;lt;code&amp;gt;help set_par&amp;lt;/code&amp;gt; you should now be able to setup a fit function that looks like this (note: the &amp;lt;code&amp;gt;gauss&amp;lt;/code&amp;gt;-model in isis is a Gaussian line in Angstrom units, the &amp;lt;code&amp;gt;gaussian&amp;lt;/code&amp;gt;-model is the same, but in keV units):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;                   &lt;br /&gt;
constant(1)+gauss(1)+gauss(2)+gauss(3)&lt;br /&gt;
 idx  param           tie-to  freeze         value         min         max&lt;br /&gt;
  1  constant(1).factor   0     0                1           0       1e+10  &lt;br /&gt;
  2  gauss(1).area        0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  3  gauss(1).center      0     0             21.6        21.5        21.7  A&lt;br /&gt;
  4  gauss(1).sigma       0     0            0.025       1e-06           1  A&lt;br /&gt;
  5  gauss(2).area        0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  6  gauss(2).center      0     0             21.8        21.7        21.9  A&lt;br /&gt;
  7  gauss(2).sigma       0     0            0.025       1e-06           1  A&lt;br /&gt;
  8  gauss(3).area        0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  9  gauss(3).center      0     0             22.1          22        22.2  A&lt;br /&gt;
 10  gauss(3).sigma       0     0            0.025       1e-06           1  A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To get a good fit, plot the model (do not forget the &amp;lt;code&amp;gt;eval_counts&amp;lt;/code&amp;gt; command!), and adjust the constant, line widths, and line fluxes (&amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;-parameter) until you get a good &amp;quot;fit by eye&amp;quot;. Playing a little bit with the parameters I find a starting model that looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings04.png|center]]&lt;br /&gt;
&lt;br /&gt;
We now ignore the 20.6-21.5 and 22.6-22.8 Angstrom bands in both data sets:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; ignore([p1,m1],20.6,21.5);&lt;br /&gt;
isis&amp;gt; ignore([p1,m1],22.6,22.8);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replot in order to confirm that these data are gone! Furthermore, we also ignore everything below 20A and above 23A:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; ignore([p1,m1],NULL,20);                                                          &lt;br /&gt;
isis&amp;gt; ignore([p1,m1],23,NULL);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
perform the fit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; Fit_Verbose=1;&lt;br /&gt;
isis&amp;gt; fit_counts();                                                    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The best fit parameters are as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;                                                             &lt;br /&gt;
constant(1)+gauss(1)+gauss(2)+gauss(3)&lt;br /&gt;
 idx  param           tie-to  freeze         value         min         max&lt;br /&gt;
  1  constant(1).factor   0     0     1.342954e-05           0       1e+10  &lt;br /&gt;
  2  gauss(1).area        0     0      0.001175245           0           0  photons/s/cm^2&lt;br /&gt;
  3  gauss(1).center      0     0         21.60025        21.5        21.7  A&lt;br /&gt;
  4  gauss(1).sigma       0     0       0.01614977       1e-06           1  A&lt;br /&gt;
  5  gauss(2).area        0     0      0.000183689           0           0  photons/s/cm^2&lt;br /&gt;
  6  gauss(2).center      0     0         21.79914        21.7        21.9  A&lt;br /&gt;
  7  gauss(2).sigma       0     0        0.0108202       1e-06           1  A&lt;br /&gt;
  8  gauss(3).area        0     0     0.0008692617           0           0  photons/s/cm^2&lt;br /&gt;
  9  gauss(3).center      0     0         22.09971          22        22.2  A&lt;br /&gt;
 10  gauss(3).sigma       0     0       0.02135323       1e-06           1  A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To check whether all went well with the fit, we plot our best fit. While for the manual adjustment of the fit parameters it was sufficient to just look at one of the spectra, we really should look at all of our data. This is done with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_data({m1,p1};dsym={1,1},decol={2,4},dcol={2,4},mcol={4,4},res=1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where the &amp;lt;code&amp;gt;{1,2}&amp;lt;/code&amp;gt; etc. are so-called ''lists''. These are somewhat more flexible forms of arrays. We will address the details of this data type later, for the moment, just remember that you need to put everything in curly parentheses instead of brackets. In the above, the color 4 is used for the m=+1 spectrum and 2 for the m=-1 spectrum.&lt;br /&gt;
&lt;br /&gt;
The best fit looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings05.png|center]]&lt;br /&gt;
&lt;br /&gt;
and the residuals are flat. This is not surprising, given that the reduced chi-square of the fit was only 0.5.&lt;br /&gt;
&lt;br /&gt;
Looking at the paper by Ness et al., for the spectral diagnosis the ratio &amp;lt;math&amp;gt;G=(f+i)/r&amp;lt;/math&amp;gt; as well as the ratio &amp;lt;math&amp;gt;R=f/i&amp;lt;/math&amp;gt; is used. As discussed by Ness et al., the diagnostic information contained in these ratios is discussed in great detail by [http://adsabs.harvard.edu/abs/2001A%26A...376.1113P Porquet et al. (2001)] (where the resonance line is called w, the intercombination x+y, and the forbidden line z; sorry, nobody claimed scientists are consistent...). Porquet et al. (2001) show that R is mainly dependent on the electron density and G is mainly dependent on the temperature. &lt;br /&gt;
&lt;br /&gt;
The following analysis can now proceed either by using your pocket calculator or by using isis as a pocket calculator. Since we have not yet introduced programming in slang/isis, feel free to use either way, or [isis:tutorial:slang take a look at our Slang programming introduction]. In the following, we show how one would get about calculating the above ratios with isis. To understand the code, you need to know that in slang structures contain several named values and that you can access the one of the variables (&amp;quot;tags&amp;quot;) that make up the content of a structure with the usual &amp;lt;code&amp;gt;variable.tag&amp;lt;/code&amp;gt; syntax that is also used, e.g., in C. Furthermore, read the help for the isis &amp;lt;code&amp;gt;get_params&amp;lt;/code&amp;gt; function&amp;lt;ref&amp;gt;if one is just interested in the best fit value of a parameter, you can also use the &amp;lt;code&amp;gt;get_par&amp;lt;/code&amp;gt; function, however, this would not have allowed us to introduce slang structures...&amp;lt;/ref&amp;gt;.&lt;br /&gt;
To calculate the ratios then do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; r=get_params(&amp;quot;gauss(1).area&amp;quot;);&lt;br /&gt;
isis&amp;gt; i=get_params(&amp;quot;gauss(2).area&amp;quot;); &lt;br /&gt;
isis&amp;gt; f=get_params(&amp;quot;gauss(3).area&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
take a look at the contents of r (which per the documentation of &amp;lt;code&amp;gt;get_params&amp;lt;/code&amp;gt; is an array):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; print(r);                     &lt;br /&gt;
{name=&amp;quot;gauss(1).area&amp;quot;, index=2, value=0.0011752452373316315, min=-1.7976931348623157e+308, max=1.7976931348623157e+308, hard_min=-inf, hard_max=inf, step=0.0, relstep=0.0001, freeze=0, tie=NULL, units=&amp;quot;photons/s/cm^2&amp;quot;, is_a_norm=1, fun=NULL}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and therefore&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; rat=f[0].value/i[0].value;&lt;br /&gt;
isis&amp;gt; g=(f[0].value+i[0].value)/r[0].value;&lt;br /&gt;
isis&amp;gt; print(rat);                          &lt;br /&gt;
4.732248259283046&lt;br /&gt;
isis&amp;gt; print(g);  &lt;br /&gt;
0.8959412576621245&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per the discussion in Porquet, the small value of G is an indication that the observed plasma is dominated by collisions, i.e., it is very thin and very hot and the ionization of the plasma is due to collisions and not due to a strong X-ray source in the vicinity that ionizes the plasma through photoionization. We are also happy that our ratio for R, 4.7, is close to that found by Ness et al., which is around 4 (right hand panel of their Figure 10).&lt;br /&gt;
&lt;br /&gt;
While this is all very nice and the result that we obtain is in rough agreement with the literature, we do not know how uncertain our parameters are. The reason is that even though we have the best fit, we do not yet know the uncertainty of our fit parameters. To calculate the uncertainty of a parameter isis uses the usual &amp;lt;math&amp;gt;\Delta\chi^2&amp;lt;/math&amp;gt; approach, first discussed for X-ray astronomical data by [http://adsabs.harvard.edu/abs/1976ApJ...208..177L Lampton, Margon, Bowyer, 1978, Apj 208, 177]. We will call the parameter for which the uncertainty is to be calculated the &amp;quot;parameter of interest&amp;quot;. Lampton et al. show that the confidence interval can be determined with the following recipe:&lt;br /&gt;
# Calculate &amp;lt;math&amp;gt;\Delta\chi^2&amp;lt;/math&amp;gt; from the chi-square-distribution with one degree of freedom. Common in X-ray astronomy are &amp;quot;&amp;lt;math&amp;gt;1\sigma&amp;lt;/math&amp;gt;&amp;quot;-errors with &amp;lt;math&amp;gt;\Delta\chi^2=1.00&amp;lt;/math&amp;gt;, 90% confidence ranges with &amp;lt;math&amp;gt;\Delta\chi^2=2.71&amp;lt;/math&amp;gt;, and 99% confidence contours with &amp;lt;math&amp;gt;\Delta\chi^2=6.63&amp;lt;/math&amp;gt;. The most common errors are the 90% ones.&lt;br /&gt;
# Change the parameter of interest away from its best fit value to a slightly smaller value. Keep it frozen and refit. This will result in a slightly larger &amp;lt;math&amp;gt;\chi^2&amp;lt;/math&amp;gt; for the best fit.&lt;br /&gt;
# Repeat the previous step until you find the parameter value where the chi-squared is &amp;lt;math&amp;gt;\chi^2 = \chi_\mathrm{min}^2+\Delta\chi^2&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\chi_\mathrm{min}^2&amp;lt;/math&amp;gt; is the chi-squared of our original best fit. The value of our parameter is now the lower bound of the confidence interval.&lt;br /&gt;
# Repeat for values larger than the best fit value until you find the upper bound of the confidence region.&lt;br /&gt;
# Designating the lower and upper end of the confidence region by &amp;lt;math&amp;gt;p_\mathrm{min}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;p_\mathrm{max}&amp;lt;/math&amp;gt; and the best fit value &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, we then write the best fit parameter as follows: &amp;lt;math&amp;gt;p^{+\Delta p_\mathrm{max}}_{-\Delta p_\mathrm{min}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\Delta p_\mathrm{max} = p_\mathrm{max}-p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;p_\mathrm{min}=p-p_\mathrm{min}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because of correlations between parameters, error bars are typically not symmetric and great care has to be taken when doing error propagation. We ignore all of those for the moment and use the rule of thumb that if the error bars are not too asymmetric, a rough estimate for a symmetric error bar which can be used for the standard Gaussian error propagation is the average of the lower and the upper error bars, i.e., use &amp;lt;math&amp;gt;\Delta p =(\Delta p_\mathrm{min}+\Delta p_\mathrm{max})/2&amp;lt;/math&amp;gt; and write the best fit parameter as &amp;lt;math&amp;gt;p\pm\Delta p&amp;lt;/math&amp;gt; (where we usually also use 90% error bars!).&lt;br /&gt;
 &lt;br /&gt;
The above procedure is implemented in isis through the &amp;lt;code&amp;gt;conf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;vconf&amp;lt;/code&amp;gt; functions. These are identical, &amp;lt;code&amp;gt;vconf&amp;lt;/code&amp;gt; gives more information about the procedure (the &amp;quot;v&amp;quot; stands for &amp;quot;verbose&amp;quot;). Since the above procedure searches for the zero of a function, it is not guaranteed to converge numerically. For this reason isis calculates confidence intervals only when explicit limits are set. These limits are returned in case the error calculation failed. Typically, for good data sets the errors will be less than 20-30% of the value, but this depends a lot on the data set and one often has to play around a little bit. &lt;br /&gt;
&lt;br /&gt;
The error bar for the flux of the forbidden line is then calculated as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; set_par(&amp;quot;gauss(3).area&amp;quot;,f[0].value,0,0.75*f[0].value,1.25*f[0].value);&lt;br /&gt;
isis&amp;gt; list_par;                                                             &lt;br /&gt;
constant(1)+gauss(1)+gauss(2)+gauss(3)&lt;br /&gt;
 idx  param           tie-to  freeze         value         min         max&lt;br /&gt;
  1  constant(1).factor   0     0     1.342954e-05           0       1e+10  &lt;br /&gt;
  2  gauss(1).area        0     0      0.001175245           0           0  photons/s/cm^2&lt;br /&gt;
  3  gauss(1).center      0     0         21.60025        21.5        21.7  A&lt;br /&gt;
  4  gauss(1).sigma       0     0       0.01614977       1e-06           1  A&lt;br /&gt;
  5  gauss(2).area        0     0      0.000183689           0           0  photons/s/cm^2&lt;br /&gt;
  6  gauss(2).center      0     0         21.79914        21.7        21.9  A&lt;br /&gt;
  7  gauss(2).sigma       0     0        0.0108202       1e-06           1  A&lt;br /&gt;
  8  gauss(3).area        0     0     0.0008692617  0.0006519463  0.001086577  photons/s/cm^2&lt;br /&gt;
  9  gauss(3).center      0     0         22.09971          22        22.2  A&lt;br /&gt;
 10  gauss(3).sigma       0     0       0.02135323       1e-06           1  A&lt;br /&gt;
isis&amp;gt; (fmi,fma)=vconf(&amp;quot;gauss(3).area&amp;quot;);&lt;br /&gt;
:&lt;br /&gt;
: lots of output...&lt;br /&gt;
:&lt;br /&gt;
 gauss(3).sigma=  2.25766046e-02&lt;br /&gt;
chi-square value converged&lt;br /&gt;
par[8]=  9.64711324e-04  stat=  1.5337e+02  dstat=  2.7100e+00&lt;br /&gt;
limit found:  9.64711324e-04  dstat=  2.7100e+00&lt;br /&gt;
isis&amp;gt; print(fmi);    &lt;br /&gt;
0.0007743270669346407&lt;br /&gt;
isis&amp;gt; print(fma);&lt;br /&gt;
0.0009647113237380715&lt;br /&gt;
isis&amp;gt; print(f[0].value-fmi);&lt;br /&gt;
9.493467346016499e-05&lt;br /&gt;
isis&amp;gt; print(fma-f[0].value);&lt;br /&gt;
9.544958334326589e-05&lt;br /&gt;
isis&amp;gt; print(f[0].value);    &lt;br /&gt;
0.0008692617403948057&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
this means that the error bar is almost symmetric and therefore &amp;lt;math&amp;gt;f=(8.7\pm1.0)\times10^{-5}\,\mathrm{ph}\,\mathrm{s}^{-1}\,\mathrm{cm}^{-2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 4'''''&lt;br /&gt;
# Perform the above analysis for &amp;quot;your&amp;quot; star. Do not forget to calculate error bars for R and G using error propagation!&lt;br /&gt;
# Use the tables of Porquet et al. to estimate the density and temperature of the plasma. Looking at the discussion by Ness et al., what is the systematic error of this analysis?&lt;br /&gt;
&lt;br /&gt;
==== References ====&lt;br /&gt;
&lt;br /&gt;
[[Category:Isis / Slang]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_gratings&amp;diff=2784</id>
		<title>Isis tutorial gratings</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Isis_tutorial_gratings&amp;diff=2784"/>
		<updated>2023-02-21T11:36:26Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Further Data Fitting ==&lt;br /&gt;
&lt;br /&gt;
The walk through isis has given you a first overview of a simple X-ray spectral analysis. In this part of the tutorial we build upon this experience by performing a more complicated analysis of Chandra gratings spectra. You will learn about X-ray data archives and what to do when not all keywords are set in a X-ray spectral file. Furthermore we introduce an important X-ray diagnostics for tenuous plasmas.&lt;br /&gt;
&lt;br /&gt;
=== Data Archives and the ADS ===&lt;br /&gt;
&lt;br /&gt;
==== ADS ====&lt;br /&gt;
&lt;br /&gt;
In this tutorial we will demonstrate the analysis of Chandra gratings data of stellar spectra and try to reproduce the results obtained by [http://adsabs.harvard.edu/abs/2002A%26A...394..911N Jan-Uwe Ness et al., 2002, Coronal density diagnostics with Helium-like triplets: CHANDRA-LETGS observations of Algol, Capella, Procyon, epsilon Eri, alpha Cen A&amp;amp;B, UX Ari, AD Leo, YY Gem, and HR 1099, Astronomy and Astrophysics 394, 911]. &lt;br /&gt;
&lt;br /&gt;
'''''Exercise 1'''''&lt;br /&gt;
* Go to the [http://adsabs.harvard.edu/abstract_service.html ADS Abstract Service] and search for the above paper. The best way to do this is to enter &amp;lt;code&amp;gt;^Ness&amp;lt;/code&amp;gt; for the Author and &amp;lt;code&amp;gt;Capella&amp;lt;/code&amp;gt; for the Object. The ADS is the best data base to find astronomical literature. It goes back to the early 1800s and is almost complete for the past 50 years or so. It will be very worth your time to familiarize yourself with searching papers there - even if you do not want to do astronomy in the end but other areas of physics, which are indexed in the ADS as well. In order to make sure that you really did the search and did not just click the link above, what is the newest paper published by this author?&lt;br /&gt;
&lt;br /&gt;
* Download, print, and read this paper. Yes, really, print it - you will need to refer to this paper often and you might want to scribble comments on your paper copy and you will read the paper much more intensively if it is not on a computer screen. In order to get to the PDF-copy of the paper, click on &amp;quot;Full Refereed Journal Article (PDF/Postscript)&amp;quot; in the above link. You will see it is colored in green, meaning that the paper is not behind a paywall. This is not the case for new articles, unfortunately, in this case you can always go to the arXiv-Link and get a preprint from there. Virtually all important astronomical papers can be found this way. &lt;br /&gt;
&lt;br /&gt;
==== Data Archives ====&lt;br /&gt;
&lt;br /&gt;
Here, we will show you how to perform the analysis of Capella, in your homework you will work on one of the other sources. Like the analysis of data from all other X-ray satellites, the reduction of Chandra gratings data can become very involved. Since we &amp;quot;just&amp;quot; want to analyze the time averaged spectrum of the source, we are lucky that somebody else (well, the Chandra gratings team) has done the work for us and has put the reduced spectra on the WWW for us. Such archives of pre-reduced data exist for all satellites, and while I caution ''not'' to use the reduced data in these archives for publication-level work, they are useful to get a feel for what is available (the reason why you do not want to use these data for publication level work is that you will typically have to apply a newer version of the detector calibration, different background screening criteria, different time intervals, and so on). TGCat is an important archive for Chandra data:&lt;br /&gt;
&lt;br /&gt;
* [http://tgcat.mit.edu/ TGCat] contains all public observations performed with the Chandra transmission gratings spectrometers. The user interface is self-explanatory and there is a nice help section available. If you know the name of the object you're interested in, click on &amp;quot;Query&amp;quot; at the top and select &amp;quot;Name&amp;quot;. Then enter the name of your source in the &amp;quot;Target list&amp;quot; box and hit submit. You'll get a list of matching sources known to TGCat. Then click on the object name and you will be getting a list of all available observations.&lt;br /&gt;
&lt;br /&gt;
For other missions like XMM-Newton there are of course similar archives available.&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 2'''''&lt;br /&gt;
* Download the observation with the longest exposure time available for the object you are interested in, unless your instructions say otherwise. If possible, disregard the observations where the HRC was in the focal plane, i.e., look at the ACIS-observations only (the HRC is not energy dispersive, and therefore order sorting is not so easy with this detector).&lt;br /&gt;
&lt;br /&gt;
Select the data, ask TGCat to send you an email, and then download the file. For example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://tgcat.mit.edu/tmp/1337349938_174950000/tgcat.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unpack it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar xzvf tgcat.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For Capella, we download the data from observation ID 8319. The data set looks as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hde226868:~/isistut&amp;gt; cd tgcat&lt;br /&gt;
hde226868:~/isistut/tgcat&amp;gt; ls -l&lt;br /&gt;
total 16&lt;br /&gt;
drwxr-xr-x 3 wilms wilms 4096 May 18 16:05 .&lt;br /&gt;
drwxr-xr-x 3 wilms wilms 4096 May 20 14:05 ..&lt;br /&gt;
-rw-r--r-- 1 wilms wilms  327 May 18 16:05 checksums.dat&lt;br /&gt;
drwxr-xr-x 2 wilms wilms 4096 May 18 16:05 obs_8319_tgid_3283&lt;br /&gt;
hde226868:~/isistut/tgcat&amp;gt; cd obs_8319_tgid_3283&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; ls -l&lt;br /&gt;
total 15648&lt;br /&gt;
-r--r--r-- 1 wilms wilms 1419840 May 18 16:05 pha2.gz&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_-1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7030080 May 18 16:05 leg_-1.rmf&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7032960 May 18 16:05 leg_1.rmf&lt;br /&gt;
-rw-r--r-- 1 wilms wilms      71 May 18 16:05 vv_report.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The spectral file is called &amp;lt;code&amp;gt;pha2.gz&amp;lt;/code&amp;gt;, which is not a very meaningful name, so we unpack it and rename it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; gunzip pha2.gz&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; mv pha2 capella.pha2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the name &amp;lt;code&amp;gt;pha2&amp;lt;/code&amp;gt;. In the walkthrough we encountered PHA-files, which contain one spectrum. &amp;lt;code&amp;gt;pha2&amp;lt;/code&amp;gt;-files contain multiple spectra. They are used, for example, in pulse phase resolved spectroscopy of neutron stars or in gratings spectra, where they contain multiple spectra.&lt;br /&gt;
&lt;br /&gt;
''''' Exercise 3 '''''&lt;br /&gt;
&lt;br /&gt;
* Take a look at the contents of your pha2-file using &amp;lt;code&amp;gt;fv&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;fstruct&amp;lt;/code&amp;gt;. Note that each &amp;quot;row&amp;quot; in the pha2-file now contains one spectrum.&lt;br /&gt;
&lt;br /&gt;
==== Preparing Gratings Data for Fitting ====&lt;br /&gt;
&lt;br /&gt;
We now enter &amp;quot;isis&amp;quot;, load the &amp;quot;isisscripts&amp;quot;, and load our data set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hde226868:~/isistut/tgcat/obs_8319_tgid_3283&amp;gt; isis&lt;br /&gt;
:&lt;br /&gt;
isis&amp;gt; require(&amp;quot;isisscripts&amp;quot;);           &lt;br /&gt;
:&lt;br /&gt;
isis&amp;gt; capella=load_data(&amp;quot;capella.pha2&amp;quot;);&lt;br /&gt;
Reading: ......&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As usual, we first take a look at what has been loaded, this time using a helpful function from the &amp;quot;isisscripts&amp;quot; that lists the data and the loaded &amp;quot;ARF&amp;quot;- and &amp;quot;RMF&amp;quot;-files.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_all;              &lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1     LETG-ACIS  leg-3   1    8192/ 8192   -   -  1.0222e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  2     LETG-ACIS  leg-2   1    8192/ 8192   -   -  4.4290e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  3     LETG-ACIS  leg-1   1    8192/ 8192   -   -  7.0583e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  4     LETG-ACIS  leg+1   1    8192/ 8192   -   -  1.1496e+05    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  5     LETG-ACIS  leg+2   1    8192/ 8192   -   -  4.7930e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  6     LETG-ACIS  leg+3   1    8192/ 8192   -   -  6.2380e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We note two things:&lt;br /&gt;
# &amp;lt;code&amp;gt;load_data&amp;lt;/code&amp;gt; loaded all contents of the &amp;lt;code&amp;gt;pha2&amp;lt;/code&amp;gt;-file,  total of '''six''' spectra. What these spectra are is identified in the &amp;lt;code&amp;gt;part/m&amp;lt;/code&amp;gt;-column: &amp;lt;code&amp;gt;leg&amp;lt;/code&amp;gt; is the &amp;quot;low energy grating&amp;quot; of Chandra-HETGS (the other grating would be called &amp;lt;code&amp;gt;meg&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;medium energy grating&amp;lt;/code&amp;gt;), and -3, -2, -1, +1, +2, +3 identifies the order of the spectrum.&lt;br /&gt;
# No &amp;lt;code&amp;gt;ARF&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RMF&amp;lt;/code&amp;gt; are listed. This means that while the spectra have been loaded we still need to tell &amp;lt;code&amp;gt;isis&amp;lt;/code&amp;gt; what &amp;lt;code&amp;gt;ARF&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RMF&amp;lt;/code&amp;gt; to use for the spectra (you can also see this by noticing the dashes in the &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; columns).&lt;br /&gt;
&lt;br /&gt;
We now remind ourselves what responses and ARF we were provided with, by using isis' &amp;quot;shell escape&amp;quot;. This means that within isis we can precede a normal shell command by an exclamation mark to have it executed by the shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 isis&amp;gt; !ls -l&lt;br /&gt;
total 15648&lt;br /&gt;
-r--r--r-- 1 wilms wilms 1419840 May 18 16:05 capella.pha2&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_-1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7030080 May 18 16:05 leg_-1.rmf&lt;br /&gt;
-r--r--r-- 1 wilms wilms  256320 May 18 16:05 leg_1.arf&lt;br /&gt;
-r--r--r-- 1 wilms wilms 7032960 May 18 16:05 leg_1.rmf&lt;br /&gt;
-rw-r--r-- 1 wilms wilms      71 May 18 16:05 vv_report.txt&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This means that we only have RMFs and ARFs available for the first order and we will have to ignore the higher orders. This is fine since most photons end up in the 1st order anyway. Let us now load the files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; arfm1=load_arf(&amp;quot;leg_-1.arf&amp;quot;); &lt;br /&gt;
isis&amp;gt; arfp1=load_arf(&amp;quot;leg_1.arf&amp;quot;);&lt;br /&gt;
isis&amp;gt; rmfm1=load_rmf(&amp;quot;leg_-1.rmf&amp;quot;);&lt;br /&gt;
isis&amp;gt; rmfp1=load_rmf(&amp;quot;leg_1.rmf&amp;quot;); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and check that everything went fine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_all; &lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1     LETG-ACIS  leg-3   1    8192/ 8192   -   -  1.0222e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  2     LETG-ACIS  leg-2   1    8192/ 8192   -   -  4.4290e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  3     LETG-ACIS  leg-1   1    8192/ 8192   -   -  7.0583e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  4     LETG-ACIS  leg+1   1    8192/ 8192   -   -  1.1496e+05    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  5     LETG-ACIS  leg+2   1    8192/ 8192   -   -  4.7930e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  6     LETG-ACIS  leg+3   1    8192/ 8192   -   -  6.2380e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
Current RMF List:&lt;br /&gt;
 id grating detector    m type   file/function&lt;br /&gt;
  1    LETG   ACIS-7   -1 file:  leg_-1.rmf&lt;br /&gt;
  2    LETG   ACIS-7    1 file:  leg_1.rmf&lt;br /&gt;
Current ARF List:&lt;br /&gt;
 id grating detector part/m  src   nbins  exp(ksec)  target&lt;br /&gt;
  1    LETG     ACIS leg-1    0     8192    59.15  Capella&lt;br /&gt;
file:  leg_-1.arf&lt;br /&gt;
  2    LETG     ACIS leg+1    0     8192    59.15  Capella&lt;br /&gt;
file:  leg_1.arf&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We now need to assign each ARF and RMF to the spectrum taken with this detector:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; assign_rmf(rmfm1,capella[2]);&lt;br /&gt;
isis&amp;gt; assign_arf(arfm1,capella[2]);&lt;br /&gt;
isis&amp;gt; assign_rmf(rmfp1,capella[3]);&lt;br /&gt;
isis&amp;gt; assign_arf(arfp1,capella[3]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that instead of using the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;-values directly (e.g., &amp;lt;code&amp;gt;assign_rmf(1,3)&amp;lt;/code&amp;gt;) we use the isis-variables that were returned in the different &amp;lt;code&amp;gt;load&amp;lt;/code&amp;gt;-commands (&amp;lt;code&amp;gt;capella&amp;lt;/code&amp;gt; is a variable, and in slang/isis arrays are zero-based). This approach is better than using the ids directly since it minimizes the likelihood of typos and we do not have to remember strange id numbers but rather variable names that (should) make sense. If you want to find out more about the slang programming language, you can have a look at the nice documentation at [http://www.jedsoft.org/slang/doc/html/slang.html]. In this case, especially Chapter 6 (Variables) and 11 (Arrays) might be interesting for you.&lt;br /&gt;
&lt;br /&gt;
Let's check whether the assignment was ok:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_data;                   &lt;br /&gt;
Current Spectrum List:&lt;br /&gt;
 id    instrument part/m  src    use/nbins   A   R     totcts   exp(ksec)  target&lt;br /&gt;
  1     LETG-ACIS  leg-3   1    8192/ 8192   -   -  1.0222e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  2     LETG-ACIS  leg-2   1    8192/ 8192   -   -  4.4290e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  3     LETG-ACIS  leg-1   1    8192/ 8192   1   1  7.0583e+04    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  4     LETG-ACIS  leg+1   1    8192/ 8192   2   2  1.1496e+05    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  5     LETG-ACIS  leg+2   1    8192/ 8192   -   -  4.7930e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
  6     LETG-ACIS  leg+3   1    8192/ 8192   -   -  6.2380e+03    59.146  Capella&lt;br /&gt;
file:  capella.pha2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice that the &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; columns now contain the indices of the respective ARF and RMF.&lt;br /&gt;
&lt;br /&gt;
==== The First Fit ====&lt;br /&gt;
&lt;br /&gt;
Since we do not have an ARF and RMF for the other orders, we need to tell isis not to work with these data sets:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; exclude([capella[0],capella[1],capella[4],capella[5]]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The argument of the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; function is an array containing the indices of all spectra that should be ignored when fitting. In slang/isis, arrays are defined by listing their contents in brackets, i.e.,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
array=[1,2,5,6];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
It is also possible to use a shorthand notation to define larger arrays, e.g.,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
array=[1:10];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
creates an array containing the 10 numbers 1,2,...,10, while&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
array=[1:10:2];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
creates an array containing the numbers 1,3,5,...,9. In principle, you can do something like this also with floating point numbers, but because of subtleties with floating point arithmetic, we do not recommend using this feature of the language. &lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt;-example before, note that we are again listing the indices of the spectra indirectly by specifying them through the &amp;lt;code&amp;gt;capella&amp;lt;/code&amp;gt; variable. As before, this makes our code more portable. Finally, note that you could have also used the &amp;lt;code&amp;gt;ignore&amp;lt;/code&amp;gt;-function to ignore these data sets, but &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; is preferred since it does not affect the currently noticed energy ranges.&lt;br /&gt;
&lt;br /&gt;
Finally, since we now only have two spectra to work with,  let's remember their indices in shorter variables such that we do not have to type &amp;lt;code&amp;gt;capella[x]&amp;lt;/code&amp;gt; all the time...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; m1=capella[2];                                         &lt;br /&gt;
isis&amp;gt; p1=capella[3];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We first plot the whole data set, switching the x-axis unit to Angstroms, because this is more appropriate for gratings data:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; fancy_plot_unit(&amp;quot;A&amp;quot;); &lt;br /&gt;
isis&amp;gt; plot_data(p1;dsym=1,dcol=2);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that for the moment we are only plotting one data set in order not to confuse ourselves. With &amp;lt;code&amp;gt;dsym=1&amp;lt;/code&amp;gt; we switch off the plot symbol, which is only distracting and does not help in understanding the figure (try the command without the &amp;lt;code&amp;gt;dsym&amp;lt;/code&amp;gt;-qualifier!).&lt;br /&gt;
&lt;br /&gt;
The resulting figure looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings01.png|center]]&lt;br /&gt;
&lt;br /&gt;
Notice the very strong emission lines, which are typical for stellar coronae. Most of the things are happening between 5 and 25 Angstroms, so let's zoom in that region:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings02.png|center]]&lt;br /&gt;
&lt;br /&gt;
Isis has very powerful functions that help in the identification of these lines. Also note the &amp;quot;bump&amp;quot; at lower wavelengths, which is due to bremsstrahlung emission of the hot corona. &lt;br /&gt;
&lt;br /&gt;
Right now we are only interested in the He-like oxygen triplet at 21.6, 21.8, and 22.1 Angstroms. These are called the resonant, intercombination, and forbidden line, respectively, and their fluxes are typically called r, i, and f. Let's therefore take a look at the 20-23 A band only:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings03.png|center]]&lt;br /&gt;
&lt;br /&gt;
All three lines can be clearly seen in the data set. In order to get more quantitative information, a look at the spectral plot indicates that we should be able to model this spectral region well with a spectral model that consists of the three lines plus a constant flux component (model name &amp;lt;code&amp;gt;constant&amp;lt;/code&amp;gt;) that describes the continuum emission. We should probably also ignore the 20.5-21.5 A band because otherwise the fit would be contaminated by the emission lines there. Finally, experience tells us that in such line fits it is often not a good idea to let the wavelength/energy of the line to be completely free. The reason is that often initially the &amp;lt;math&amp;gt;\chi^2&amp;lt;/math&amp;gt;-minimization routine will be trying to change the wavelength by a large factor and as a result it could be that the lines are switched. We therefore allow the lines only to vary by 0.1 A around their official values.&lt;br /&gt;
&lt;br /&gt;
With the commands discussed in the walkthrough, and with the information given by &amp;lt;code&amp;gt;help set_par&amp;lt;/code&amp;gt; you should now be able to setup a fit function that looks like this (note: the &amp;lt;code&amp;gt;gauss&amp;lt;/code&amp;gt;-model in isis is a Gaussian line in Angstrom units, the &amp;lt;code&amp;gt;gaussian&amp;lt;/code&amp;gt;-model is the same, but in keV units):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;                   &lt;br /&gt;
constant(1)+gauss(1)+gauss(2)+gauss(3)&lt;br /&gt;
 idx  param           tie-to  freeze         value         min         max&lt;br /&gt;
  1  constant(1).factor   0     0                1           0       1e+10  &lt;br /&gt;
  2  gauss(1).area        0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  3  gauss(1).center      0     0             21.6        21.5        21.7  A&lt;br /&gt;
  4  gauss(1).sigma       0     0            0.025       1e-06           1  A&lt;br /&gt;
  5  gauss(2).area        0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  6  gauss(2).center      0     0             21.8        21.7        21.9  A&lt;br /&gt;
  7  gauss(2).sigma       0     0            0.025       1e-06           1  A&lt;br /&gt;
  8  gauss(3).area        0     0                1           0           0  photons/s/cm^2&lt;br /&gt;
  9  gauss(3).center      0     0             22.1          22        22.2  A&lt;br /&gt;
 10  gauss(3).sigma       0     0            0.025       1e-06           1  A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To get a good fit, plot the model (do not forget the &amp;lt;code&amp;gt;eval_counts&amp;lt;/code&amp;gt; command!), and adjust the constant, line widths, and line fluxes (&amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;-parameter) until you get a good &amp;quot;fit by eye&amp;quot;. Playing a little bit with the parameters I find a starting model that looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings04.png|center]]&lt;br /&gt;
&lt;br /&gt;
We now ignore the 20.6-21.5 and 22.6-22.8 Angstrom bands in both data sets:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; ignore([p1,m1],20.6,21.5);&lt;br /&gt;
isis&amp;gt; ignore([p1,m1],22.6,22.8);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replot in order to confirm that these data are gone! Furthermore, we also ignore everything below 20A and above 23A:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; ignore([p1,m1],NULL,20);                                                          &lt;br /&gt;
isis&amp;gt; ignore([p1,m1],23,NULL);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
perform the fit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; Fit_Verbose=1;&lt;br /&gt;
isis&amp;gt; fit_counts();                                                    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The best fit parameters are as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; list_par;                                                             &lt;br /&gt;
constant(1)+gauss(1)+gauss(2)+gauss(3)&lt;br /&gt;
 idx  param           tie-to  freeze         value         min         max&lt;br /&gt;
  1  constant(1).factor   0     0     1.342954e-05           0       1e+10  &lt;br /&gt;
  2  gauss(1).area        0     0      0.001175245           0           0  photons/s/cm^2&lt;br /&gt;
  3  gauss(1).center      0     0         21.60025        21.5        21.7  A&lt;br /&gt;
  4  gauss(1).sigma       0     0       0.01614977       1e-06           1  A&lt;br /&gt;
  5  gauss(2).area        0     0      0.000183689           0           0  photons/s/cm^2&lt;br /&gt;
  6  gauss(2).center      0     0         21.79914        21.7        21.9  A&lt;br /&gt;
  7  gauss(2).sigma       0     0        0.0108202       1e-06           1  A&lt;br /&gt;
  8  gauss(3).area        0     0     0.0008692617           0           0  photons/s/cm^2&lt;br /&gt;
  9  gauss(3).center      0     0         22.09971          22        22.2  A&lt;br /&gt;
 10  gauss(3).sigma       0     0       0.02135323       1e-06           1  A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To check whether all went well with the fit, we plot our best fit. While for the manual adjustment of the fit parameters it was sufficient to just look at one of the spectra, we really should look at all of our data. This is done with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; plot_data({m1,p1};dsym={1,1},decol={2,4},dcol={2,4},mcol={4,4},res=1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where the &amp;lt;code&amp;gt;{1,2}&amp;lt;/code&amp;gt; etc. are so-called ''lists''. These are somewhat more flexible forms of arrays. We will address the details of this data type later, for the moment, just remember that you need to put everything in curly parentheses instead of brackets. In the above, the color 4 is used for the m=+1 spectrum and 2 for the m=-1 spectrum.&lt;br /&gt;
&lt;br /&gt;
The best fit looks as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Gratings05.png|center]]&lt;br /&gt;
&lt;br /&gt;
and the residuals are flat. This is not surprising, given that the reduced chi-square of the fit was only 0.5.&lt;br /&gt;
&lt;br /&gt;
Looking at the paper by Ness et al., for the spectral diagnosis the ratio &amp;lt;math&amp;gt;G=(f+i)/r&amp;lt;/math&amp;gt; as well as the ratio &amp;lt;math&amp;gt;R=f/i&amp;lt;/math&amp;gt; is used. As discussed by Ness et al., the diagnostic information contained in these ratios is discussed in great detail by [http://adsabs.harvard.edu/abs/2001A%26A...376.1113P Porquet et al. (2001)] (where the resonance line is called w, the intercombination x+y, and the forbidden line z; sorry, nobody claimed scientists are consistent...). Porquet et al. (2001) show that R is mainly dependent on the electron density and G is mainly dependent on the temperature. &lt;br /&gt;
&lt;br /&gt;
The following analysis can now proceed either by using your pocket calculator or by using isis as a pocket calculator. Since we have not yet introduced programming in slang/isis, feel free to use either way, or [isis:tutorial:slang take a look at our Slang programming introduction]. In the following, we show how one would get about calculating the above ratios with isis. To understand the code, you need to know that in slang structures contain several named values and that you can access the one of the variables (&amp;quot;tags&amp;quot;) that make up the content of a structure with the usual &amp;lt;code&amp;gt;variable.tag&amp;lt;/code&amp;gt; syntax that is also used, e.g., in C. Furthermore, read the help for the isis &amp;lt;code&amp;gt;get_params&amp;lt;/code&amp;gt; function&amp;lt;ref&amp;gt;if one is just interested in the best fit value of a parameter, you can also use the &amp;lt;code&amp;gt;get_par&amp;lt;/code&amp;gt; function, however, this would not have allowed us to introduce slang structures...&amp;lt;/ref&amp;gt;.&lt;br /&gt;
To calculate the ratios then do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; r=get_params(&amp;quot;gauss(1).area&amp;quot;);&lt;br /&gt;
isis&amp;gt; i=get_params(&amp;quot;gauss(2).area&amp;quot;); &lt;br /&gt;
isis&amp;gt; f=get_params(&amp;quot;gauss(3).area&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
take a look at the contents of r (which per the documentation of &amp;lt;code&amp;gt;get_params&amp;lt;/code&amp;gt; is an array):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; print(r);                     &lt;br /&gt;
{name=&amp;quot;gauss(1).area&amp;quot;, index=2, value=0.0011752452373316315, min=-1.7976931348623157e+308, max=1.7976931348623157e+308, hard_min=-inf, hard_max=inf, step=0.0, relstep=0.0001, freeze=0, tie=NULL, units=&amp;quot;photons/s/cm^2&amp;quot;, is_a_norm=1, fun=NULL}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and therefore&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; rat=f[0].value/i[0].value;&lt;br /&gt;
isis&amp;gt; g=(f[0].value+i[0].value)/r[0].value;&lt;br /&gt;
isis&amp;gt; print(rat);                          &lt;br /&gt;
4.732248259283046&lt;br /&gt;
isis&amp;gt; print(g);  &lt;br /&gt;
0.8959412576621245&lt;br /&gt;
isis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per the discussion in Porquet, the small value of G is an indication that the observed plasma is dominated by collisions, i.e., it is very thin and very hot and the ionization of the plasma is due to collisions and not due to a strong X-ray source in the vicinity that ionizes the plasma through photoionization. We are also happy that our ratio for R, 4.7, is close to that found by Ness et al., which is around 4 (right hand panel of their Figure 10).&lt;br /&gt;
&lt;br /&gt;
While this is all very nice and the result that we obtain is in rough agreement with the literature, we do not know how uncertain our parameters are. The reason is that even though we have the best fit, we do not yet know the uncertainty of our fit parameters. To calculate the uncertainty of a parameter isis uses the usual &amp;lt;math&amp;gt;\Delta\chi^2&amp;lt;/math&amp;gt; approach, first discussed for X-ray astronomical data by [http://adsabs.harvard.edu/abs/1976ApJ...208..177L Lampton, Margon, Bowyer, 1978, Apj 208, 177]. We will call the parameter for which the uncertainty is to be calculated the &amp;quot;parameter of interest&amp;quot;. Lampton et al. show that the confidence interval can be determined with the following recipe:&lt;br /&gt;
# Calculate &amp;lt;math&amp;gt;\Delta\chi^2&amp;lt;/math&amp;gt; from the chi-square-distribution with one degree of freedom. Common in X-ray astronomy are &amp;quot;&amp;lt;math&amp;gt;1\sigma&amp;lt;/math&amp;gt;&amp;quot;-errors with &amp;lt;math&amp;gt;\Delta\chi^2=1.00&amp;lt;/math&amp;gt;, 90% confidence ranges with &amp;lt;math&amp;gt;\Delta\chi^2=2.71&amp;lt;/math&amp;gt;, and 99% confidence contours with &amp;lt;math&amp;gt;\Delta\chi^2=6.63&amp;lt;/math&amp;gt;. The most common errors are the 90% ones.&lt;br /&gt;
# Change the parameter of interest away from its best fit value to a slightly smaller value. Keep it frozen and refit. This will result in a slightly larger &amp;lt;math&amp;gt;\chi^2&amp;lt;/math&amp;gt; for the best fit.&lt;br /&gt;
# Repeat the previous step until you find the parameter value where the chi-squared is &amp;lt;math&amp;gt;\chi^2 = \chi_\mathrm{min}^2+\Delta\chi^2&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\chi_\mathrm{min}^2&amp;lt;/math&amp;gt; is the chi-squared of our original best fit. The value of our parameter is now the lower bound of the confidence interval.&lt;br /&gt;
# Repeat for values larger than the best fit value until you find the upper bound of the confidence region.&lt;br /&gt;
# Designating the lower and upper end of the confidence region by &amp;lt;math&amp;gt;p_\mathrm{min}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;p_\mathrm{max}&amp;lt;/math&amp;gt; and the best fit value &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, we then write the best fit parameter as follows: &amp;lt;math&amp;gt;p^{+\Delta p_\mathrm{max}}_{-\Delta p_\mathrm{min}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\Delta p_\mathrm{max} = p_\mathrm{max}-p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;p_\mathrm{min}=p-p_\mathrm{min}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because of correlations between parameters, error bars are typically not symmetric and great care has to be taken when doing error propagation. We ignore all of those for the moment and use the rule of thumb that if the error bars are not too asymmetric, a rough estimate for a symmetric error bar which can be used for the standard Gaussian error propagation is the average of the lower and the upper error bars, i.e., use &amp;lt;math&amp;gt;\Delta p =(\Delta p_\mathrm{min}+\Delta p_\mathrm{max})/2&amp;lt;/math&amp;gt; and write the best fit parameter as &amp;lt;math&amp;gt;p\pm\Delta p&amp;lt;/math&amp;gt; (where we usually also use 90% error bars!).&lt;br /&gt;
 &lt;br /&gt;
The above procedure is implemented in isis through the &amp;lt;code&amp;gt;conf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;vconf&amp;lt;/code&amp;gt; functions. These are identical, &amp;lt;code&amp;gt;vconf&amp;lt;/code&amp;gt; gives more information about the procedure (the &amp;quot;v&amp;quot; stands for &amp;quot;verbose&amp;quot;). Since the above procedure searches for the zero of a function, it is not guaranteed to converge numerically. For this reason isis calculates confidence intervals only when explicit limits are set. These limits are returned in case the error calculation failed. Typically, for good data sets the errors will be less than 20-30% of the value, but this depends a lot on the data set and one often has to play around a little bit. &lt;br /&gt;
&lt;br /&gt;
The error bar for the flux of the forbidden line is then calculated as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
isis&amp;gt; set_par(&amp;quot;gauss(3).area&amp;quot;,f[0].value,0,0.75*f[0].value,1.25*f[0].value);&lt;br /&gt;
isis&amp;gt; list_par;                                                             &lt;br /&gt;
constant(1)+gauss(1)+gauss(2)+gauss(3)&lt;br /&gt;
 idx  param           tie-to  freeze         value         min         max&lt;br /&gt;
  1  constant(1).factor   0     0     1.342954e-05           0       1e+10  &lt;br /&gt;
  2  gauss(1).area        0     0      0.001175245           0           0  photons/s/cm^2&lt;br /&gt;
  3  gauss(1).center      0     0         21.60025        21.5        21.7  A&lt;br /&gt;
  4  gauss(1).sigma       0     0       0.01614977       1e-06           1  A&lt;br /&gt;
  5  gauss(2).area        0     0      0.000183689           0           0  photons/s/cm^2&lt;br /&gt;
  6  gauss(2).center      0     0         21.79914        21.7        21.9  A&lt;br /&gt;
  7  gauss(2).sigma       0     0        0.0108202       1e-06           1  A&lt;br /&gt;
  8  gauss(3).area        0     0     0.0008692617  0.0006519463  0.001086577  photons/s/cm^2&lt;br /&gt;
  9  gauss(3).center      0     0         22.09971          22        22.2  A&lt;br /&gt;
 10  gauss(3).sigma       0     0       0.02135323       1e-06           1  A&lt;br /&gt;
isis&amp;gt; (fmi,fma)=vconf(&amp;quot;gauss(3).area&amp;quot;);&lt;br /&gt;
:&lt;br /&gt;
: lots of output...&lt;br /&gt;
:&lt;br /&gt;
 gauss(3).sigma=  2.25766046e-02&lt;br /&gt;
chi-square value converged&lt;br /&gt;
par[8]=  9.64711324e-04  stat=  1.5337e+02  dstat=  2.7100e+00&lt;br /&gt;
limit found:  9.64711324e-04  dstat=  2.7100e+00&lt;br /&gt;
isis&amp;gt; print(fmi);    &lt;br /&gt;
0.0007743270669346407&lt;br /&gt;
isis&amp;gt; print(fma);&lt;br /&gt;
0.0009647113237380715&lt;br /&gt;
isis&amp;gt; print(f[0].value-fmi);&lt;br /&gt;
9.493467346016499e-05&lt;br /&gt;
isis&amp;gt; print(fma-f[0].value);&lt;br /&gt;
9.544958334326589e-05&lt;br /&gt;
isis&amp;gt; print(f[0].value);    &lt;br /&gt;
0.0008692617403948057&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
this means that the error bar is almost symmetric and therefore &amp;lt;math&amp;gt;f=(8.7\pm1.0)\times10^{-5}\,\mathrm{ph}\,\mathrm{s}^{-1}\,\mathrm{cm}^{-2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Exercise 4'''''&lt;br /&gt;
# Perform the above analysis for &amp;quot;your&amp;quot; star. Do not forget to calculate error bars for R and G using error propagation!&lt;br /&gt;
# Use the tables of Porquet et al. to estimate the density and temperature of the plasma. Looking at the discussion by Ness et al., what is the systematic error of this analysis?&lt;br /&gt;
&lt;br /&gt;
==== References ====&lt;br /&gt;
&lt;br /&gt;
[[Category:Isis / Slang]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=General_organisation_of_the_lab&amp;diff=1820</id>
		<title>General organisation of the lab</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=General_organisation_of_the_lab&amp;diff=1820"/>
		<updated>2019-02-28T11:40:39Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: /* Who is involved in which experiment? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:internal]]&lt;br /&gt;
This page is up to date for the Spring Lab 2019.&lt;br /&gt;
=== Who is involved in which experiment? ===&lt;br /&gt;
'''Azimuth''': Katya, Philipp (T.), Thomas, Ole &amp;lt;br/&amp;gt;&lt;br /&gt;
'''CCD''': Maria, Matthias, Dominic, Melanie, Katrin, Christian &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Error propagation''': Max, Basti &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Imaging''': Simon, Roberto &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Observing''': David, Ingo &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Radio''': Ralf, Jonathan, (Jakob), Andrea, (Konstantin, Florian), Stefan &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Spectroscopy''': Andreas, Matti, Markus D. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Labtable ===&lt;br /&gt;
This is the link to our labtable: https://www.sternwarte.uni-erlangen.de/internal-area/labtable/ &amp;lt;br/&amp;gt;&lt;br /&gt;
Please insert the dates of both experiment and final protocol as well as your scores in this table. You can also leave comments. &amp;lt;br/&amp;gt;&lt;br /&gt;
This link is a permanent link, so for simplicity you might want to save it as a bookmark in your favorite browser.&lt;br /&gt;
&lt;br /&gt;
=== Attendance ===&lt;br /&gt;
In order to have an overview of the individual attendances during the lab, there is a Doodle poll, where you have sign in for the days you will be at the observatory. At the days marked with 'yes', you are expected to be in Bamberg. &amp;lt;br/&amp;gt;&lt;br /&gt;
First block: https://doodle.com/poll/cusbegm59fucfe7a &amp;lt;br/&amp;gt;&lt;br /&gt;
Second block: https://doodle.com/poll/bucbrq8f3syvg8zk &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
Additionally, it is mandatory for everyone to help during the observing night(s) in the garden. In order to have enough people around and to distribute this task fairly, you need to sign into additional Doodle polls, whose outcome Ingo is using to create a list containing the night shifts for everyone. &amp;lt;br/&amp;gt;&lt;br /&gt;
The decision whether observing is planned for that night will be made until 5 pm by the profs. &amp;lt;br/&amp;gt;&lt;br /&gt;
Night Doodle first block: https://doodle.com/poll/iqycpix87w8ininr &amp;lt;br/&amp;gt;&lt;br /&gt;
Night Doodle second block: https://doodle.com/poll/f3bukrqqr9iq4mcz &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Unmet_Dependencies&amp;diff=820</id>
		<title>Unmet Dependencies</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Unmet_Dependencies&amp;diff=820"/>
		<updated>2018-04-11T14:17:12Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Unmet dependencies ====&lt;br /&gt;
&lt;br /&gt;
Some machines report an unmet dependencies error without prior warning.&lt;br /&gt;
This error message usually appears after the update of the kernel or modules, i.e. the system update cron job reports (in case of successful updates, it is silent):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
E: Unmet dependencies. Try using -f.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Typical approach to resolve the issue: &lt;br /&gt;
&lt;br /&gt;
* login to that machine as '''ubuntuadmin'''&lt;br /&gt;
* run &amp;lt;pre&amp;gt;sudo apt-get -f install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, sometimes, you'll find that apt-get starts installing the missing packages, but then stops somewhere in the middle reporting '''no space left on device''' or similar.&lt;br /&gt;
&lt;br /&gt;
In this case, first of all check how much free space is available on the root partition:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h /&lt;br /&gt;
&lt;br /&gt;
Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/sda1        33G   31G     0 100% /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two cases:&lt;br /&gt;
* the root partition is completely full&lt;br /&gt;
* the root partition has lots of free space&lt;br /&gt;
&lt;br /&gt;
=== completely full root partition ===&lt;br /&gt;
If the root partition is completely full, you need to find what is filling the root partition. Remember that the system normally uses less than 15GB!&lt;br /&gt;
The problem is sometimes to find '''what''' is using so much space (several GBs!).&lt;br /&gt;
Typical problems are:&lt;br /&gt;
* a lot of stuff in '''/tmp''': /tmp should only contain small stuff. Big files or directories must go elsewhere.&lt;br /&gt;
* '''huge log files''' in /var/log: over time some log files grow huge. In this case old log files can be removed to make space. However, you should investigate '''why''' the log files have grown so large (it takes a lot of logging to create GB large files...) and solve that problem (whatever it might be)&lt;br /&gt;
* too many '''kernels''': new kernels are released (and installed) usually more than once per month. Once the new kernel is installed by the system update, the older unneeded kernels are removed. However, sometimes the older kernels (along with configuration files, headers etc) remain on the system for some reason. In these cases the older kernel files have to be removed manually (see below).&lt;br /&gt;
* '''torque''' trash: torque produces temporary output/error files in /var/spool/torque/. Once the job is complete, the corresponding files are transferred to the destination specified by the torque job. However, does not complete but is interrupted (reboot, crash, ...) these temporary files remain. Over time a substantial amount of sometimes very large files can accumulate. All files not associated with currently running jobs can therefore be removed&lt;br /&gt;
* '''other large files in /var''': there are more system services and processes that create (large) files somewhere under /var (rarely also elsewhere). In such a case you need to figure out what is filling up the disk, remove the large files and also check why such files have been created in the first place.&lt;br /&gt;
&lt;br /&gt;
If the root file system was completely full, you may find that /tmp is mounted as [[Overflow Filesystem|overflow file system]].&lt;br /&gt;
&lt;br /&gt;
Once you have removed enough stuff from the system such that several GB are free again, you can complete the installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== root partition with enough empty space ===&lt;br /&gt;
If all relevant disks have several GB of free space available, the problem is something else.&lt;br /&gt;
In this case, the affected device is '''not''' one of the regular disks, but the '''inital ram disk''' which contains the modules needed for booting the PC. I.e. the initial ramdisk is too full and the needed new modules can not be installed. In this case you need to remove older unneeded modules from the initial ramdisk and the whole system.&lt;br /&gt;
&lt;br /&gt;
List all installed kernel headers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg -l | grep linux-headers&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, you can not simply remove old kernels using apt-get as apt-get will first try to complete the installation, resulting again in the error message above. You therefore need to remove the old kernels and headers using dpkg. Remove basically all old kernel headers. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -r linux-headers-3.13.0-100 linux-headers-3.13.0-100-generic &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: do '''not''' bother to remove the linux kernel images, as these get removed by apt-get during an update and only a small configuration file remains.&lt;br /&gt;
&lt;br /&gt;
Once you have removed a substantial amount of headers, you can then run apt-get to install the missing packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally reboot the system and you're done.&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Unmet_Dependencies&amp;diff=818</id>
		<title>Unmet Dependencies</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Unmet_Dependencies&amp;diff=818"/>
		<updated>2018-04-11T14:15:45Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Unmet dependencies ====&lt;br /&gt;
&lt;br /&gt;
Some machines report an unmet dependencies error without prior warning.&lt;br /&gt;
This error message usually appears after the update of the kernel or modules, i.e. the system update cron job reports (in case of successful updates, it is silent):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
E: Unmet dependencies. Try using -f.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Typical approach to resolve the issue: &lt;br /&gt;
&lt;br /&gt;
* login to that machine as '''ubuntuadmin'''&lt;br /&gt;
* run &amp;lt;pre&amp;gt;sudo apt-get -f install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, sometimes, you'll find that apt-get starts installing the missing packages, but then stops somewhere in the middle reporting '''no space left on device''' or similar.&lt;br /&gt;
&lt;br /&gt;
In this case, first of all check how much free space is available on the root partition:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h /&lt;br /&gt;
&lt;br /&gt;
Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/sda1        33G   31G     0 100% /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two cases:&lt;br /&gt;
* the root partition is completely full&lt;br /&gt;
* the root partition has lots of free space&lt;br /&gt;
&lt;br /&gt;
=== completely full root partition ===&lt;br /&gt;
If the root partition is completely full, you need to find what is filling the root partition. Remember that the system normally uses less than 15GB!&lt;br /&gt;
The problem is sometimes to find '''what''' is using so much space (several GBs!).&lt;br /&gt;
Typical problems are:&lt;br /&gt;
* a lot of stuff in '''/tmp''': /tmp should only contain small stuff. Big files or directories must go elsewhere.&lt;br /&gt;
* '''huge log files''' in /var/log: over time some log files grow huge. In this case old log files can be removed to make space. However, you should investigate '''why''' the log files have grown so large (it takes a lot of logging to create GB large files...) and solve that problem (whatever it might be)&lt;br /&gt;
* too many '''kernels''': new kernels are released (and installed) usually more than once per month. Once the new kernel is installed by the system update, the older unneeded kernels are removed. However, sometimes the older kernels (along with configuration files, headers etc) remain on the system for some reason. In these cases the older kernel files have to be removed manually (see below).&lt;br /&gt;
* '''torque''' trash: torque produces temporary output/error files in /var/spool/torque/. Once the job is complete, the corresponding files are transferred to the destination specified by the torque job. However, does not complete but is interrupted (reboot, crash, ...) these temporary files remain. Over time a substantial amount of sometimes very large files can accumulate. All files not associated with currently running jobs can therefore be removed&lt;br /&gt;
* '''other large files in /var''': there are more system services and processes that create (large) files somewhere under /var (rarely also elsewhere). In such a case you need to figure out what is filling up the disk, remove the large files and also check why such files have been created in the first place.&lt;br /&gt;
&lt;br /&gt;
If the root file system was completely full, you may find that /tmp is mounted as [[Overflow Filesystem|overflow file system]].&lt;br /&gt;
&lt;br /&gt;
Once you have removed enough stuff from the system such that several GB are free again, you can complete the installation:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo apt-get install -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== root partition with enough empty space ===&lt;br /&gt;
If all relevant disks have several GB of free space available, the problem is something else.&lt;br /&gt;
In this case, the affected device is **not** one of the regular disks, but the **inital ram disk** which contains the modules needed for booting the PC. I.e. the initial ramdisk is too full and the needed new modules can not be installed. In this case you need to remove older unneeded modules from the initial ramdisk and the whole system.&lt;br /&gt;
&lt;br /&gt;
List all installed kernel headers:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
dpkg -l | grep linux-headers&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, you can not simply remove old kernels using ''apt-get'' as apt-get will first try to complete the installation, resulting again in the error message above. You therefore need to remove the old kernels and headers using dpkg. Remove basically all old kernel headers. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo dpkg -r linux-headers-3.13.0-100 linux-headers-3.13.0-100-generic &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: do **not** bother to remove the linux kernel images, as these get removed by apt-get during an update and only a small configuration file remains.&lt;br /&gt;
&lt;br /&gt;
Once you have removed a substantial amount of headers, you can then run apt-get to install the missing packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo apt-get install -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally reboot the system and you're done.&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Overflow_Filesystem&amp;diff=815</id>
		<title>Overflow Filesystem</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Overflow_Filesystem&amp;diff=815"/>
		<updated>2018-04-11T14:12:54Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==== overflow file system ====&lt;br /&gt;
If the root file system is 100% full for some time, but the kernel or other system related jobs urgently need some space on the root file system, e.g., to create temp files in /tmp, the kernel creates a small '''overflow''' file system which is then mounted on /tmp:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
overflow        1.0M   20K 1004K   2% /tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which resides in memory. Usually these overflow file systems are really tiny (1MB) - just large enough for urgent needs of the system.&lt;br /&gt;
&lt;br /&gt;
First of all you need to make space on the actual root file system, see the article on the [[Unmet Dependencies#completely_full_root_partition|completely full root file system]].&lt;br /&gt;
&lt;br /&gt;
Once you have freed enough space on the root file system, this overflow file system is no longer needed. However, since it usually contains several files in use by the system you can '''not''' simply unmount the file system. Instead of trying to figure out which files are open and trying to close them, it is in general much more straightforward to simple reboot the machine, once you have made sure that no important jobs are running on the machine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Login&amp;diff=812</id>
		<title>Login</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Login&amp;diff=812"/>
		<updated>2018-04-11T14:11:27Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Especially in the course of the update of 14.04 to 16.04 the following issues have turned out to happen quite often. The text was copied from Ingo's mail to the admin list.&lt;br /&gt;
&lt;br /&gt;
* the .dmrc problem: if something else than &amp;quot;plasma&amp;quot; is specified in&lt;br /&gt;
this file in the home directory of the user, you'll get a &amp;quot;can not load&lt;br /&gt;
session&amp;quot; (or similar) error message. Since lightdm sort of &amp;quot;caches&amp;quot; the&lt;br /&gt;
value of this file in a file of its own, this can be very annoying to&lt;br /&gt;
sort out.&lt;br /&gt;
&lt;br /&gt;
* the .Xauthority problem: can happen if a machine is newly installed&lt;br /&gt;
and the user has worked on that machine before the update, i.e. a wrong&lt;br /&gt;
key is stored in .Xauthority&lt;br /&gt;
&lt;br /&gt;
* akonadi / baloo crap: if enabled, these daemons cause heavy IO load&lt;br /&gt;
and potentially slow down / inhibit login or make the machine barely&lt;br /&gt;
usable while creating the databases&lt;br /&gt;
&lt;br /&gt;
* useless KDE animations: on older or weaker machines, enabling (or not&lt;br /&gt;
disabling) tons of KDE animations can make the machine very slow, or&lt;br /&gt;
might even crash the graphics driver&lt;br /&gt;
&lt;br /&gt;
* reboot necessary: as it turned out in Marias case, the machine needed&lt;br /&gt;
a reboot. It seems that the new KDE is new more touchy w.r.t. a&lt;br /&gt;
necessary reboot. I.e. if KDE components have been updated by the&lt;br /&gt;
nightly cron jobs, the KDE/Ubuntu 16 system services (dbus et al)&lt;br /&gt;
apparantly do not get along very well any more causing these frozen&lt;br /&gt;
logins and a reboot is needed.&lt;br /&gt;
==&amp;gt; if this happens more often, we have to think about whether we can&lt;br /&gt;
continue with the nightly updates, or whether we do them only once a&lt;br /&gt;
week and have reboots afterwards (something like &amp;quot;reboot Monday&amp;quot; or&lt;br /&gt;
similar).&lt;br /&gt;
&lt;br /&gt;
* ''possibly'' some other cron job may interfere with the new KDE causing&lt;br /&gt;
these frozen logins.&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=CUPS&amp;diff=805</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=CUPS&amp;diff=805"/>
		<updated>2018-04-11T14:08:27Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==== Printing Service CUPS ====&lt;br /&gt;
&lt;br /&gt;
Printing at the observatory is handled by [https://www.cups.org/index.html CUPS].&lt;br /&gt;
CUPS is installed in the virtual box auriga (which lives on leo) and can be administered through a web interface running on port 631: http://auriga:631/ (accessible only from within the institute).&lt;br /&gt;
&lt;br /&gt;
Through this web interface, printers can be added or modified, queues can be stopped, jobs canceled, and other other maintenance jobs can be performed. To perform such tasks, CUPS requires you to login: use '''ubuntuadmin''' and the corresponding password.&lt;br /&gt;
&lt;br /&gt;
When addong new printers, do forget to enable '''sharing''' to make the printer visible in the entire cluster.&lt;br /&gt;
&lt;br /&gt;
Check out the [https://www.cups.org/documentation.html CUPS documentation] how to work with CUPS.&lt;br /&gt;
&lt;br /&gt;
=== Trouble shooting ===&lt;br /&gt;
&lt;br /&gt;
If a printer is not responding/not accessible: &lt;br /&gt;
* make sure that the printer is online (also check the network cable!), working properly, and not just busy. &lt;br /&gt;
* check the web interface of that printer, try to print a test page from the web interface.&lt;br /&gt;
* check the web interface for jobs in that queue. Remove failed jobs.&lt;br /&gt;
&lt;br /&gt;
If no printers are availble (or just a generic printer), CUPS is probably down:&lt;br /&gt;
* login to auriga as ubuntuadmin&lt;br /&gt;
* restart the CUPS service:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service cups stop&lt;br /&gt;
sudo service cups start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* sometimes it might be necessary to reboot the entire virtual box (CUPS will automatically be started after the reboot):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List of Printers on the Cluster ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=CUPS&amp;diff=804</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=CUPS&amp;diff=804"/>
		<updated>2018-04-11T14:07:54Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==== Printing Service CUPS ====&lt;br /&gt;
&lt;br /&gt;
Printing at the observatory is handled by [https://www.cups.org/index.html CUPS].&lt;br /&gt;
CUPS is installed in the virtual box auriga (which lives on leo) and can be administered through a web interface running on port 631: http://auriga:631/ (accessible only from within the institute).&lt;br /&gt;
&lt;br /&gt;
Through this web interface, printers can be added or modified, queues can be stopped, jobs canceled, and other other maintenance jobs can be performed. To perform such tasks, CUPS requires you to login: use '''ubuntuadmin''' and the corresponding password.&lt;br /&gt;
&lt;br /&gt;
When addong new printers, do forget to enable '''sharing''' to make the printer visible in the entire cluster.&lt;br /&gt;
&lt;br /&gt;
Check out the [[https://www.cups.org/documentation.html|CUPS documentation]] how to work with CUPS.&lt;br /&gt;
&lt;br /&gt;
=== Trouble shooting ===&lt;br /&gt;
&lt;br /&gt;
If a printer is not responding/not accessible: &lt;br /&gt;
* make sure that the printer is online (also check the network cable!), working properly, and not just busy. &lt;br /&gt;
* check the web interface of that printer, try to print a test page from the web interface.&lt;br /&gt;
* check the web interface for jobs in that queue. Remove failed jobs.&lt;br /&gt;
&lt;br /&gt;
If no printers are availble (or just a generic printer), CUPS is probably down:&lt;br /&gt;
* login to auriga as ubuntuadmin&lt;br /&gt;
* restart the CUPS service:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service cups stop&lt;br /&gt;
sudo service cups start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* sometimes it might be necessary to reboot the entire virtual box (CUPS will automatically be started after the reboot):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo shutdown -r now&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List of Printers on the Cluster ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Computer_Introduction&amp;diff=803</id>
		<title>Computer Introduction</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Computer_Introduction&amp;diff=803"/>
		<updated>2018-04-11T14:06:34Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
====== The computer introduction ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* general introduction to the system (client server, Linux, ...)&lt;br /&gt;
* distribute accounts &amp;amp; passwords&lt;br /&gt;
* permissions (do not change)&lt;br /&gt;
* explain location of PCs &lt;br /&gt;
* if not not enough PCs, students should contact supervisors&lt;br /&gt;
* WLAN (refer to RRZE)&lt;br /&gt;
* no Ethernet connection for laptops (do not disconnect PCs!)&lt;br /&gt;
* USB sticks&lt;br /&gt;
* Printing&lt;br /&gt;
* remind students that bandwidth is limited&lt;br /&gt;
* in case of problems contact admins (telephone, Email)&lt;br /&gt;
* ask for questions&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=801</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=801"/>
		<updated>2018-04-11T14:06:02Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly '''before''' a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
* login as ubuntuadmin on the home server phoenix: &amp;lt;pre&amp;gt;ssh ubuntuadmin@phoenix&amp;lt;/pre&amp;gt;&lt;br /&gt;
* become root: &amp;lt;pre&amp;gt;sudo su&amp;lt;/pre&amp;gt;&lt;br /&gt;
* go to /home/praktikum/intern/setup&lt;br /&gt;
* run the script setup: &amp;lt;pre&amp;gt;./setup&amp;lt;/pre&amp;gt; This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
* log out of phoenix&lt;br /&gt;
* log into crux as ubuntuadmin&lt;br /&gt;
* set new passwords for the prakti accounts:&lt;br /&gt;
** create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
** set the password: &amp;lt;pre&amp;gt;sudo passwd prakti1&amp;lt;/pre&amp;gt;&lt;br /&gt;
** note the password in a file&lt;br /&gt;
** do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
** notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
'''After''' a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
* get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
* backup the prakti accounts:&lt;br /&gt;
** login as ubuntuadmin on the home server phoenix&lt;br /&gt;
** become root&lt;br /&gt;
** rsync the prakti accounts to your PC, e.g.,&amp;lt;pre&amp;gt;rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner&amp;lt;/pre&amp;gt;&lt;br /&gt;
** check how much disk space is used by the accounts.&lt;br /&gt;
** if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
** get as many blank DVDs as needed &lt;br /&gt;
** backup the accounts to the DVDs, e.g. using k3b&lt;br /&gt;
** label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
** get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
** store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
'''Note''': the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
'''Note''': in some rare cases a group does not finish before the next block begins. In this case do '''not'''  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=800</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=800"/>
		<updated>2018-04-11T14:05:29Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly '''before''' a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
* login as ubuntuadmin on the home server phoenix: &amp;lt;pre&amp;gt;ssh ubuntuadmin@phoenix&amp;lt;/pre&amp;gt;&lt;br /&gt;
* become root: &amp;lt;pre&amp;gt;sudo su&amp;lt;/pre&amp;gt;&lt;br /&gt;
* go to /home/praktikum/intern/setup&lt;br /&gt;
* run the script setup: &amp;lt;pre&amp;gt;./setup&amp;lt;/pre&amp;gt; This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
* log out of phoenix&lt;br /&gt;
* log into crux as ubuntuadmin&lt;br /&gt;
* set new passwords for the prakti accounts:&lt;br /&gt;
** create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
** set the password: &amp;lt;pre&amp;gt;sudo passwd prakti1&amp;lt;/pre&amp;gt;&lt;br /&gt;
** note the password in a file&lt;br /&gt;
** do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
** notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
'''After''' a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
* get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
* backup the prakti accounts:&lt;br /&gt;
** login as ubuntuadmin on the home server phoenix&lt;br /&gt;
** become root&lt;br /&gt;
** rsync the prakti accounts to your PC, e.g.,&amp;lt;pre&amp;gt;rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner&amp;lt;/pre&amp;gt;&lt;br /&gt;
** check how much disk space is used by the accounts.&lt;br /&gt;
** if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
** get as many blank DVDs as needed &lt;br /&gt;
** backup the accounts to the DVDs using &amp;lt;pk3b''&lt;br /&gt;
** label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
** get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
** store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
'''Note''': the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
'''Note''': in some rare cases a group does not finish before the next block begins. In this case do '''not'''  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=794</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=794"/>
		<updated>2018-04-11T13:56:01Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly '''before''' a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
* login as ubuntuadmin on the home server phoenix: &amp;lt;pre&amp;gt;ssh ubuntuadmin@phoenix&amp;lt;/pre&amp;gt;&lt;br /&gt;
* become root: &amp;lt;pre&amp;gt;sudo su&amp;lt;/pre&amp;gt;&lt;br /&gt;
* go to /home/praktikum/intern/setup&lt;br /&gt;
* run the script setup: &amp;lt;pre&amp;gt;./setup&amp;lt;/pre&amp;gt; This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
* log out of phoenix&lt;br /&gt;
* log into crux as ubuntuadmin&lt;br /&gt;
* set new passwords for the prakti accounts:&lt;br /&gt;
** create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
** set the password: &amp;lt;pre&amp;gt;sudo passwd prakti1&amp;lt;/pre&amp;gt;&lt;br /&gt;
** note the password in a file&lt;br /&gt;
** do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
** notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
'''After''' a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
* get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
* backup the prakti accounts:&lt;br /&gt;
** login as ubuntuadmin on the home server phoenix&lt;br /&gt;
** become root&lt;br /&gt;
** rsync the prakti accounts to your PC, e.g.,&amp;lt;pre&amp;gt;rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner&amp;lt;/pre&amp;gt;&lt;br /&gt;
** check how much disk space is used by the accounts.&lt;br /&gt;
** if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
** get as many blank DVDs as needed &lt;br /&gt;
** backup the accounts to the DVDs using ''k3b''&lt;br /&gt;
** label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
** get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
** store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
**Note**: the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
**Note**: in some rare cases a group does not finish before the next block begins. In this case do **not**  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=793</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=793"/>
		<updated>2018-04-11T13:55:48Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly '''before''' a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
* login as ubuntuadmin on the home server phoenix: &amp;lt;pre&amp;gt;ssh ubuntuadmin@phoenix&amp;lt;/pre&amp;gt;&lt;br /&gt;
* become root: &amp;lt;pre&amp;gt;sudo su&amp;lt;pre&amp;gt;&lt;br /&gt;
* go to /home/praktikum/intern/setup&lt;br /&gt;
* run the script setup: &amp;lt;pre&amp;gt;./setup&amp;lt;/pre&amp;gt; This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
* log out of phoenix&lt;br /&gt;
* log into crux as ubuntuadmin&lt;br /&gt;
* set new passwords for the prakti accounts:&lt;br /&gt;
** create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
** set the password: &amp;lt;pre&amp;gt;sudo passwd prakti1&amp;lt;/pre&amp;gt;&lt;br /&gt;
** note the password in a file&lt;br /&gt;
** do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
** notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
'''After''' a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
* get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
* backup the prakti accounts:&lt;br /&gt;
** login as ubuntuadmin on the home server phoenix&lt;br /&gt;
** become root&lt;br /&gt;
** rsync the prakti accounts to your PC, e.g.,&amp;lt;pre&amp;gt;rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner&amp;lt;/pre&amp;gt;&lt;br /&gt;
** check how much disk space is used by the accounts.&lt;br /&gt;
** if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
** get as many blank DVDs as needed &lt;br /&gt;
** backup the accounts to the DVDs using ''k3b''&lt;br /&gt;
** label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
** get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
** store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
**Note**: the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
**Note**: in some rare cases a group does not finish before the next block begins. In this case do **not**  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=792</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=792"/>
		<updated>2018-04-11T13:55:12Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly '''before''' a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
* login as ubuntuadmin on the home server phoenix: &amp;lt;pre&amp;gt;ssh ubuntuadmin@phoenix&amp;lt;/pre&amp;gt;&lt;br /&gt;
* become root: &amp;lt;pre&amp;gt;sudo su&amp;lt;pre&amp;gt;&lt;br /&gt;
* go to /home/praktikum/intern/setup&lt;br /&gt;
* run the script setup: &amp;lt;pre&amp;gt;./setup&amp;lt;pre&amp;gt; This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
* log out of phoenix&lt;br /&gt;
* log into crux as ubuntuadmin&lt;br /&gt;
* set new passwords for the prakti accounts:&lt;br /&gt;
** create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
** set the password: ''sudo passwd prakti1''&lt;br /&gt;
** note the password in a file&lt;br /&gt;
** do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
** notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
'''After''' a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
* get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
* backup the prakti accounts:&lt;br /&gt;
** login as ubuntuadmin on the home server phoenix&lt;br /&gt;
** become root&lt;br /&gt;
** rsync the prakti accounts to your PC, e.g.,\\ &amp;lt;pre&amp;gt;rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner&amp;lt;/pre&amp;gt;&lt;br /&gt;
** check how much disk space is used by the accounts.&lt;br /&gt;
** if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
** get as many blank DVDs as needed &lt;br /&gt;
** backup the accounts to the DVDs using ''k3b''&lt;br /&gt;
** label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
** get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
** store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
**Note**: the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
**Note**: in some rare cases a group does not finish before the next block begins. In this case do **not**  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=791</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=791"/>
		<updated>2018-04-11T13:54:53Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly '''before''' a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
* login as ubuntuadmin on the home server phoenix: ''ssh ubuntuadmin@phoenix''&lt;br /&gt;
* become root: &amp;lt;pre&amp;gt;sudo su&amp;lt;pre&amp;gt;&lt;br /&gt;
* go to /home/praktikum/intern/setup&lt;br /&gt;
* run the script setup: &amp;lt;pre&amp;gt;./setup&amp;lt;pre&amp;gt; This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
* log out of phoenix&lt;br /&gt;
* log into crux as ubuntuadmin&lt;br /&gt;
* set new passwords for the prakti accounts:&lt;br /&gt;
** create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
** set the password: ''sudo passwd prakti1''&lt;br /&gt;
** note the password in a file&lt;br /&gt;
** do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
** notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
'''After''' a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
* get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
* backup the prakti accounts:&lt;br /&gt;
** login as ubuntuadmin on the home server phoenix&lt;br /&gt;
** become root&lt;br /&gt;
** rsync the prakti accounts to your PC, e.g.,\\ &amp;lt;pre&amp;gt;rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner&amp;lt;/pre&amp;gt;&lt;br /&gt;
** check how much disk space is used by the accounts.&lt;br /&gt;
** if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
** get as many blank DVDs as needed &lt;br /&gt;
** backup the accounts to the DVDs using ''k3b''&lt;br /&gt;
** label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
** get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
** store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
**Note**: the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
**Note**: in some rare cases a group does not finish before the next block begins. In this case do **not**  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=789</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=789"/>
		<updated>2018-04-11T13:54:27Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly '''before''' a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
* login as ubuntuadmin on the home server phoenix: ''ssh ubuntuadmin@phoenix''&lt;br /&gt;
* become root: ''sudo su''&lt;br /&gt;
* go to /home/praktikum/intern/setup&lt;br /&gt;
* run the script setup: ''./setup''\\ This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
* log out of phoenix&lt;br /&gt;
* log into crux as ubuntuadmin&lt;br /&gt;
* set new passwords for the prakti accounts:&lt;br /&gt;
** create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
** set the password: ''sudo passwd prakti1''&lt;br /&gt;
** note the password in a file&lt;br /&gt;
** do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
** notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
'''After''' a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
* get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
* backup the prakti accounts:&lt;br /&gt;
** login as ubuntuadmin on the home server phoenix&lt;br /&gt;
** become root&lt;br /&gt;
** rsync the prakti accounts to your PC, e.g.,\\ &amp;lt;pre&amp;gt;rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner&amp;lt;/pre&amp;gt;&lt;br /&gt;
** check how much disk space is used by the accounts.&lt;br /&gt;
** if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
** get as many blank DVDs as needed &lt;br /&gt;
** backup the accounts to the DVDs using ''k3b''&lt;br /&gt;
** label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
** get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
** store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
**Note**: the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
**Note**: in some rare cases a group does not finish before the next block begins. In this case do **not**  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=788</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=788"/>
		<updated>2018-04-11T13:53:42Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly //before// a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
* login as ubuntuadmin on the home server phoenix: ''ssh ubuntuadmin@phoenix''&lt;br /&gt;
* become root: ''sudo su''&lt;br /&gt;
* go to /home/praktikum/intern/setup&lt;br /&gt;
* run the script setup: ''./setup''\\ This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
* log out of phoenix&lt;br /&gt;
* log into crux as ubuntuadmin&lt;br /&gt;
* set new passwords for the prakti accounts:&lt;br /&gt;
** create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
** set the password: ''sudo passwd prakti1''&lt;br /&gt;
** note the password in a file&lt;br /&gt;
** do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
** notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
//After// a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
* get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
* backup the prakti accounts:&lt;br /&gt;
** login as ubuntuadmin on the home server phoenix&lt;br /&gt;
** become root&lt;br /&gt;
** rsync the prakti accounts to your PC, e.g.,\\ ''rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner''&lt;br /&gt;
** check how much disk space is used by the accounts.&lt;br /&gt;
** if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
** get as many blank DVDs as needed &lt;br /&gt;
** backup the accounts to the DVDs using ''k3b''&lt;br /&gt;
** label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
** get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
** store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
**Note**: the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
**Note**: in some rare cases a group does not finish before the next block begins. In this case do **not**  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti&amp;diff=781</id>
		<title>Setup prakti</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti&amp;diff=781"/>
		<updated>2018-04-11T13:49:15Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Kreykenbohm moved page Setup prakti to Setup prakti accounts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Setup prakti accounts]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=780</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=780"/>
		<updated>2018-04-11T13:49:15Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Kreykenbohm moved page Setup prakti to Setup prakti accounts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly //before// a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
  * login as ubuntuadmin on the home server phoenix: ''ssh ubuntuadmin@phoenix''&lt;br /&gt;
  * become root: ''sudo su''&lt;br /&gt;
  * go to /home/praktikum/intern/setup&lt;br /&gt;
  * run the script setup: ''./setup''\\ This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
  * log out of phoenix&lt;br /&gt;
  * log into crux as ubuntuadmin&lt;br /&gt;
  * set new passwords for the prakti accounts:&lt;br /&gt;
    * create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
    * set the password: ''sudo passwd prakti1''&lt;br /&gt;
    * note the password in a file&lt;br /&gt;
    * do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
    * notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
//After// a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
  * get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
  * backup the prakti accounts:&lt;br /&gt;
    * login as ubuntuadmin on the home server phoenix&lt;br /&gt;
    * become root&lt;br /&gt;
    * rsync the prakti accounts to your PC, e.g.,\\ ''rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner''&lt;br /&gt;
    * check how much disk space is used by the accounts.&lt;br /&gt;
    * if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
    * get as many blank DVDs as needed &lt;br /&gt;
    * backup the accounts to the DVDs using ''k3b''&lt;br /&gt;
    * label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
    * get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
    * store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
**Note**: the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
**Note**: in some rare cases a group does not finish before the next block begins. In this case do **not**  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=779</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=779"/>
		<updated>2018-04-11T13:48:44Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [https://en.wikipedia.org/wiki/Virtual_machine Wikipedia] and google. We use [https://www.virtualbox.org VirtualBox] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in '''corrupted''' disk image! Therefore always shut down the virtual boxes on that machine '''first''', then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[CUPS]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hydrus &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| Web service (lectures) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| cetus &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| new web server&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| antlia &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| Openproject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| erosita.fau.de &lt;br /&gt;
| linux &lt;br /&gt;
| serpens &lt;br /&gt;
| yes &lt;br /&gt;
| eROSITA NRTA &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| ursa &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 1 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| andromeda &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 2 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| tucana &lt;br /&gt;
| on demand &lt;br /&gt;
| camera East dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| reticulum &lt;br /&gt;
| on demand &lt;br /&gt;
| camera West dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=778</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=778"/>
		<updated>2018-04-11T13:48:29Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [https://en.wikipedia.org/wiki/Virtual_machine Wikipedia] and google. We use [https://www.virtualbox.org VirtualBox] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in '''corrupted''' disk image! Therefore always shut down the virtual boxes on that machine '''first''', then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[CUPS Print server]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hydrus &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| Web service (lectures) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| cetus &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| new web server&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| antlia &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| Openproject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| erosita.fau.de &lt;br /&gt;
| linux &lt;br /&gt;
| serpens &lt;br /&gt;
| yes &lt;br /&gt;
| eROSITA NRTA &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| ursa &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 1 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| andromeda &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 2 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| tucana &lt;br /&gt;
| on demand &lt;br /&gt;
| camera East dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| reticulum &lt;br /&gt;
| on demand &lt;br /&gt;
| camera West dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=776</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=776"/>
		<updated>2018-04-11T13:47:34Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [https://en.wikipedia.org/wiki/Virtual_machine Wikipedia] and google. We use [https://www.virtualbox.org VirtualBox] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in '''corrupted''' disk image! Therefore always shut down the virtual boxes on that machine '''first''', then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[admin:cups|Print server]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hydrus &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| Web service (lectures) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| cetus &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| new web server&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| antlia &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| Openproject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| erosita.fau.de &lt;br /&gt;
| linux &lt;br /&gt;
| serpens &lt;br /&gt;
| yes &lt;br /&gt;
| eROSITA NRTA &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| ursa &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 1 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| andromeda &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 2 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| tucana &lt;br /&gt;
| on demand &lt;br /&gt;
| camera East dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| reticulum &lt;br /&gt;
| on demand &lt;br /&gt;
| camera West dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=775</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=775"/>
		<updated>2018-04-11T13:47:03Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [https://en.wikipedia.org/wiki/Virtual_machine|Wikipedia] and google. We use [https://www.virtualbox.org | VirtualBox] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in '''corrupted''' disk image! Therefore always shut down the virtual boxes on that machine '''first''', then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[admin:cups|Print server]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hydrus &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| Web service (lectures) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| cetus &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| new web server&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| antlia &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| Openproject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| erosita.fau.de &lt;br /&gt;
| linux &lt;br /&gt;
| serpens &lt;br /&gt;
| yes &lt;br /&gt;
| eROSITA NRTA &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| ursa &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 1 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| andromeda &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 2 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| tucana &lt;br /&gt;
| on demand &lt;br /&gt;
| camera East dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| reticulum &lt;br /&gt;
| on demand &lt;br /&gt;
| camera West dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=774</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=774"/>
		<updated>2018-04-11T13:46:19Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [https://en.wikipedia.org/wiki/Virtual_machine| Wikipedia] and google. We use [https://www.virtualbox.org| VirtualBox] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in '''corrupted''' disk image! Therefore always shut down the virtual boxes on that machine '''first''', then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[admin:cups|Print server]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hydrus &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| Web service (lectures) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| cetus &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| new web server&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| antlia &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| Openproject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| erosita.fau.de &lt;br /&gt;
| linux &lt;br /&gt;
| serpens &lt;br /&gt;
| yes &lt;br /&gt;
| eROSITA NRTA &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| ursa &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 1 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| andromeda &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 2 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| tucana &lt;br /&gt;
| on demand &lt;br /&gt;
| camera East dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| reticulum &lt;br /&gt;
| on demand &lt;br /&gt;
| camera West dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=773</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=773"/>
		<updated>2018-04-11T13:44:31Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [[https://en.wikipedia.org/wiki/Virtual_machine|wikipedia]] and google. We use [[https://www.virtualbox.org | VirtualBox]] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in '''corrupted''' disk image! Therefore always shut down the virtual boxes on that machine '''first''', then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[admin:cups|Print server]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hydrus &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| Web service (lectures) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| cetus &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| new web server&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| antlia &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| Openproject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| erosita.fau.de &lt;br /&gt;
| linux &lt;br /&gt;
| serpens &lt;br /&gt;
| yes &lt;br /&gt;
| eROSITA NRTA &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| ursa &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 1 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| andromeda &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 2 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| tucana &lt;br /&gt;
| on demand &lt;br /&gt;
| camera East dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| reticulum &lt;br /&gt;
| on demand &lt;br /&gt;
| camera West dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=770</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=770"/>
		<updated>2018-04-11T13:40:41Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [[https://en.wikipedia.org/wiki/Virtual_machine|wikipedia]] and google. We use [[https://www.virtualbox.org | VirtualBox]] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in **corrupted** disk image! Therefore always shut down the virtual boxes on that machine **first**, then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[admin:cups|Print server]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hydrus &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| Web service (lectures) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| cetus &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| new web server&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| antlia &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| Openproject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| erosita.fau.de &lt;br /&gt;
| linux &lt;br /&gt;
| serpens &lt;br /&gt;
| yes &lt;br /&gt;
| eROSITA NRTA &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| ursa &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 1 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| andromeda &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 2 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| tucana &lt;br /&gt;
| on demand &lt;br /&gt;
| camera East dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| reticulum &lt;br /&gt;
| on demand &lt;br /&gt;
| camera West dome &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=768</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=768"/>
		<updated>2018-04-11T13:38:51Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [[https://en.wikipedia.org/wiki/Virtual_machine|wikipedia]] and google. We use [[https://www.virtualbox.org | VirtualBox]] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in **corrupted** disk image! Therefore always shut down the virtual boxes on that machine **first**, then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[admin:cups|Print server]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hydrus &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| Web service (lectures) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| cetus &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| new web server&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| antlia &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| Openproject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| erosita.fau.de &lt;br /&gt;
| linux &lt;br /&gt;
| serpens &lt;br /&gt;
| yes &lt;br /&gt;
| eROSITA NRTA &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| ursa &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 1 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| andromeda &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 2 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| | Windows XP | tucana | on demand | camera East dome |-&lt;br /&gt;
| | Windows XP | reticulum | on demand | camera West dome |-&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=766</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=766"/>
		<updated>2018-04-11T13:38:19Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [[https://en.wikipedia.org/wiki/Virtual_machine|wikipedia]] and google. We use [[https://www.virtualbox.org | VirtualBox]] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in **corrupted** disk image! Therefore always shut down the virtual boxes on that machine **first**, then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[admin:cups|Print server]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hydrus &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| Web service (lectures) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| cetus &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| new web server&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| antlia &lt;br /&gt;
| linux &lt;br /&gt;
| draco &lt;br /&gt;
| yes &lt;br /&gt;
| Openproject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| erosita.fau.de &lt;br /&gt;
| linux &lt;br /&gt;
| serpens &lt;br /&gt;
| yes &lt;br /&gt;
| eROSITA NRTA &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP &lt;br /&gt;
| ursa &lt;br /&gt;
| on demand &lt;br /&gt;
| CCD Lab 1 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
| Windows XP | andromeda | on demand | CCD Lab 2 |-&lt;br /&gt;
| | Windows XP | tucana | on demand | camera East dome |-&lt;br /&gt;
| | Windows XP | reticulum | on demand | camera West dome |-&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=763</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=763"/>
		<updated>2018-04-11T13:36:35Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [[https://en.wikipedia.org/wiki/Virtual_machine|wikipedia]] and google. We use [[https://www.virtualbox.org | VirtualBox]] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in **corrupted** disk image! Therefore always shut down the virtual boxes on that machine **first**, then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga &lt;br /&gt;
| linux &lt;br /&gt;
| leo &lt;br /&gt;
| yes &lt;br /&gt;
| [[admin:cups|Print server]]&lt;br /&gt;
|-&lt;br /&gt;
| hydrus | linux | leo | yes | Web service (lectures) ^&lt;br /&gt;
| cetus | linux | draco | yes | new web server ^&lt;br /&gt;
| antlia | linux | draco | yes | Openproject ^&lt;br /&gt;
| erosita.fau.de | linux | serpens | yes | eROSITA NRTA ^&lt;br /&gt;
| gallus| Windows 8.1 | | no| Athena ^&lt;br /&gt;
| circinus | linux | | no | basic linux box for setup of new boxes ^&lt;br /&gt;
| | Windows XP | ursa | on demand | CCD Lab 1 ^&lt;br /&gt;
| | Windows XP | andromeda | on demand | CCD Lab 2 ^&lt;br /&gt;
| | Windows XP | tucana | on demand | camera East dome ^&lt;br /&gt;
| | Windows XP | reticulum | on demand | camera West dome ^&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=762</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=762"/>
		<updated>2018-04-11T13:35:43Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [[https://en.wikipedia.org/wiki/Virtual_machine|wikipedia]] and google. We use [[https://www.virtualbox.org | VirtualBox]] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in **corrupted** disk image! Therefore always shut down the virtual boxes on that machine **first**, then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!VBox &lt;br /&gt;
!OS &lt;br /&gt;
!Host &lt;br /&gt;
!running &lt;br /&gt;
!Purpose &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auriga | linux | leo | yes | [[admin:cups|Print server]] ^&lt;br /&gt;
| hydrus | linux | leo | yes | Web service (lectures) ^&lt;br /&gt;
| cetus | linux | draco | yes | new web server ^&lt;br /&gt;
| antlia | linux | draco | yes | Openproject ^&lt;br /&gt;
| erosita.fau.de | linux | serpens | yes | eROSITA NRTA ^&lt;br /&gt;
| gallus| Windows 8.1 | | no| Athena ^&lt;br /&gt;
| circinus | linux | | no | basic linux box for setup of new boxes ^&lt;br /&gt;
| | Windows XP | ursa | on demand | CCD Lab 1 ^&lt;br /&gt;
| | Windows XP | andromeda | on demand | CCD Lab 2 ^&lt;br /&gt;
| | Windows XP | tucana | on demand | camera East dome ^&lt;br /&gt;
| | Windows XP | reticulum | on demand | camera West dome ^&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=758</id>
		<title>Virtual Boxes</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Virtual_Boxes&amp;diff=758"/>
		<updated>2018-04-11T13:33:13Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Created page with &amp;quot;==== Virtual Boxes ====  We use virtual machines for various purposes at the observatory. For the concept of virtualization and virtual machines, see https://en.wikipedia.or...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Virtual Boxes ====&lt;br /&gt;
&lt;br /&gt;
We use virtual machines for various purposes at the observatory.&lt;br /&gt;
For the concept of virtualization and virtual machines, see [[https://en.wikipedia.org/wiki/Virtual_machine|wikipedia]] and google. We use [[https://www.virtualbox.org | VirtualBox]] which is free and has been very reliable in the past.&lt;br /&gt;
&lt;br /&gt;
Note that when you reboot/shutdown a machine that has a VBox running on it, that virtual box is not shutdown correctly but simply terminated which may result in **corrupted** disk image! Therefore always shut down the virtual boxes on that machine **first**, then reboot the host, and then restart the virtual boxes again.&lt;br /&gt;
&lt;br /&gt;
The following virtual machines are installed at the observatory:&lt;br /&gt;
&lt;br /&gt;
^ VBox ^ OS ^ Host ^ running ^ Purpose ^&lt;br /&gt;
| auriga | linux | leo | yes | [[admin:cups|Print server]] ^&lt;br /&gt;
| hydrus | linux | leo | yes | Web service (lectures) ^&lt;br /&gt;
| cetus | linux | draco | yes | new web server ^&lt;br /&gt;
| antlia | linux | draco | yes | Openproject ^&lt;br /&gt;
| erosita.fau.de | linux | serpens | yes | eROSITA NRTA ^&lt;br /&gt;
| gallus| Windows 8.1 | | no| Athena ^&lt;br /&gt;
| circinus | linux | | no | basic linux box for setup of new boxes ^&lt;br /&gt;
| | Windows XP | ursa | on demand | CCD Lab 1 ^&lt;br /&gt;
| | Windows XP | andromeda | on demand | CCD Lab 2 ^&lt;br /&gt;
| | Windows XP | tucana | on demand | camera East dome ^&lt;br /&gt;
| | Windows XP | reticulum | on demand | camera West dome ^&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=CUPS&amp;diff=754</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=CUPS&amp;diff=754"/>
		<updated>2018-04-11T13:32:11Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Created page with &amp;quot; ==== Printing Service CUPS ====  Printing at the observatory is handled by CUPS. CUPS is installed in the virtual box auriga (which lives...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==== Printing Service CUPS ====&lt;br /&gt;
&lt;br /&gt;
Printing at the observatory is handled by [[https://www.cups.org/index.html|CUPS]].&lt;br /&gt;
CUPS is installed in the virtual box auriga (which lives on leo) and can be administered through a web interface running on port 631: http://auriga:631/ (accessible only from within the institute).&lt;br /&gt;
&lt;br /&gt;
Through this web interface, printers can be added or modified, queues can be stopped, jobs canceled, and other other maintenance jobs can be performed. To perform such tasks, CUPS requires you to login: use ''ubuntuadmin'' and the corresponding password.&lt;br /&gt;
&lt;br /&gt;
When addong new printers, do forget to enable ''sharing'' to make the printer visible in the entire cluster.&lt;br /&gt;
&lt;br /&gt;
Check out the [[https://www.cups.org/documentation.html|CUPS documentation]] how to work with CUPS.&lt;br /&gt;
&lt;br /&gt;
=== Trouble shooting ===&lt;br /&gt;
&lt;br /&gt;
If a printer is not responding/not accessible: &lt;br /&gt;
  * make sure that the printer is online (also check the network cable!), working properly, and not just busy. &lt;br /&gt;
  * check the web interface of that printer, try to print a test page from the web interface.&lt;br /&gt;
  * check the web interface for jobs in that queue. Remove failed jobs.&lt;br /&gt;
&lt;br /&gt;
If no printers are availble (or just a generic printer), CUPS is probably down:&lt;br /&gt;
  * login to auriga as ubuntuadmin&lt;br /&gt;
  * restart the CUPS service:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo service cups stop&lt;br /&gt;
sudo service cups start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
  * sometimes it might be necessary to reboot the entire virtual box (CUPS will automatically be started after the reboot):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo shutdown -r now&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List of Printers on the Cluster ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Overflow_Filesystem&amp;diff=745</id>
		<title>Overflow Filesystem</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Overflow_Filesystem&amp;diff=745"/>
		<updated>2018-04-11T13:28:28Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Created page with &amp;quot; ==== overflow file system ==== If the root file system is 100% full for some time, but the kernel or other system related jobs urgently need some space on the root file syste...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==== overflow file system ====&lt;br /&gt;
If the root file system is 100% full for some time, but the kernel or other system related jobs urgently need some space on the root file system, e.g., to create temp files in /tmp, the kernel creates a small **overflow** file system which is then mounted on /tmp:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
overflow        1.0M   20K 1004K   2% /tmp&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
which resides in memory. Usually these overflow file systems are really tiny (1MB) - just large enough for urgent needs of the system.&lt;br /&gt;
&lt;br /&gt;
First of all you need to make space on the actual root file system, see the article on the [[admin:unmet#completely_full_root_partition|completely full root file system]].&lt;br /&gt;
&lt;br /&gt;
Once you have freed enough space on the root file system, this overflow file system is no longer needed. However, since it usually contains several files in use by the system you can **not** simply unmount the file system. Instead of trying to figure out which files are open and trying to close them, it is in general much more straightforward to simple reboot the machine, once you have made sure that no important jobs are running on the machine:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
shutdown -r now&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Unmet_Dependencies&amp;diff=741</id>
		<title>Unmet Dependencies</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Unmet_Dependencies&amp;diff=741"/>
		<updated>2018-04-11T13:26:03Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Created page with &amp;quot;==== Unmet dependencies ====  Some machines report an unmet dependencies error without prior warning. This error message usually appears after the update of the kernel or modu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Unmet dependencies ====&lt;br /&gt;
&lt;br /&gt;
Some machines report an unmet dependencies error without prior warning.&lt;br /&gt;
This error message usually appears after the update of the kernel or modules, i.e. the system update cron job reports (in case of successful updates, it is silent):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
E: Unmet dependencies. Try using -f.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Typical approach to resolve the issue: &lt;br /&gt;
&lt;br /&gt;
  * login to that machine as ubuntuadmin&lt;br /&gt;
  * run ''sudo apt-get -f install''&lt;br /&gt;
&lt;br /&gt;
However, sometimes, you'll find that apt-get starts installing the missing packages, but then stops somewhere in the middle reporting **no space left on device** or similar.&lt;br /&gt;
&lt;br /&gt;
In this case, first of all check how much free space is available on the root partition:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
df -h /&lt;br /&gt;
&lt;br /&gt;
Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/sda1        33G   31G     0 100% /&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two cases:&lt;br /&gt;
  * the root partition is completely full&lt;br /&gt;
  * the root partition has lots of free space&lt;br /&gt;
&lt;br /&gt;
=== completely full root partition ===&lt;br /&gt;
If the root partition is completely full, you need to find what is filling the root partition. Remember that the system normally uses less than 15GB!&lt;br /&gt;
The problem is sometimes to find **what** is using so much space (several GBs!).&lt;br /&gt;
Typical problems are:&lt;br /&gt;
    * a lot of stuff in **/tmp**: /tmp should only contain small stuff. Big files or directories must go elsewhere.&lt;br /&gt;
    * **huge log files** in /var/log: over time some log files grow huge. In this case old log files can be removed to make space. However, you should investigate **why** the log files have grown so large (it takes a lot of logging to create GB large files...) and solve that problem (whatever it might be)&lt;br /&gt;
    * too many **kernels**: new kernels are released (and installed) usually more than once per month. Once the new kernel is installed by the system update, the older unneeded kernels are removed. However, sometimes the older kernels (along with configuration files, headers etc) remain on the system for some reason. In these cases the older kernel files have to be removed manually (see below).&lt;br /&gt;
    * **torque** trash: torque produces temporary output/error files in /var/spool/torque/. Once the job is complete, the corresponding files are transferred to the destination specified by the torque job. However, does not complete but is interrupted (reboot, crash, ...) these temporary files remain. Over time a substantial amount of sometimes very large files can accumulate. All files not associated with currently running jobs can therefore be removed&lt;br /&gt;
    * **other large files in /var**: there are more system services and processes that create (large) files somewhere under /var (rarely also elsewhere). In such a case you need to figure out what is filling up the disk, remove the large files and also check why such files have been created in the first place.&lt;br /&gt;
&lt;br /&gt;
If the root file system was completely full, you may find that /tmp is mounted as [[admin:overflowfs|overflow file system]].&lt;br /&gt;
&lt;br /&gt;
Once you have removed enough stuff from the system such that several GB are free again, you can complete the installation:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo apt-get install -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== root partition with enough empty space ===&lt;br /&gt;
If all relevant disks have several GB of free space available, the problem is something else.&lt;br /&gt;
In this case, the affected device is **not** one of the regular disks, but the **inital ram disk** which contains the modules needed for booting the PC. I.e. the initial ramdisk is too full and the needed new modules can not be installed. In this case you need to remove older unneeded modules from the initial ramdisk and the whole system.&lt;br /&gt;
&lt;br /&gt;
List all installed kernel headers:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
dpkg -l | grep linux-headers&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, you can not simply remove old kernels using ''apt-get'' as apt-get will first try to complete the installation, resulting again in the error message above. You therefore need to remove the old kernels and headers using dpkg. Remove basically all old kernel headers. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo dpkg -r linux-headers-3.13.0-100 linux-headers-3.13.0-100-generic &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: do **not** bother to remove the linux kernel images, as these get removed by apt-get during an update and only a small configuration file remains.&lt;br /&gt;
&lt;br /&gt;
Once you have removed a substantial amount of headers, you can then run apt-get to install the missing packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo apt-get install -f&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally reboot the system and you're done.&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Login_Problems&amp;diff=737</id>
		<title>Login Problems</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Login_Problems&amp;diff=737"/>
		<updated>2018-04-11T13:22:42Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Kreykenbohm moved page Login Problems to Login&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Login]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Login&amp;diff=736</id>
		<title>Login</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Login&amp;diff=736"/>
		<updated>2018-04-11T13:22:42Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Kreykenbohm moved page Login Problems to Login&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Especially in the course of the update of 14.04 to 16.04 the following issues have turned out to happen quite often. The text was copied from Ingo's mail to the admin list.&lt;br /&gt;
&lt;br /&gt;
* the .dmrc problem: if something else than &amp;quot;plasma&amp;quot; is specified in&lt;br /&gt;
this file in the home directory of the user, you'll get a &amp;quot;can not load&lt;br /&gt;
session&amp;quot; (or similar) error message. Since lightdm sort of &amp;quot;caches&amp;quot; the&lt;br /&gt;
value of this file in a file of its own, this can be very annoying to&lt;br /&gt;
sort out.&lt;br /&gt;
&lt;br /&gt;
* the .Xauthority problem: can happen if a machine is newly installed&lt;br /&gt;
and the user has worked on that machine before the update, i.e. a wrong&lt;br /&gt;
key is stored in .Xauthority&lt;br /&gt;
&lt;br /&gt;
* akonadi / baloo crap: if enabled, these daemons cause heavy IO load&lt;br /&gt;
and potentially slow down / inhibit login or make the machine barely&lt;br /&gt;
usable while creating the databases&lt;br /&gt;
&lt;br /&gt;
* useless KDE animations: on older or weaker machines, enabling (or not&lt;br /&gt;
disabling) tons of KDE animations can make the machine very slow, or&lt;br /&gt;
might even crash the graphics driver&lt;br /&gt;
&lt;br /&gt;
* reboot necessary: as it turned out in Marias case, the machine needed&lt;br /&gt;
a reboot. It seems that the new KDE is new more touchy w.r.t. a&lt;br /&gt;
necessary reboot. I.e. if KDE components have been updated by the&lt;br /&gt;
nightly cron jobs, the KDE/Ubuntu 16 system services (dbus et al)&lt;br /&gt;
apparantly do not get along very well any more causing these frozen&lt;br /&gt;
logins and a reboot is needed.&lt;br /&gt;
==&amp;gt; if this happens more often, we have to think about whether we can&lt;br /&gt;
continue with the nightly updates, or whether we do them only once a&lt;br /&gt;
week and have reboots afterwards (something like &amp;quot;reboot Monday&amp;quot; or&lt;br /&gt;
similar).&lt;br /&gt;
&lt;br /&gt;
* _possibly_ some other cron job may interfere with the new KDE causing&lt;br /&gt;
these frozen logins.&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Login&amp;diff=730</id>
		<title>Login</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Login&amp;diff=730"/>
		<updated>2018-04-11T13:18:20Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Created page with &amp;quot; Especially in the course of the update of 14.04 to 16.04 the following issues have turned out to happen quite often. The text was copied from Ingo's mail to the admin list....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Especially in the course of the update of 14.04 to 16.04 the following issues have turned out to happen quite often. The text was copied from Ingo's mail to the admin list.&lt;br /&gt;
&lt;br /&gt;
* the .dmrc problem: if something else than &amp;quot;plasma&amp;quot; is specified in&lt;br /&gt;
this file in the home directory of the user, you'll get a &amp;quot;can not load&lt;br /&gt;
session&amp;quot; (or similar) error message. Since lightdm sort of &amp;quot;caches&amp;quot; the&lt;br /&gt;
value of this file in a file of its own, this can be very annoying to&lt;br /&gt;
sort out.&lt;br /&gt;
&lt;br /&gt;
* the .Xauthority problem: can happen if a machine is newly installed&lt;br /&gt;
and the user has worked on that machine before the update, i.e. a wrong&lt;br /&gt;
key is stored in .Xauthority&lt;br /&gt;
&lt;br /&gt;
* akonadi / baloo crap: if enabled, these daemons cause heavy IO load&lt;br /&gt;
and potentially slow down / inhibit login or make the machine barely&lt;br /&gt;
usable while creating the databases&lt;br /&gt;
&lt;br /&gt;
* useless KDE animations: on older or weaker machines, enabling (or not&lt;br /&gt;
disabling) tons of KDE animations can make the machine very slow, or&lt;br /&gt;
might even crash the graphics driver&lt;br /&gt;
&lt;br /&gt;
* reboot necessary: as it turned out in Marias case, the machine needed&lt;br /&gt;
a reboot. It seems that the new KDE is new more touchy w.r.t. a&lt;br /&gt;
necessary reboot. I.e. if KDE components have been updated by the&lt;br /&gt;
nightly cron jobs, the KDE/Ubuntu 16 system services (dbus et al)&lt;br /&gt;
apparantly do not get along very well any more causing these frozen&lt;br /&gt;
logins and a reboot is needed.&lt;br /&gt;
==&amp;gt; if this happens more often, we have to think about whether we can&lt;br /&gt;
continue with the nightly updates, or whether we do them only once a&lt;br /&gt;
week and have reboots afterwards (something like &amp;quot;reboot Monday&amp;quot; or&lt;br /&gt;
similar).&lt;br /&gt;
&lt;br /&gt;
* _possibly_ some other cron job may interfere with the new KDE causing&lt;br /&gt;
these frozen logins.&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Admin:computer_intro&amp;diff=729</id>
		<title>Admin:computer intro</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Admin:computer_intro&amp;diff=729"/>
		<updated>2018-04-11T13:16:21Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Kreykenbohm moved page Admin:computer intro to Computer Introduction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Computer Introduction]]&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Computer_Introduction&amp;diff=728</id>
		<title>Computer Introduction</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Computer_Introduction&amp;diff=728"/>
		<updated>2018-04-11T13:16:21Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Kreykenbohm moved page Admin:computer intro to Computer Introduction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
====== The computer introduction ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  * general introduction to the system (client server, Linux, ...)&lt;br /&gt;
  * distribute accounts &amp;amp; passwords&lt;br /&gt;
  * permissions (do not change)&lt;br /&gt;
  * explain location of PCs &lt;br /&gt;
  * if not not enough PCs, students should contact supervisors&lt;br /&gt;
  * WLAN (refer to RRZE)&lt;br /&gt;
  * no Ethernet connection for laptops (do not disconnect PCs!)&lt;br /&gt;
  * USB sticks&lt;br /&gt;
  * Printing&lt;br /&gt;
  * remind students that bandwidth is limited&lt;br /&gt;
  * in case of problems contact admins (telephone, Email)&lt;br /&gt;
  * ask for questions&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Computer_Introduction&amp;diff=708</id>
		<title>Computer Introduction</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Computer_Introduction&amp;diff=708"/>
		<updated>2018-04-11T12:32:40Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
====== The computer introduction ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  * general introduction to the system (client server, Linux, ...)&lt;br /&gt;
  * distribute accounts &amp;amp; passwords&lt;br /&gt;
  * permissions (do not change)&lt;br /&gt;
  * explain location of PCs &lt;br /&gt;
  * if not not enough PCs, students should contact supervisors&lt;br /&gt;
  * WLAN (refer to RRZE)&lt;br /&gt;
  * no Ethernet connection for laptops (do not disconnect PCs!)&lt;br /&gt;
  * USB sticks&lt;br /&gt;
  * Printing&lt;br /&gt;
  * remind students that bandwidth is limited&lt;br /&gt;
  * in case of problems contact admins (telephone, Email)&lt;br /&gt;
  * ask for questions&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Computer_Introduction&amp;diff=701</id>
		<title>Computer Introduction</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Computer_Introduction&amp;diff=701"/>
		<updated>2018-04-11T12:16:59Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Created page with &amp;quot;====== The computer introduction ======     * general introduction to the system (client server, Linux, ...)   * distribute accounts &amp;amp; passwords   * permissions (do not change...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====== The computer introduction ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  * general introduction to the system (client server, Linux, ...)&lt;br /&gt;
  * distribute accounts &amp;amp; passwords&lt;br /&gt;
  * permissions (do not change)&lt;br /&gt;
  * explain location of PCs &lt;br /&gt;
  * if not not enough PCs, students should contact supervisors&lt;br /&gt;
  * WLAN (refer to RRZE)&lt;br /&gt;
  * no Ethernet connection for laptops (do not disconnect PCs!)&lt;br /&gt;
  * USB sticks&lt;br /&gt;
  * Printing&lt;br /&gt;
  * remind students that bandwidth is limited&lt;br /&gt;
  * in case of problems contact admins (telephone, Email)&lt;br /&gt;
  * ask for questions&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=697</id>
		<title>Setup prakti accounts</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Setup_prakti_accounts&amp;diff=697"/>
		<updated>2018-04-11T12:10:41Z</updated>

		<summary type="html">&lt;p&gt;Kreykenbohm: Created page with &amp;quot;  Category:Admin   ==== Setup prakti accounts ====  Shortly //before// a new lab course begins, initialize the prakti accounts:   * login as ubuntuadmin on the home server...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Admin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup prakti accounts ====&lt;br /&gt;
&lt;br /&gt;
Shortly //before// a new lab course begins, initialize the prakti accounts:&lt;br /&gt;
  * login as ubuntuadmin on the home server phoenix: ''ssh ubuntuadmin@phoenix''&lt;br /&gt;
  * become root: ''sudo su''&lt;br /&gt;
  * go to /home/praktikum/intern/setup&lt;br /&gt;
  * run the script setup: ''./setup''\\ This script will rsync the template prakti directory to the 7 prakti home directories. It will also remove anything from the prakti home directories not present in the template&lt;br /&gt;
  * log out of phoenix&lt;br /&gt;
  * log into crux as ubuntuadmin&lt;br /&gt;
  * set new passwords for the prakti accounts:&lt;br /&gt;
    * create a new random password, e.g. using http://passwordsgenerator.net/&lt;br /&gt;
    * set the password: ''sudo passwd prakti1''&lt;br /&gt;
    * note the password in a file&lt;br /&gt;
    * do the above for all prakti accounts (use different passwords for every account)&lt;br /&gt;
    * notify all users at remeis that the accounts have been setup and include the new passwords&lt;br /&gt;
&lt;br /&gt;
//After// a block of the lab course is finished, you need to backup the accounts:&lt;br /&gt;
  * get confirmation from Jörn, Uli, or Manami that all students are finished and the reports have been submitted.&lt;br /&gt;
  * backup the prakti accounts:&lt;br /&gt;
    * login as ubuntuadmin on the home server phoenix&lt;br /&gt;
    * become root&lt;br /&gt;
    * rsync the prakti accounts to your PC, e.g.,\\ ''rsync -av /home/praktikum/prakti* kreykenbohm@orion:/scratch1/DVD-Burner''&lt;br /&gt;
    * check how much disk space is used by the accounts.&lt;br /&gt;
    * if more than ~4 GB are used, remove unneeded files from the prakti accounts, i.e. firefox/chrome caches, Download folders etc.&lt;br /&gt;
    * get as many blank DVDs as needed &lt;br /&gt;
    * backup the accounts to the DVDs using ''k3b''&lt;br /&gt;
    * label the DVDs appropriately (year, spring/fall, block, and disk number (if applicable))&lt;br /&gt;
    * get jewel cases for the DVDs from the closet in the server room&lt;br /&gt;
    * store the DVDs in closet to the right in the meeting room&lt;br /&gt;
&lt;br /&gt;
**Note**: the timing is especially important between the first and second block of a lab course. You have very little time to get confirmation that all groups of the first block are finished, back up all accounts, and initialize the accounts for the second block. Sometimes (if some students are not finished in time) the setup can only be done in the morning of the day when the next block begins...&lt;br /&gt;
&lt;br /&gt;
**Note**: in some rare cases a group does not finish before the next block begins. In this case do **not**  initialize all accounts using the setup script, but keep the account of the delayed group and only initialze the other accounts.&lt;/div&gt;</summary>
		<author><name>Kreykenbohm</name></author>
	</entry>
</feed>