<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Tamasis/PACS</title>
 <link href="http://pchanial.github.com/tamasis-map/feed/" rel="self"/>
 <link href="http://pchanial.github.com/tamasis-map/"/>
 <updated>2012-06-13T07:59:06-07:00</updated>
 <id>http://pchanial.github.com/tamasis-map/</id>
 <author>
   <name>Tamasis/PACS</name>
   <email></email>
 </author>

 
 <entry>
   <title>Tamasis 4.2</title>
   <link href="http://pchanial.github.com/tamasis-map/2012/tamasis-4.2"/>
   <updated>2012-06-07T00:00:00-07:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2012/tamasis-4.2</id>
   <content type="html">&lt;p&gt;What&amp;#8217;s new ?&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;update for pyoperators 0.4 &amp;amp; pyfits 3.x&lt;/li&gt;
	&lt;li&gt;bring back map-making with distributed maps&lt;/li&gt;
	&lt;li&gt;comprehensive &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt; testing of the naive, ls and rls mapper.&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;PACS&lt;/span&gt;: &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; Change: change PACS&amp;#8217;s get_tod default behaviour, by not applying the flatfield correction and subtracting the mean value. To do so, the appropriate keywords must be set to True&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;PACS&lt;/span&gt;: make the PacsInstrument class be instanciated and used without a PacsObservation&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;PACS&lt;/span&gt;: gather calibration files in PacsInfo class. Implement get_calibration methods, which centralise calibration file handling. Make Responsivity and BadPixelMask calibration files handled from Python. Add access to Absorption and FilterTransmission calibration files. Update calibration files to &lt;span class=&quot;caps&quot;&gt;HCSS&lt;/span&gt; 8.&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;PACS&lt;/span&gt;: fix masking of temporal jumps&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;PACS&lt;/span&gt;: flag as &amp;#8216;other&amp;#8217; all pointings before the first inscan one.&lt;/li&gt;
	&lt;li&gt;datatypes: add fast median method in Quantity. (Tod takes mask into account)&lt;/li&gt;
	&lt;li&gt;datatypes: getitem should also handle list of items.&lt;/li&gt;
	&lt;li&gt;datatypes: Add astype method, fix wrapping of some ndarray&amp;#8217;s methods in Tod and Map&lt;/li&gt;
	&lt;li&gt;datatypes: implement rightward/leftward broadcasting in derived units.&lt;/li&gt;
	&lt;li&gt;acquisitionmodels: add class PointingMatrix which contain the pointing matrix information and info about the input map. Make ProjectionOperator handle PointingMatrix inputs and the get_pointing_matrix routines return a PointingMatrix object. As a consequence, pointing matrices can be manipulated before being used to initialise a ProjectionOperator. Make get_mask work for &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt;-distributed maps and TODs. Make get_ptp work for block column projections. Remove header, npixels_per_sample attributes&lt;/li&gt;
	&lt;li&gt;acquisitionmodels: new methods intersects, apply_mask, get_pTx_pT1 (can significantly speed up naive maps) in ProjectionOperator. Remove _matrix attribute in projections.&lt;/li&gt;
	&lt;li&gt;acquisitionmodels: remove 3rd dimension in pointing_matrix_mask/pack. During packing, reject PointingElements with a negative weight.&lt;/li&gt;
	&lt;li&gt;acquisitionmodels: in InvNttOperator, fix filter_length if the operator has several blocks.&lt;/li&gt;
	&lt;li&gt;acquisitionmodels: PackOperator and UnpackOperator: add unary and binary rules. Hence remove transpose methods. Rework Fortran routines to differentiate in-place and out-of-place operations. Add comprehensive test cases.&lt;/li&gt;
	&lt;li&gt;acquisitionmodels: in DdTddOperator, if the the scalar argument is zero, return a ZeroOperator.&lt;/li&gt;
	&lt;li&gt;acquisitionmodels: make DiscreteDifferenceOperator work even if there are more &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt; processes than elements along the first dimension. Fix &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt; outplace diffT case.&lt;/li&gt;
	&lt;li&gt;acquisitionmodels: make the block_diagonal decorator handle implicit partitions, take the usual partitionin and axisin keywords instead of partition and axis.&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; change: remove_nonfinite &amp;#8594; filter_nonfinite, add outplace operations, with and without a mask, Add processing Fortran interface.&lt;/li&gt;
	&lt;li&gt;interpolate_linear, filter_median, filter_nonfinite, filter_polynomial: add &amp;#8216;out&amp;#8217; keyword. Use partition instead of nsamples.&lt;/li&gt;
	&lt;li&gt;inplace filter_polynomial&lt;/li&gt;
	&lt;li&gt;implement median function, handling mask and NaN, parallelised along a given axis.&lt;/li&gt;
	&lt;li&gt;observation.plot_scan: plot detector footprint on the first valid pointing&lt;/li&gt;
	&lt;li&gt;force numeric locale to &amp;#8216;&lt;span class=&quot;caps&quot;&gt;POSIX&lt;/span&gt;&amp;#8217;, to prevent gfortran using comma as fraction separator PR47007.&lt;/li&gt;
	&lt;li&gt;new functions gather_fitsheader and scatter_fitsheader&lt;/li&gt;
	&lt;li&gt;move all information messages to Python. Group info messages for block column projection operators.&lt;/li&gt;
	&lt;li&gt;refactor mapper_ls and mapper_rls, by relying on algebraic rules and by removing the use of ReshapeOperator.&lt;/li&gt;
	&lt;li&gt;in write_fits, fix &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt; case. Do not rely on pyfits private methods and do the padding ourselves.&lt;/li&gt;
	&lt;li&gt;add argument r0 in airy_disk function to specify first zero, as an alternative to fwhm.&lt;/li&gt;
	&lt;li&gt;in imshow, discard outliers by using a percentile of the valid values.&lt;/li&gt;
	&lt;li&gt;general: improve error messages&lt;/li&gt;
	&lt;li&gt;rename numpyutils.py &amp;#8594; utils.py and utils.py &amp;#8594; datautils.py.&lt;/li&gt;
	&lt;li&gt;wscript: preprocess var.py.in file to include configuration options and version name.&lt;/li&gt;
	&lt;li&gt;wscript: make waf loc display Python/Fortran/Total lines of code. Remove loc-fortran and loc-python.&lt;/li&gt;
	&lt;li&gt;wscript: run test-mpi test suite with np = 1 even if &amp;#8212;enable-mpi has not been set&lt;/li&gt;
&lt;/ul&gt;</content>
 </entry>
 
 <entry>
   <title>Tamasis 4.1</title>
   <link href="http://pchanial.github.com/tamasis-map/2012/tamasis-4.1"/>
   <updated>2012-01-30T00:00:00-08:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2012/tamasis-4.1</id>
   <content type="html">&lt;p&gt;What&amp;#8217;s new ?&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Update to PyOperators v0.3&lt;/li&gt;
	&lt;li&gt;Update to waf 1.6.10&lt;/li&gt;
	&lt;li&gt;Bring back &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt; read/write capabilities for FitsArray/Map/Tod instances&lt;/li&gt;
	&lt;li&gt;Bring back &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt;-distributed discrete difference operator&lt;/li&gt;
	&lt;li&gt;Pointing class: make constructor more generic and easy to use&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; changes: module &lt;em&gt;quantity&lt;/em&gt; has been renamed to &lt;em&gt;quantities&lt;/em&gt;. Although the old names will be kept for some time, operators now consistently end with &lt;code&gt;'Operator'&lt;/code&gt;:&lt;br /&gt;
  &amp;#8211; &lt;code&gt;CompressionAverage&lt;/code&gt; &amp;rarr; &lt;code&gt;CompressionAverageOperator&lt;/code&gt;&lt;br /&gt;
  &amp;#8211; &lt;code&gt;DiscreteDifference&lt;/code&gt; &amp;rarr; &lt;code&gt;DiscreteDifferenceOperator&lt;/code&gt;&lt;br /&gt;
  &amp;#8211; &lt;code&gt;InvNtt&lt;/code&gt; &amp;rarr; &lt;code&gt;InvNttOperator&lt;/code&gt;&lt;br /&gt;
  &amp;#8211; &lt;code&gt;Masking&lt;/code&gt; &amp;rarr; &lt;code&gt;MaskOperator&lt;/code&gt;&lt;br /&gt;
  &amp;#8211; &lt;code&gt;Projection&lt;/code&gt; &amp;rarr; &lt;code&gt;ProjectionOperator&lt;/code&gt;&lt;br /&gt;
  &amp;#8211; &lt;code&gt;ResponseTruncatedExponential&lt;/code&gt; &amp;rarr; &lt;code&gt;ConvolutionTruncatedExponentialOperator&lt;/code&gt;&lt;br /&gt;
  &amp;#8211; &lt;code&gt;Unpacking&lt;/code&gt; &amp;rarr; &lt;code&gt;UnpackOperator&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
 </entry>
 
 <entry>
   <title>Tamasis 4.0</title>
   <link href="http://pchanial.github.com/tamasis-map/2012/tamasis-4.0"/>
   <updated>2012-01-12T00:00:00-08:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2012/tamasis-4.0</id>
   <content type="html">&lt;p&gt;What&amp;#8217;s new ?&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;first release depending on the &lt;a href=&quot;http://pchanial.github.com/pyoperators&quot;&gt;PyOperator&lt;/a&gt; package, which is the result of the merging of Tamasis&amp;#8217; new acquisition models and of the work by N. Barbey (&lt;a href=&quot;http://nbarbey.github.com/linear_operators&quot;&gt;linear_operators&lt;/a&gt;).&lt;/li&gt;
	&lt;li&gt;the operator class is much more flexible, faster and the memory is better managed. In particular, operators can be combined in blocks. They can also be reduced, following algebraic rules.&lt;/li&gt;
	&lt;li&gt;as a consequence, are available many more algorithms (FminBFGS, FminCG, FminCOBYLA, FminLBFGSB, FminNCG, FminPowell, FminSLSQP, FminTNC, Lanczos, Double Lookup Inference) and priors through an &lt;code&gt;Operator&lt;/code&gt; interface to the wavelet package &lt;a href=&quot;http://www.pybytes.com/pywavelets&quot;&gt;pywt&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;the &lt;code&gt;Instrument&lt;/code&gt; and &lt;code&gt;Observation&lt;/code&gt; classes are now populated with useful methods, so that Tamasis can now be used for other instruments than &lt;span class=&quot;caps&quot;&gt;PACS&lt;/span&gt;.&lt;/li&gt;
	&lt;li&gt;configuration stage now checks the version of the python modules (waf patch)&lt;/li&gt;
	&lt;li&gt;dependencies to &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt; and &lt;span class=&quot;caps&quot;&gt;WCSLIB&lt;/span&gt; have been made optional.&lt;/li&gt;
	&lt;li&gt;test suite converted to nose.&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; changes: in the Projection operator for the &lt;span class=&quot;caps&quot;&gt;PACS&lt;/span&gt; instrument, use &amp;#8220;&lt;code&gt;downsampling=True&lt;/code&gt;&amp;#8221;, instead of &amp;#8220;&lt;code&gt;oversampling=False&lt;/code&gt;&amp;#8221;. The Pointing class constructor has now a more flexible single positional argument: &lt;code&gt;Pointing(t,ra,dec,pa)&lt;/code&gt; becomes &lt;code&gt;Pointing((ra,dec,pa), time=t)&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;</content>
 </entry>
 
 <entry>
   <title>Tamasis 3.2</title>
   <link href="http://pchanial.github.com/tamasis-map/2011/tamasis-3.2"/>
   <updated>2011-06-29T00:00:00-07:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2011/tamasis-3.2</id>
   <content type="html">&lt;p&gt;What&amp;#8217;s new ?&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;parallel write of &lt;span class=&quot;caps&quot;&gt;FITS&lt;/span&gt; files using &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt;-IO&lt;/li&gt;
	&lt;li&gt;implement class &lt;code&gt;DistributedArray&lt;/code&gt; to ease manipulation of &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt;-distributed maps&lt;/li&gt;
	&lt;li&gt;new general purpose operators: &lt;code&gt;SqrtInvNtt&lt;/code&gt;, &lt;code&gt;Offset&lt;/code&gt;, &lt;code&gt;Rounding&lt;/code&gt; (9 different methods), &lt;code&gt;Clip&lt;/code&gt;, &lt;code&gt;Minimum&lt;/code&gt;, &lt;code&gt;Maximum&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;new &lt;span class=&quot;caps&quot;&gt;PACS&lt;/span&gt; operators: Jy-to-Volts and Volts-to-&lt;span class=&quot;caps&quot;&gt;ADU&lt;/span&gt; converters&lt;/li&gt;
	&lt;li&gt;linesearch with Armijo rule or strong Wolfe-Powell&lt;/li&gt;
	&lt;li&gt;command line interface for map-making routines, contributed by Nicolas Barbey&lt;/li&gt;
&lt;/ul&gt;</content>
 </entry>
 
 <entry>
   <title>Tamasis 3.1</title>
   <link href="http://pchanial.github.com/tamasis-map/2011/tamasis-3.1"/>
   <updated>2011-05-25T00:00:00-07:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2011/tamasis-3.1</id>
   <content type="html">&lt;p&gt;What&amp;#8217;s new ?&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; change: &lt;code&gt;InvNtt&lt;/code&gt; operator now works in direct space so it returns the actual time-time noise correlation matrix ala MADmap.&lt;/li&gt;
	&lt;li&gt;new &lt;code&gt;PacsObservation&lt;/code&gt; method &lt;code&gt;get_detector_stddev&lt;/code&gt;, which returns the detector standard deviation given an optional median filtering length.&lt;/li&gt;
	&lt;li&gt;new &lt;code&gt;plot_tod&lt;/code&gt; method useful to display a &lt;code&gt;Tod&lt;/code&gt; with the mask information, ex: &lt;code&gt;plot_tod(tod[100])&lt;/code&gt; will plot detector #100&amp;#8217;s timeline&lt;/li&gt;
	&lt;li&gt;parallel (OpenMP+MPI) non-linear conjugate gradient solver with preconditioning, with different descent methods and norms&lt;/li&gt;
&lt;/ul&gt;</content>
 </entry>
 
 <entry>
   <title>What is Tamasis?</title>
   <link href="http://pchanial.github.com/tamasis-map/2000/faq-what-is-tamasis"/>
   <updated>2000-01-01T00:00:00-08:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2000/faq-what-is-tamasis</id>
   <content type="html">&lt;p&gt;Tamasis is an &lt;span class=&quot;caps&quot;&gt;ASTRONET&lt;/span&gt; funded project aiming at enhancing the science that can be produced from the submillimeter surveys currently in preparation in Europe with instruments such as Herschel, &lt;span class=&quot;caps&quot;&gt;ALMA&lt;/span&gt; and SCUBA2.&lt;/p&gt;
&lt;p&gt;This project is a collaboration between French, Dutch and Austrian institutes: &lt;span class=&quot;caps&quot;&gt;CEA&lt;/span&gt;/SAp and &lt;span class=&quot;caps&quot;&gt;IAS&lt;/span&gt; in France, Leiden Observatory in the Netherlands, and European Southern observatory in Germany, with support from the &lt;span class=&quot;caps&quot;&gt;FWF&lt;/span&gt;, the Austrian Science Fund.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>What is a PacsObservation?</title>
   <link href="http://pchanial.github.com/tamasis-map/2000/faq-what-is-a-pacsobservation"/>
   <updated>2000-01-01T00:00:00-08:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2000/faq-what-is-a-pacsobservation</id>
   <content type="html">&lt;p&gt;A &lt;code&gt;PacsObservation&lt;/code&gt; or a &lt;code&gt;PacsSimulation&lt;/code&gt; stores information about the&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;instrument (&lt;code&gt;instrument&lt;/code&gt; attribute)&lt;/li&gt;
	&lt;li&gt;observation (&lt;code&gt;slice&lt;/code&gt; attribute)&lt;/li&gt;
	&lt;li&gt;pointing (&lt;code&gt;pointing&lt;/code&gt; attribute)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They do not contain the signal or mask data, but provide a means to access them through the method &lt;code&gt;get_tod&lt;/code&gt;. They also do not contain the pointing matrix, which is obtained through the method &lt;code&gt;get_pointing_matrix&lt;/code&gt;.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>How to create a map from a single detector?</title>
   <link href="http://pchanial.github.com/tamasis-map/2000/faq-single-detector"/>
   <updated>2000-01-01T00:00:00-08:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2000/faq-single-detector</id>
   <content type="html">&lt;p&gt;A &lt;code&gt;PacsObservation&lt;/code&gt; gathers information about the instrument settings, which are stored in the &lt;code&gt;instrument&lt;/code&gt; attribute. With the exception of the detector channel, the parameters in the &lt;code&gt;instrument&lt;/code&gt; attribute can be modified after instantiation. More information can be found on &lt;a href=&quot;/tamasis-map/2000/faq-what-is-a-pacsobservation/&quot;&gt;what contains a PacsObservation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The field &lt;code&gt;detector.removed&lt;/code&gt; controls the list of detectors to be included in the timelines and the field &lt;code&gt;detector.masked&lt;/code&gt;, the list of detectors to be masked in the timelines. The former is used to distribute the work among processors in an &lt;span class=&quot;caps&quot;&gt;MPI&lt;/span&gt; job and the latter to flag the bad detectors. Both control which detectors will contribute to the map.&lt;/p&gt;
&lt;p&gt;To speed up the processing and the memory consumption, let&amp;#8217;s remove detectors instead of masking them. The number of non-removed detectors can be obtained dynamically through the method &lt;code&gt;get_ndetectors&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PacsObservation&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;myobs.fits&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_ndetectors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;mi&quot;&gt;2048&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_tod&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;360&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The following snippet removes all detectors but one:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;instrument&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;detector&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;removed&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;instrument&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;detector&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;removed&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_ndetectors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_tod&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;shape&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;360&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;To restrict the processing to the bolometer matrix 1:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;d&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;instrument&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;detector&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;removed&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;matrix&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_ndetectors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;mi&quot;&gt;256&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Once the &lt;code&gt;removed&lt;/code&gt; or &lt;code&gt;masked&lt;/code&gt; fields are set, you can &lt;a href=&quot;http://&quot;&gt;create a map&lt;/a&gt; as usual.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>How to create a PACS simulation?</title>
   <link href="http://pchanial.github.com/tamasis-map/2000/faq-simulation"/>
   <updated>2000-01-01T00:00:00-08:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2000/faq-simulation</id>
   <content type="html">&lt;p&gt;The first step is to get a sky map, which will be used for the simulation. You may &lt;a href=&quot;/tamasis-map/2000/faq-how-to-add-a-point-source-to-a-map/&quot;&gt;create a synthetic map&lt;/a&gt; or load it if the sky map is in &lt;span class=&quot;caps&quot;&gt;FITS&lt;/span&gt; format:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;sky&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;myfile.fits&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Then, let&amp;#8217;s setup the spacecraft attitude during the scan&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;pointing&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pacs_create_scan&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sky&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;CRVAL1&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# RA of scan center&lt;/span&gt;
                            &lt;span class=&quot;n&quot;&gt;sky&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;CRVAL2&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# decl. of scan center&lt;/span&gt;
                            &lt;span class=&quot;n&quot;&gt;scan_length&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;    &lt;span class=&quot;c&quot;&gt;# scan length in arcsec&lt;/span&gt;
                            &lt;span class=&quot;n&quot;&gt;scan_speed&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;        &lt;span class=&quot;c&quot;&gt;# scan speed in arcsec/s&lt;/span&gt;
                            &lt;span class=&quot;n&quot;&gt;cross_scan&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;      &lt;span class=&quot;c&quot;&gt;# include cross-scan&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;and the instrument accordingly to these pointings&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;simul&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PacsSimulation&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pointing&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;blue&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;We need an acquisition model to observe the sky map&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;masking&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Masking&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;simul&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;simul&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;instrument&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;detector&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;masked&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;projection&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Projection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;simul&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sky&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;compression&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CompressionAverage&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;simul&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;compression_factor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;masking&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;compression&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;projection&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;At this stage, we are almost done: getting the simulated timeline is the easy part since the input of the acquisition model is the sky map and its output is the timeline.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;tod&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sky&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Note that this instrument model could be used to create timelines from different sky maps, as long as their shape and header are consistent with those of the original sky map.&lt;/p&gt;
&lt;p&gt;It is now possible to add real noise to the simulated timeline. To this effect, we can use a calibration observation which was taken with a still spacecraft, to characterise the noise power spectrum density of the bolometers:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;tod&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;simul&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This method only works on the &lt;span class=&quot;caps&quot;&gt;CEA&lt;/span&gt;/SAp cluster, that&amp;#8217;s because I prefer not to increase Tamasis&amp;#8217; package size (and Git index) by several gigabytes.&lt;/p&gt;
&lt;p&gt;Finally, the simulated timeline can be saved as a &lt;span class=&quot;caps&quot;&gt;FITS&lt;/span&gt; file&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;simul&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;mysimulatedtod.fits&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;tod&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;for later reuse as a regular &lt;code&gt;PacsObservation&lt;/code&gt; (&lt;span class=&quot;caps&quot;&gt;HIPE&lt;/span&gt; won&amp;#8217;t be able to read it though, and there is no plan to enable it):&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;simul&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PacsObservation&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;mysimulatedtod.fits&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;tod&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;simul&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_tod&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</content>
 </entry>
 
 <entry>
   <title>How to add a point source to a map?</title>
   <link href="http://pchanial.github.com/tamasis-map/2000/faq-how-to-add-a-point-source-to-a-map"/>
   <updated>2000-01-01T00:00:00-08:00</updated>
   <id>http://pchanial.github.com/tamasis-map/2000/faq-how-to-add-a-point-source-to-a-map</id>
   <content type="html">&lt;h1&gt;&lt;span class=&quot;caps&quot;&gt;TBD&lt;/span&gt;&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;sky&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gaussian&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</content>
 </entry>
 
 
</feed>

