diff --git a/lsmtool/lsmtool.py b/bin/lsmtool similarity index 98% rename from lsmtool/lsmtool.py rename to bin/lsmtool index fef041cba35a71599c03cb1b409856315801d25f..2af2dc54acfea22a9c59612ab3476c8744b71e7b 100755 --- a/lsmtool/lsmtool.py +++ b/bin/lsmtool @@ -26,10 +26,9 @@ import sys import os import time import logging -import _version -import _logging +import lsmtool +# from lsmtool import _version, _logging, skymodel import lofar.parameterset -import skymodel if __name__=='__main__': diff --git a/docs/.DS_Store b/docs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..06b246b003ecf0d31915d8578257c8c6cf7ea67b Binary files /dev/null and b/docs/.DS_Store differ diff --git a/doc/Makefile b/docs/Makefile similarity index 100% rename from doc/Makefile rename to docs/Makefile diff --git a/doc/build/doctrees/code.doctree b/docs/build/doctrees/code.doctree similarity index 100% rename from doc/build/doctrees/code.doctree rename to docs/build/doctrees/code.doctree diff --git a/doc/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle similarity index 100% rename from doc/build/doctrees/environment.pickle rename to docs/build/doctrees/environment.pickle diff --git a/doc/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree similarity index 100% rename from doc/build/doctrees/index.doctree rename to docs/build/doctrees/index.doctree diff --git a/docs/build/doctrees/lsmtool.doctree b/docs/build/doctrees/lsmtool.doctree new file mode 100644 index 0000000000000000000000000000000000000000..624ecf1a84f017e7b84db25de60a39287a3afa66 Binary files /dev/null and b/docs/build/doctrees/lsmtool.doctree differ diff --git a/docs/build/doctrees/lsmtool.operations.doctree b/docs/build/doctrees/lsmtool.operations.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6d9346e491adedaaff0e2292c19c0489b0121d78 Binary files /dev/null and b/docs/build/doctrees/lsmtool.operations.doctree differ diff --git a/docs/build/doctrees/modules.doctree b/docs/build/doctrees/modules.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3ed15bd79e7334c5560f1d0c088e4cf04d2bb862 Binary files /dev/null and b/docs/build/doctrees/modules.doctree differ diff --git a/docs/build/doctrees/overview.doctree b/docs/build/doctrees/overview.doctree new file mode 100644 index 0000000000000000000000000000000000000000..21e1f1e7068ab8405e0512d461f3a8fe85227cc0 Binary files /dev/null and b/docs/build/doctrees/overview.doctree differ diff --git a/doc/build/html/.buildinfo b/docs/build/html/.buildinfo similarity index 100% rename from doc/build/html/.buildinfo rename to docs/build/html/.buildinfo diff --git a/doc/build/html/_sources/code.txt b/docs/build/html/_sources/code.txt similarity index 100% rename from doc/build/html/_sources/code.txt rename to docs/build/html/_sources/code.txt diff --git a/doc/build/html/_sources/index.txt b/docs/build/html/_sources/index.txt similarity index 100% rename from doc/build/html/_sources/index.txt rename to docs/build/html/_sources/index.txt diff --git a/docs/build/html/_sources/lsmtool.operations.txt b/docs/build/html/_sources/lsmtool.operations.txt new file mode 100644 index 0000000000000000000000000000000000000000..d0997457149b8e3c2b8fd69cfa4dbaab27f6225f --- /dev/null +++ b/docs/build/html/_sources/lsmtool.operations.txt @@ -0,0 +1,102 @@ +lsmtool.operations package +========================== + +Submodules +---------- + +lsmtool.operations.add module +----------------------------- + +.. automodule:: lsmtool.operations.add + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.concatenate module +------------------------------------- + +.. automodule:: lsmtool.operations.concatenate + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.group module +------------------------------- + +.. automodule:: lsmtool.operations.group + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.merge module +------------------------------- + +.. automodule:: lsmtool.operations.merge + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.move module +------------------------------ + +.. automodule:: lsmtool.operations.move + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.plot module +------------------------------ + +.. automodule:: lsmtool.operations.plot + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.remove module +-------------------------------- + +.. automodule:: lsmtool.operations.remove + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.select module +-------------------------------- + +.. automodule:: lsmtool.operations.select + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.setpatchpositions module +------------------------------------------- + +.. automodule:: lsmtool.operations.setpatchpositions + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.transfer module +---------------------------------- + +.. automodule:: lsmtool.operations.transfer + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.ungroup module +--------------------------------- + +.. automodule:: lsmtool.operations.ungroup + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lsmtool.operations + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/lsmtool.rst b/docs/build/html/_sources/lsmtool.txt similarity index 100% rename from doc/source/lsmtool.rst rename to docs/build/html/_sources/lsmtool.txt diff --git a/docs/build/html/_sources/modules.txt b/docs/build/html/_sources/modules.txt new file mode 100644 index 0000000000000000000000000000000000000000..70163ca4a8240831a17002576f0786b7b12a7df7 --- /dev/null +++ b/docs/build/html/_sources/modules.txt @@ -0,0 +1,7 @@ +lsmtool +======= + +.. toctree:: + :maxdepth: 4 + + lsmtool diff --git a/docs/build/html/_sources/overview.txt b/docs/build/html/_sources/overview.txt new file mode 100644 index 0000000000000000000000000000000000000000..4ac3f76f0bca87eef3094e14f643177fa3bdba20 --- /dev/null +++ b/docs/build/html/_sources/overview.txt @@ -0,0 +1,283 @@ +LSMTool: the LOFAR Local Sky Model Tool +======================================= + +LSMTool is a Python package which allows for the manipulation of sky +models in the ``makesourcedb`` format (understood by BBS and NDPPP). +Note that LSMTool is still in beta. Please report bugs to +drafferty@hs.uni-hamburg.de. To initialize your environment for LSMTool, +users on CEP1 and CEP2 should run the following commands: + +:: + + use LofIm + source ~rafferty/init_lsmtool + +Note that the Pythonlibs LOFAR package includes an older version of +astropy that conflicts with LSMTool and cannot be used in conjunction +with it. + +Usage +----- + +The command-line version of LSMTool can be run as follows: + +:: + + Usage: lsmtool.py <skymodel> <parset> [<beam MS>] + Options: + --version show program's version number and exit + -h, --help show this help message and exit + -q Quiet + -v Verbose + +The parset specifies the operations to perform and their parameters. +These are described in the next sections. + +.. _operations_defined: + +Operations +---------- + +These are the operations that LSMTool can perform: + +SELECT + : Select sources by source or patch properties + +REMOVE + : Remove sources by source or patch properties + +TRANSFER + : Transfer a patch scheme from one sky model to another + +GROUP + : Group sources into patches + +UNGROUP + : Remove patches + +MOVE + : Move a source or patch position + +MERGE + : Merge two or more patches into one + +CONCATENATE + : Concatenate two sky models + +ADD + : Add a source + +SETPATCHPOSITIONS + : Calculate and set patch positions + +PLOT + : Plot a simple representation of the sky model + +Example parset +-------------- + +This is an example parset that filters on the flux, adds a source, and +then groups the sources into patches: + +:: + + LSMTool.Steps = [selectbright, addsrc, grp, setpos] + + # Select only sources above 1 mJy + LSMTool.Steps.selectbright.Operation = SELECT + LSMTool.Steps.selectbright.FilterExpression = I > 1.0 mJy + + # Add a source + LSMTool.Steps.addsrc.Name = new_source + LSMTool.Steps.addsrc.Type = POINT + LSMTool.Steps.addsrc.Ra = 277.4232 + LSMTool.Steps.addsrc.Dec = 48.3689 + LSMTool.Steps.addsrc.I = 0.69 + + # Group using tessellation to a target flux of 50 Jy + LSMTool.Steps.grp.Operation = GROUP + LSMTool.Steps.grp.Algorithm = tessellate + LSMTool.Steps.grp.TargetFlux = 50.0 Jy + LSMTool.Steps.grp.Method = mid + + # Set the patch positions to their midpoint and write final skymodel + LSMTool.Steps.setpos.Method = mid + LSMTool.Steps.setpos.Outfile = grouped.sky + +In the first line of this parset the step names are defined. In the next +sections, the step parameters for every step are defined. Steps are +applied sequentially, in the same order defined in the list of steps. A +list of step-specific parameters is given in +Table [lsmtool:tab:local\ :sub:`v`\ al]. + ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Var Name | Format | Example | Comment | ++====================+=================+================+===============================================================+ +| Operation | string | SELECT | An operation name (see :ref:`operations_defined`) | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| OutFile | string | out.sky | Name of output file | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **SELECT and REMOVE** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| FilterExpression | string | I > 10.0 Jy | Filter for selection | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Aggregate | bool | False | Filter by aggregated patch property | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| ApplyBeam | bool | True | If true, apparent fluxes will be used | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **TRANSFER** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| PatchFile | string | patches.sky | File with patches that will be transferred | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **GROUP** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Algorithm | string | tessellate | One of tessellate, cluster, single, every | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| TargetFlux | string | 10.0 Jy | Target total flux of patches (tessellate only) | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| NumClusters | int | 100 | Number of clusters (cluster only) | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| ApplyBeam | bool | True | If true, apparent fluxes will be used | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **UNGROUP** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **MOVE** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Name | string | src1 | Name of source or patch to move | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Position | list of floats | [12.3, 23.4] | RA and Dec in degrees to move to | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Shift | list of floats | [0.001, 0.0] | RA and Dec in degrees to shift by | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **MERGE** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Patches | list of strings | [bin1, bin2] | Patch names to merge | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Name | string | merged\_patch | Name of new merged patch | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **SETPATCHPOSITIONS** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Method | string | mid | Set patch positions to mid, mean, or wmean positions | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **CONCATENATE** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Skymodel2 | string | in2.sky | Name of sky model to concatenate | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| MatchBy | string | position | Identify duplicates by position or name | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Radius | string | 30 arcsec | Radius within which matches are identified | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Keep | string | all | If two sources match, keep: all, from1, or from2 | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **ADD** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Name | string | src1 | Name of source; required | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Type | string | POINT | Type; required | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Patch | string | new\_patch | Patch name; required if sky model has patches | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| RA | float or string | 12:45:30.4 | RA; required | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| Dec | float or string | +76.45.02.48 | Dec; required | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| I | float | 0.69 | Flux in Jy; required | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| AnyValidColumnName | | value | Any valid column name can be specified | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ +| **PLOT** | ++--------------------+-----------------+----------------+---------------------------------------------------------------+ + +Interactive use and scripting +----------------------------- + +LSMTool can also be used interactively (in IPython, for example) or in +Python scripts without the need for a parset. To use LSMTool in a Python +script or interpreter, import it as follows: + +:: + + >>> import lsmtool + +A sky model can then be loaded with, e.g.: + +:: + + >>> LSM = lsmtool.load('skymodel.sky') + +All of the operations described in Section [lsmtool:operations] are +available as methods of the resulting sky model object (with the same +name as the corresponding operation). For example, the following +commands with duplicate the steps done in the example parset given in +Section [lsmtool:parset]: + +:: + + >>> LSM.select('I > 1.0 mJy') + >>> LSM.add({'Name':'new_source', 'Type':'POINT', 'Ra':277.4232, 'Dec':48.3689, 'I':0.69}) + >>> LSM.group(algorithm='tesselate', targetFlux='10.0 Jy') + >>> LSM.setPatchPositions(method='mid') + +In many cases, the methods accept parameters with the same names as +those used in a parset (see the full documentation for details). The sky +model can then written to a new file with: + +:: + + >>> LSM.write('grouped.sky') + +Additionally, sky models can be written out as ds9 region files and kvis +annotation files (as well as all the formats supported by the +astropy.table package, such at VOTable, HDF5, and FITS): + +:: + + >>> LSM.write('outskymodel.reg', format='ds9') + >>> LSM.write('outskymodel.ann', format='kvis') + >>> LSM.write('outskymodel.fits', format='fits') + >>> LSM.write('outskymodel.hdf5', format='hdf5') + >>> LSM.write('outskymodel.vo', format='votable') + +In addition to the operations described above, a number of other methods +are available: + +LSM.copy() + : Return a copy of the sky model object + +LSM.info() + : Print information about the sky model + +LSM.more() + : Print the sky model to the screen, using more-like controls + +LSM.getColNames() + : Returns a list of the column names in the sky model + +LSM.getColValues() + : Returns a numpy array of column values + +LSM.getRowIndex() + : Returns the row index or indices for a source or patch + +LSM.getRowValues() + : Returns a table or row for a source or patch + +LSM.getPatchPositions() + : Returns patch RA and Dec values + +LSM.getDefaltValues() + : Returns column default values + +LSM.getPatchSizes() + : Returns an array of patch sizes + +LSM.setColValues() + : Sets column values + +LSM.setRowValues() + : Sets row values + +LSM.setDefaultValues() + : Sets default column values + +For details on these methods, please see the full module documentation. diff --git a/doc/build/html/_static/ajax-loader.gif b/docs/build/html/_static/ajax-loader.gif similarity index 100% rename from doc/build/html/_static/ajax-loader.gif rename to docs/build/html/_static/ajax-loader.gif diff --git a/doc/build/html/_static/basic.css b/docs/build/html/_static/basic.css similarity index 100% rename from doc/build/html/_static/basic.css rename to docs/build/html/_static/basic.css diff --git a/doc/build/html/_static/comment-bright.png b/docs/build/html/_static/comment-bright.png similarity index 100% rename from doc/build/html/_static/comment-bright.png rename to docs/build/html/_static/comment-bright.png diff --git a/doc/build/html/_static/comment-close.png b/docs/build/html/_static/comment-close.png similarity index 100% rename from doc/build/html/_static/comment-close.png rename to docs/build/html/_static/comment-close.png diff --git a/doc/build/html/_static/comment.png b/docs/build/html/_static/comment.png similarity index 100% rename from doc/build/html/_static/comment.png rename to docs/build/html/_static/comment.png diff --git a/doc/build/html/_static/default.css b/docs/build/html/_static/default.css similarity index 100% rename from doc/build/html/_static/default.css rename to docs/build/html/_static/default.css diff --git a/doc/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js similarity index 100% rename from doc/build/html/_static/doctools.js rename to docs/build/html/_static/doctools.js diff --git a/doc/build/html/_static/down-pressed.png b/docs/build/html/_static/down-pressed.png similarity index 100% rename from doc/build/html/_static/down-pressed.png rename to docs/build/html/_static/down-pressed.png diff --git a/doc/build/html/_static/down.png b/docs/build/html/_static/down.png similarity index 100% rename from doc/build/html/_static/down.png rename to docs/build/html/_static/down.png diff --git a/doc/build/html/_static/file.png b/docs/build/html/_static/file.png similarity index 100% rename from doc/build/html/_static/file.png rename to docs/build/html/_static/file.png diff --git a/doc/build/html/_static/jquery.js b/docs/build/html/_static/jquery.js similarity index 100% rename from doc/build/html/_static/jquery.js rename to docs/build/html/_static/jquery.js diff --git a/doc/build/html/_static/minus.png b/docs/build/html/_static/minus.png similarity index 100% rename from doc/build/html/_static/minus.png rename to docs/build/html/_static/minus.png diff --git a/doc/build/html/_static/plus.png b/docs/build/html/_static/plus.png similarity index 100% rename from doc/build/html/_static/plus.png rename to docs/build/html/_static/plus.png diff --git a/doc/build/html/_static/pygments.css b/docs/build/html/_static/pygments.css similarity index 100% rename from doc/build/html/_static/pygments.css rename to docs/build/html/_static/pygments.css diff --git a/doc/build/html/_static/searchtools.js b/docs/build/html/_static/searchtools.js similarity index 100% rename from doc/build/html/_static/searchtools.js rename to docs/build/html/_static/searchtools.js diff --git a/doc/build/html/_static/sidebar.js b/docs/build/html/_static/sidebar.js similarity index 100% rename from doc/build/html/_static/sidebar.js rename to docs/build/html/_static/sidebar.js diff --git a/doc/build/html/_static/underscore.js b/docs/build/html/_static/underscore.js similarity index 100% rename from doc/build/html/_static/underscore.js rename to docs/build/html/_static/underscore.js diff --git a/doc/build/html/_static/up-pressed.png b/docs/build/html/_static/up-pressed.png similarity index 100% rename from doc/build/html/_static/up-pressed.png rename to docs/build/html/_static/up-pressed.png diff --git a/doc/build/html/_static/up.png b/docs/build/html/_static/up.png similarity index 100% rename from doc/build/html/_static/up.png rename to docs/build/html/_static/up.png diff --git a/doc/build/html/_static/websupport.js b/docs/build/html/_static/websupport.js similarity index 100% rename from doc/build/html/_static/websupport.js rename to docs/build/html/_static/websupport.js diff --git a/doc/build/html/code.html b/docs/build/html/code.html similarity index 100% rename from doc/build/html/code.html rename to docs/build/html/code.html diff --git a/doc/build/html/genindex.html b/docs/build/html/genindex.html similarity index 100% rename from doc/build/html/genindex.html rename to docs/build/html/genindex.html diff --git a/doc/build/html/index.html b/docs/build/html/index.html similarity index 100% rename from doc/build/html/index.html rename to docs/build/html/index.html diff --git a/docs/build/html/lsmtool.html b/docs/build/html/lsmtool.html new file mode 100644 index 0000000000000000000000000000000000000000..1671253c0cd59ab27413b90f27ec7ed78d4596bb --- /dev/null +++ b/docs/build/html/lsmtool.html @@ -0,0 +1,1431 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>LSMTool Module Documentation — LSMTool 1.0.0 documentation</title> + + <link rel="stylesheet" href="_static/default.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '1.0.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + <link rel="top" title="LSMTool 1.0.0 documentation" href="index.html" /> + <link rel="prev" title="LSMTool: the LOFAR Local Sky Model Tool" href="overview.html" /> + </head> + <body> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li class="right" > + <a href="overview.html" title="LSMTool: the LOFAR Local Sky Model Tool" + accesskey="P">previous</a> |</li> + <li><a href="index.html">LSMTool 1.0.0 documentation</a> »</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="lsmtool-module-documentation"> +<h1>LSMTool Module Documentation<a class="headerlink" href="#lsmtool-module-documentation" title="Permalink to this headline">¶</a></h1> +<div class="toctree-wrapper compound"> +<ul class="simple"> +</ul> +</div> +<div class="section" id="module-lsmtool"> +<span id="lsmtool-module"></span><h2>lsmtool module<a class="headerlink" href="#module-lsmtool" title="Permalink to this headline">¶</a></h2> +<p>The load() convenience function is used to load a sky model file into a +SkyModel object.</p> +<dl class="function"> +<dt id="lsmtool.load"> +<tt class="descclassname">lsmtool.</tt><tt class="descname">load</tt><big>(</big><em>fileName</em>, <em>beamMS=None</em><big>)</big><a class="headerlink" href="#lsmtool.load" title="Permalink to this definition">¶</a></dt> +<dd><p>Loads a sky model from a file and returns a SkyModel object.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>fileName</strong> : str</p> +<blockquote> +<div><p>Input ASCII file from which the sky model is read. Must +respect the makesourcedb format</p> +</div></blockquote> +<p><strong>beamMS</strong> : str, optional</p> +<blockquote> +<div><p>Measurement set from which the primary beam will be estimated. A +column of attenuated Stokes I fluxes will be added to the table.</p> +</div></blockquote> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">SkyModel object</p> +<blockquote class="last"> +<div><p>A SkyModel object that stores the sky model and provides methods for +accessing it.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Load a sky model into a SkyModel object:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">import</span> <span class="nn">lsmtool</span> +<span class="gp">>>> </span><span class="n">s</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky.model'</span><span class="p">)</span> +</pre></div> +</div> +<p>Load a sky model with a beam MS so that apparent fluxes will +be available (in addition to intrinsic fluxes):</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky.model'</span><span class="p">,</span> <span class="s">'SB100.MS'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations_lib"> +<span id="lsmtool-operations-lib-module"></span><h2>lsmtool.operations_lib module<a class="headerlink" href="#module-lsmtool.operations_lib" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations_lib.attenuate"> +<tt class="descclassname">lsmtool.operations_lib.</tt><tt class="descname">attenuate</tt><big>(</big><em>beamMS</em>, <em>fluxes</em>, <em>RADeg</em>, <em>DecDeg</em><big>)</big><a class="headerlink" href="#lsmtool.operations_lib.attenuate" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns flux attenuated by primary beam.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>beamMS</strong> : str</p> +<blockquote> +<div><p>Measurement set for which the beam model is made</p> +</div></blockquote> +<p><strong>fluxes</strong> : list</p> +<blockquote> +<div><p>List of fluxes to attenuate</p> +</div></blockquote> +<p><strong>RADeg</strong> : list</p> +<blockquote> +<div><p>List of RA values in degrees</p> +</div></blockquote> +<p><strong>DecDeg</strong> : list</p> +<blockquote> +<div><p>List of Dec values in degrees</p> +</div></blockquote> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><strong>attFluxes</strong> : numpy array</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations_lib.radec2xy"> +<tt class="descclassname">lsmtool.operations_lib.</tt><tt class="descname">radec2xy</tt><big>(</big><em>RA</em>, <em>Dec</em>, <em>refRA=None</em>, <em>refDec=None</em><big>)</big><a class="headerlink" href="#lsmtool.operations_lib.radec2xy" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns x, y for input ra, dec.</p> +<p>Note that the reference RA and Dec must be the same in calls to both +radec2xy() and xy2radec() if matched pairs of (x, y) <=> (RA, Dec) are +desired.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>RA</strong> : list</p> +<blockquote> +<div><p>List of RA values in degrees</p> +</div></blockquote> +<p><strong>Dec</strong> : list</p> +<blockquote> +<div><p>List of Dec values in degrees</p> +</div></blockquote> +<p><strong>refRA</strong> : float, optional</p> +<blockquote> +<div><p>Reference RA in degrees.</p> +</div></blockquote> +<p><strong>refDec</strong> : float, optional</p> +<blockquote> +<div><p>Reference Dec in degrees</p> +</div></blockquote> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>x, y</strong> : list, list</p> +<blockquote class="last"> +<div><p>Lists of x and y pixel values corresponding to the input RA and Dec +values</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations_lib.xy2radec"> +<tt class="descclassname">lsmtool.operations_lib.</tt><tt class="descname">xy2radec</tt><big>(</big><em>x</em>, <em>y</em>, <em>refRA=0.0</em>, <em>refDec=0.0</em><big>)</big><a class="headerlink" href="#lsmtool.operations_lib.xy2radec" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns x, y for input ra, dec.</p> +<p>Note that the reference RA and Dec must be the same in calls to both +radec2xy() and xy2radec() if matched pairs of (x, y) <=> (RA, Dec) are +desired.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>x</strong> : list</p> +<blockquote> +<div><p>List of x values in pixels</p> +</div></blockquote> +<p><strong>y</strong> : list</p> +<blockquote> +<div><p>List of y values in pixels</p> +</div></blockquote> +<p><strong>refRA</strong> : float, optional</p> +<blockquote> +<div><p>Reference RA in degrees</p> +</div></blockquote> +<p><strong>refDec</strong> : float, optional</p> +<blockquote> +<div><p>Reference Dec in degrees</p> +</div></blockquote> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>RA, Dec</strong> : list, list</p> +<blockquote class="last"> +<div><p>Lists of RA and Dec values corresponding to the input x and y pixel +values</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</div> +<div class="section" id="module-lsmtool.skymodel"> +<span id="lsmtool-skymodel-module"></span><h2>lsmtool.skymodel module<a class="headerlink" href="#module-lsmtool.skymodel" title="Permalink to this headline">¶</a></h2> +<dl class="class"> +<dt id="lsmtool.skymodel.SkyModel"> +<em class="property">class </em><tt class="descclassname">lsmtool.skymodel.</tt><tt class="descname">SkyModel</tt><big>(</big><em>fileName</em>, <em>beamMS=None</em>, <em>checkDup=False</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p> +<p>Object that stores the sky model and provides methods for accessing it.</p> +<p class="rubric">Methods</p> +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.add"> +<tt class="descname">add</tt><big>(</big><em>colNamesVals</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.add" title="Permalink to this definition">¶</a></dt> +<dd><p>Add a source to the sky model.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>colNamesVals</strong> : dict</p> +<blockquote class="last"> +<div><p>A dictionary that specifies the row values for the source to be added.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.concatenate"> +<tt class="descname">concatenate</tt><big>(</big><em>LSM2</em>, <em>matchBy='name'</em>, <em>radius=0.1</em>, <em>keep='all'</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.concatenate" title="Permalink to this definition">¶</a></dt> +<dd><p>Concatenate two sky models.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>LSM2</strong> : SkyModel object</p> +<blockquote> +<div><p>Sky model to concatenate with the parent sky model</p> +</div></blockquote> +<p><strong>matchBy</strong> : str, optional</p> +<blockquote> +<div><p>Determines how duplicate sources are determined: +- ‘name’ => duplicates are identified by name +- ‘position’ => duplicates are identified by radius. Sources within the</p> +<blockquote> +<div><p>radius specified by the radius parameter are considered duplicates</p> +</div></blockquote> +</div></blockquote> +<p><strong>radius</strong> : float, optional</p> +<blockquote> +<div><p>Radius in degrees for matching when matchBy=’position’</p> +</div></blockquote> +<p><strong>keep</strong> : str, optional</p> +<blockquote class="last"> +<div><p>Determines how duplicates are treated: +- ‘all’ => all duplicates are kept; those with identical names are re-</p> +<blockquote> +<div><p>named</p> +</div></blockquote> +<ul class="simple"> +<li>‘from1’ => duplicates kept are those from sky model 1 (the parent)</li> +<li>‘from2’ => duplicates kept are those from sky model 2 (LSM2)</li> +</ul> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Concatenate two sky models, identifying duplicates by matching to the source +names. When duplicates are found, keep the source from the parent sky model +and discard the duplicate from second sky model (this might be useful when +merging two gsm.py sky models that have some overlap):</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM2</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'gsm_sky2.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">LSM2</span><span class="p">,</span> <span class="n">matchBy</span><span class="o">=</span><span class="s">'name'</span><span class="p">,</span> <span class="n">keep</span><span class="o">=</span><span class="s">'from1'</span><span class="p">)</span> +</pre></div> +</div> +<p>Concatenate two sky models, identifying duplicates by matching to the source +positions within a radius of 10 arcsec. When duplicates are found, keep the +source from the second sky model and discard the duplicate from the parent +sky model (this might be useful when replacing parts of a low-resolution +sky model with a high-resolution one):</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM2</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'high_res_sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span><span class="n">LSM2</span><span class="p">,</span> <span class="n">matchBy</span><span class="o">=</span><span class="s">'position'</span><span class="p">,</span> <span class="n">radius</span><span class="o">=</span><span class="mf">10.0</span><span class="o">/</span><span class="mf">3600.0</span><span class="p">,</span> +<span class="go"> keep='from2')</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.copy"> +<tt class="descname">copy</tt><big>(</big><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.copy" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a copy of the sky model.</p> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.getColNames"> +<tt class="descname">getColNames</tt><big>(</big><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.getColNames" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a list of all available column names.</p> +<p class="rubric">Examples</p> +<p>Get column names:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">getColNames</span><span class="p">()</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.getColValues"> +<tt class="descname">getColValues</tt><big>(</big><em>colName</em>, <em>units=None</em>, <em>aggregate=None</em>, <em>applyBeam=False</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.getColValues" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns a numpy array of column values.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>colName</strong> : str</p> +<blockquote> +<div><p>Name of column</p> +</div></blockquote> +<p><strong>units</strong> : str, optional</p> +<blockquote> +<div><p>Output units (the values are converted as needed). By default, the +units are those used by makesourcedb, with the exception of Ra and +Dec which have default units of degrees.</p> +</div></blockquote> +<p><strong>aggregate</strong> : {‘sum’, ‘mean’, ‘wmean’, ‘min’, max’}, optional</p> +<blockquote> +<div><p>If set, the array returned will be of values aggregated +over the patch members. The following aggregation functions are +available:</p> +<blockquote> +<div><ul class="simple"> +<li>‘sum’: sum of patch values</li> +<li>‘mean’: mean of patch values</li> +<li>‘wmean’: Stokes I weighted mean of patch values</li> +<li>‘min’: minimum of patch values</li> +<li>‘max’: maximum of patch values</li> +</ul> +</div></blockquote> +<p>Note that, in certain cases, certain aggregation functions will not +produce meaningful results. For example, asking for the sum of +the MajorAxis values per patch will not give a good indication of +the size of the patch (to get the sizes, use the getPatchSizes() +method). Additionally, applying the ‘mean’ or ‘wmean’ functions to +the RA or Dec columns may give strange results near the poles or +near RA = 0h. For aggregated RA and Dec values, use the +getPatchPositions() method instead which projects the sources onto +the image plane before aggregation.</p> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, fluxes will be attenuated by the beam. This attenuation +also applies to fluxes used in aggregation functions.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Get Stokes I fluxes in Jy:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">getColValues</span><span class="p">(</span><span class="s">'I'</span><span class="p">)</span> +<span class="go">array([ 60.4892, 1.2413, 1.216 , ..., 1.12 , 1.25 , 1.16 ])</span> +</pre></div> +</div> +<p>Get Stokes I fluxes in mJy:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">getColValues</span><span class="p">(</span><span class="s">'I'</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="s">'mJy'</span><span class="p">)</span> +<span class="go">array([ 60489.2, 1241.3, 1216. , ..., 1120. , 1250. , 1160. ])</span> +</pre></div> +</div> +<p>Get total Stokes I flux for the patches:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">getColValues</span><span class="p">(</span><span class="s">'I'</span><span class="p">,</span> <span class="n">aggregate</span><span class="o">=</span><span class="s">'sum'</span><span class="p">)</span> +<span class="go">array([ 61.7305, 1.216 , 3.9793, ..., 1.12 , 1.25 , 1.16 ])</span> +</pre></div> +</div> +<p>Get flux-weighted average RA and Dec for the patches. As noted above, the +getColValues() method is not appropriate for use with RA or Dec, so +we must use getPatchPositions() instead:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">RA</span><span class="p">,</span> <span class="n">Dec</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">getPatchPositions</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s">'wmean'</span><span class="p">,</span> <span class="n">asArray</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.getDefaltValues"> +<tt class="descname">getDefaltValues</tt><big>(</big><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.getDefaltValues" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns dict of {colName:default} values for all columns with defaults.</p> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.getPatchNames"> +<tt class="descname">getPatchNames</tt><big>(</big><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.getPatchNames" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns array of all patch names in the sky model.</p> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.getPatchPositions"> +<tt class="descname">getPatchPositions</tt><big>(</big><em>patchName=None</em>, <em>asArray=False</em>, <em>method=None</em>, <em>applyBeam=False</em>, <em>perPatchProjection=True</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.getPatchPositions" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns arrays or a dict of patch positions (as {‘patchName’:(RA, Dec)}).</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>patchName</strong> : str or list, optional</p> +<blockquote> +<div><p>List of patch names for which the positions are desired</p> +</div></blockquote> +<p><strong>asArray</strong> : bool, optional</p> +<blockquote> +<div><p>If True, returns arrays of RA, Dec instead of a dict</p> +</div></blockquote> +<p><strong>method</strong> : None or str, optional</p> +<blockquote> +<div><p>This parameter specifies the method used to calculate the patch +positions. If None, the current patch positions stored in the sky +model, if any, will be returned. +- ‘mid’ => calculate the midpoint of the patch +- ‘mean’ => calculate the mean RA and Dec of the patch +- ‘wmean’ => calculate the flux-weighted mean RA and Dec of the patch +- None => current patch positions are returned +Note that the mid, mean, and wmean positions are calculated from TAN- +projected values.</p> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote> +<div><p>If True, fluxes used as weights will be attenuated by the beam.</p> +</div></blockquote> +<p><strong>perPatchProjection</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, a different projection center is used per patch. If False, +a single projection center is used for all patches.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Get the current patch positions:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">getPatchPositions</span><span class="p">()</span> +<span class="go">{'bin0': [<Angle 91.77565208333331 deg>, <Angle 41.57834805555555 deg>],</span> +<span class="go"> 'bin1': [<Angle 91.59991874999997 deg>, <Angle 41.90387583333333 deg>],</span> +<span class="go"> 'bin2': [<Angle 90.83773333333332 deg>, <Angle 42.189861944444445 deg>],</span> +</pre></div> +</div> +<p>Get them as RA and Dec arrays in degrees:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">getPatchPositions</span><span class="p">(</span><span class="n">asArray</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> +<span class="go">(array([ 91.77565208, 91.59991875, 90.83773333]),</span> +<span class="go"> array([ 41.57834806, 41.90387583, 42.18986194]))</span> +</pre></div> +</div> +<p>Calculate the flux-weighted mean positions of each patch:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">getPatchPositions</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s">'wmean'</span><span class="p">,</span> <span class="n">asArray</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.getPatchSizes"> +<tt class="descname">getPatchSizes</tt><big>(</big><em>units=None</em>, <em>weight=False</em>, <em>applyBeam=False</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.getPatchSizes" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns array of patch sizes.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>units</strong> : str, optional</p> +<blockquote> +<div><p>Units for returned sizes (e.g., ‘arcsec’, ‘degree’)</p> +</div></blockquote> +<p><strong>weight</strong> : bool, optional</p> +<blockquote> +<div><p>If True, weight the source positions inside the patch by flux</p> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True and weight is True, attenuate the fluxes used for weighting +by the beam</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.getRowIndex"> +<tt class="descname">getRowIndex</tt><big>(</big><em>rowName</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.getRowIndex" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns index or indices for specified source or patch as a list.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>rowName</strong> : str</p> +<blockquote class="last"> +<div><p>Name of the source or patch</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Get row index for the source ‘src1’:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">getRowIndex</span><span class="p">(</span><span class="s">'src1'</span><span class="p">)</span> +<span class="go">[0]</span> +</pre></div> +</div> +<p>Get row indices for the patch ‘bin1’ and verify the patch name:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">ind</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">getRowIndex</span><span class="p">(</span><span class="s">'bin1'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="k">print</span><span class="p">(</span><span class="n">s</span><span class="o">.</span><span class="n">getPatchNames</span><span class="p">()[</span><span class="n">ind</span><span class="p">])</span> +<span class="go">['bin1' 'bin1']</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.getRowValues"> +<tt class="descname">getRowValues</tt><big>(</big><em>rowName</em>, <em>colName=None</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.getRowValues" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns an astropy table or table row for specified source or patch.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>rowName</strong> : str</p> +<blockquote> +<div><p>Name of the source or patch</p> +</div></blockquote> +<p><strong>colName</strong> : str, optional</p> +<blockquote class="last"> +<div><p>Column name. If given, returns row values for specified +column only.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Get row values for the source ‘src1’:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">r</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">getRowValues</span><span class="p">(</span><span class="s">'src1'</span><span class="p">)</span> +</pre></div> +</div> +<p>Sum over the fluxes of sources in the ‘bin1’ patch:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">rows</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">getRowValues</span><span class="p">(</span><span class="s">'bin1'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">tot</span> <span class="o">=</span> <span class="mf">0.0</span> +<span class="gp">>>> </span><span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">rows</span><span class="p">:</span> <span class="n">tot</span> <span class="o">+=</span> <span class="n">r</span><span class="p">[</span><span class="s">'I'</span><span class="p">]</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.group"> +<tt class="descname">group</tt><big>(</big><em>algorithm</em>, <em>targetFlux=None</em>, <em>numClusters=100</em>, <em>applyBeam=False</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.group" title="Permalink to this definition">¶</a></dt> +<dd><p>Groups sources into patches.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>LSM</strong> : SkyModel object</p> +<blockquote> +<div><p>Input sky model.</p> +</div></blockquote> +<p><strong>algorithm</strong> : str</p> +<blockquote> +<div><p>Algorithm to use for grouping: +- ‘single’ => all sources are grouped into a single patch +- ‘every’ => every source gets a separate patch +- ‘cluster’ => SAGECAL clustering algorithm that groups sources into</p> +<blockquote> +<div><p>specified number of clusters (specified by the numClusters parameter).</p> +</div></blockquote> +<ul> +<li><dl class="first docutils"> +<dt>‘tessellate’ => group into tiles whose total flux approximates</dt> +<dd><p class="first last">the target flux (specified by the targetFlux parameter).</p> +</dd> +</dl> +</li> +<li><dl class="first docutils"> +<dt>the filename of a mask image => group by masked regions (where mask =</dt> +<dd><p class="first last">True). Source outside of masked regions are given patches of their +own.</p> +</dd> +</dl> +</li> +</ul> +</div></blockquote> +<p><strong>targetFlux</strong> : str or float, optional</p> +<blockquote> +<div><p>Target flux for tessellation (the total flux of each tile will be close +to this value). The target flux can be specified as either a float in Jy +or as a string with units (e.g., ‘25.0 mJy’).</p> +</div></blockquote> +<p><strong>numClusters</strong> : int, optional</p> +<blockquote> +<div><p>Number of clusters for clustering. Sources are grouped around the +numClusters brightest sources.</p> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, fluxes will be attenuated by the beam.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Tesselate the sky model into patches with approximately 30 Jy total +flux:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="s">'tessellate'</span><span class="p">,</span> <span class="n">targetFlux</span><span class="o">=</span><span class="mf">30.0</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.info"> +<tt class="descname">info</tt><big>(</big><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.info" title="Permalink to this definition">¶</a></dt> +<dd><p>Prints information about the sky model.</p> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.merge"> +<tt class="descname">merge</tt><big>(</big><em>patches</em>, <em>name=None</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.merge" title="Permalink to this definition">¶</a></dt> +<dd><p>Merge two or more patches together.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>patches</strong> : list of str</p> +<blockquote> +<div><p>List of patches to merge</p> +</div></blockquote> +<p><strong>name</strong> : str, optional</p> +<blockquote class="last"> +<div><p>Name of resulting merged patch</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Merge three patches into one:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">merge</span><span class="p">([</span><span class="s">'bin0'</span><span class="p">,</span> <span class="s">'bin1'</span><span class="p">,</span> <span class="s">'bin2'</span><span class="p">],</span> <span class="s">'binmerged'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.more"> +<tt class="descname">more</tt><big>(</big><em>colName=None</em>, <em>patchName=None</em>, <em>sourceName=None</em>, <em>sortBy=None</em>, <em>lowToHigh=False</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.more" title="Permalink to this definition">¶</a></dt> +<dd><p>Prints the sky model table to the screen with more-like commands.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>colName</strong> : str, list of str, optional</p> +<blockquote> +<div><p>Name of column or columns to print. If None, all columns are printed</p> +</div></blockquote> +<p><strong>patchName</strong> : str, list of str, optional</p> +<blockquote> +<div><p>If given, returns column values for specified patch or patches only</p> +</div></blockquote> +<p><strong>sourceName</strong> : str, list of str, optional</p> +<blockquote> +<div><p>If given, returns column value for specified source or sources only</p> +</div></blockquote> +<p><strong>sortBy</strong> : str or list of str, optional</p> +<blockquote> +<div><p>Name of columns to sort on. If None, no sorting is done. If +a list is given, sorting is done on the columns in the order given</p> +</div></blockquote> +<p><strong>lowToHigh</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, sort values from low to high instead of high to low</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Print the entire model:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">more</span><span class="p">()</span> +</pre></div> +</div> +<p>Print only the ‘Name’ and ‘I’ columns for the ‘bin0’ patch:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">more</span><span class="p">([</span><span class="s">'Name'</span><span class="p">,</span> <span class="s">'I'</span><span class="p">],</span> <span class="s">'bin0'</span><span class="p">,</span> <span class="n">sortBy</span><span class="o">=</span><span class="p">[</span><span class="s">'I'</span><span class="p">])</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.move"> +<tt class="descname">move</tt><big>(</big><em>name</em>, <em>position=None</em>, <em>shift=None</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.move" title="Permalink to this definition">¶</a></dt> +<dd><p>Move or shift a source.</p> +<p>If both a position and a shift are specified, the source is moved to the +new position and then shifted.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>name</strong> : str</p> +<blockquote> +<div><p>Source name.</p> +</div></blockquote> +<p><strong>position</strong> : list, optional</p> +<blockquote> +<div><p>A list specifying a new position as [RA, Dec] in either makesourcedb +format (e.g., [‘12:23:43.21’, ‘+22.34.21.2’]) or in degrees (e.g., +[123.2312, 23.3422]).</p> +</div></blockquote> +<p><strong>shift</strong> : list, optional</p> +<blockquote class="last"> +<div><p>A list specifying the shift as [RAShift, DecShift] in +in degrees (e.g., [0.02312, 0.00342]).</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Move source ‘1609.6+6556’ to a new position:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="s">'1609.6+6556'</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="p">[</span><span class="s">'16:10:00'</span><span class="p">,</span> <span class="s">'+65.57.00'</span><span class="p">])</span> +</pre></div> +</div> +<p>Shift the source by 10 arcsec in Dec:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="s">'1609.6+6556'</span><span class="p">,</span> <span class="n">shift</span><span class="o">=</span><span class="p">[</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">10.0</span><span class="o">/</span><span class="mf">3600.0</span><span class="p">])</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.plot"> +<tt class="descname">plot</tt><big>(</big><em>fileName=None</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.plot" title="Permalink to this definition">¶</a></dt> +<dd><p>Shows a simple plot of the sky model.</p> +<p>The circles in the plot are scaled with flux. If the sky model is grouped +into patches, sources are colored by patch and the patch positions are +indicated with stars.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>fileName</strong> : str, optional</p> +<blockquote class="last"> +<div><p>If given, the plot is saved to a file instead of displayed.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.remove"> +<tt class="descname">remove</tt><big>(</big><em>filterExpression</em>, <em>aggregate=None</em>, <em>applyBeam=None</em>, <em>useRegEx=False</em>, <em>force=False</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.remove" title="Permalink to this definition">¶</a></dt> +<dd><p>Filters the sky model, removing all sources that meet the given expression.</p> +<p>After filtering, the sky model contains only those sources for which the +given filter expression is false.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>filterExpression</strong> : str or dict</p> +<blockquote> +<div><dl class="docutils"> +<dt>A string specifying the filter expression in the form:</dt> +<dd><p class="first last">‘<property> <operator> <value> [<units>]’</p> +</dd> +</dl> +<p>(e.g., ‘I <= 10.5 Jy’). These elements can also be given as a +dictionary in the form:</p> +<blockquote> +<div><dl class="docutils"> +<dt>{‘filterProp’:property, ‘filterOper’:operator,</dt> +<dd><p class="first last">‘filterVal’:value, ‘filterUnits’:units}</p> +</dd> +</dl> +</div></blockquote> +<dl class="docutils"> +<dt>or as a list:</dt> +<dd><p class="first last">[property, operator, value, value]</p> +</dd> +</dl> +<p>The property to filter on must be a valid column name or the filename +of a mask image.</p> +<p>Supported operators are: +- != +- <= +- >= +- > +- < +- = (or ‘==’)</p> +<p>Units are optional and must be specified as required by astropy.units.</p> +</div></blockquote> +<p><strong>aggregate</strong> : str, optional</p> +<blockquote> +<div><p>If set, the array returned will be of values aggregated +over the patch members. The following aggregation functions are +available: +- ‘sum’: sum of patch values +- ‘mean’: mean of patch values +- ‘wmean’: Stokes I weighted mean of patch values +- ‘min’: minimum of patch values +- ‘max’: maximum of patch values +- True: only valid when the filter indices are specified directly as +a numpy array. If True, filtering is done on patches instead of +sources.</p> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote> +<div><p>If True, apparent fluxes will be used.</p> +</div></blockquote> +<p><strong>useRegEx</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, string matching will use regular expression matching. If +False, string matching uses Unix filename matching.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Filter on column ‘I’ (Stokes I flux). This filter will remove all sources +with Stokes I flux greater than 1.5 Jy:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s">'I > 1.5 Jy'</span><span class="p">)</span> +<span class="go">INFO: Removed 1102 sources.</span> +</pre></div> +</div> +<p>If the sky model has patches and the filter is desired per patch, use +<tt class="docutils literal"><span class="pre">aggregate</span> <span class="pre">=</span> <span class="pre">function</span></tt>. For example, to select on the sum of the patch +fluxes:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s">'I > 1.5 Jy'</span><span class="p">,</span> <span class="n">aggregate</span><span class="o">=</span><span class="s">'sum'</span><span class="p">)</span> +</pre></div> +</div> +<p>Filter on source names, removing those that match “src*_1?”:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s">'Name == src*_1?'</span><span class="p">)</span> +</pre></div> +</div> +<p>Use a CASA clean mask image to remove sources that lie in masked regions:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s">'clean_mask.mask == True'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.select"> +<tt class="descname">select</tt><big>(</big><em>filterExpression</em>, <em>aggregate=None</em>, <em>applyBeam=False</em>, <em>useRegEx=False</em>, <em>force=False</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.select" title="Permalink to this definition">¶</a></dt> +<dd><p>Filters the sky model, keeping all sources that meet the given expression.</p> +<p>After filtering, the sky model contains only those sources for which the +given filter expression is true.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>filterExpression</strong> : str or dict</p> +<blockquote> +<div><dl class="docutils"> +<dt>The filter expression specified as:</dt> +<dd><ul class="first last simple"> +<li>a string of <tt class="docutils literal"><span class="pre">'<property></span> <span class="pre"><operator></span> <span class="pre"><value></span> <span class="pre">[<units>]'</span></tt></li> +<li>a list of <tt class="docutils literal"><span class="pre">[property,</span> <span class="pre">operator,</span> <span class="pre">value,</span> <span class="pre">unit]</span></tt></li> +</ul> +</dd> +</dl> +<p>The property to filter on must be a valid column name or the filename +of a mask image.</p> +<dl class="docutils"> +<dt>Supported operators are:</dt> +<dd><ul class="first last simple"> +<li>!=</li> +<li><=</li> +<li>>=</li> +<li>></li> +<li><</li> +<li>= (or ‘==’)</li> +</ul> +</dd> +</dl> +<p>Units are optional and must be specified as required by astropy.units.</p> +</div></blockquote> +<p><strong>aggregate</strong> : str, optional</p> +<blockquote> +<div><p>If set, the array returned will be of values aggregated +over the patch members. The following aggregation functions are +available:</p> +<blockquote> +<div><ul class="simple"> +<li>‘sum’: sum of patch values</li> +<li>‘mean’: mean of patch values</li> +<li>‘wmean’: Stokes I weighted mean of patch values</li> +<li>‘min’: minimum of patch values</li> +<li>‘max’: maximum of patch values</li> +<li>True: only valid when the filter indices are specify directly as a numpy array. If True, filtering is done on patches instead of sources.</li> +</ul> +</div></blockquote> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote> +<div><p>If True, apparent fluxes will be used.</p> +</div></blockquote> +<p><strong>useRegEx</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, string matching will use regular expression matching. If +False, string matching uses Unix filename matching.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Filter on column ‘I’ (Stokes I flux). This filter will select all sources +with Stokes I flux greater than 1.5 Jy:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s">'I > 1.5 Jy'</span><span class="p">)</span> +<span class="go">INFO: Kept 1102 sources.</span> +</pre></div> +</div> +<p>If the sky model has patches and the filter is desired per patch, use +<tt class="docutils literal"><span class="pre">aggregate</span> <span class="pre">=</span> <span class="pre">function</span></tt>. For example, to select on the sum of the patch +fluxes:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s">'I > 1.5 Jy'</span><span class="p">,</span> <span class="n">aggregate</span><span class="o">=</span><span class="s">'sum'</span><span class="p">)</span> +</pre></div> +</div> +<p>Filter on source names, keeping those that match “src*_1?”:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s">'Name == src*_1?'</span><span class="p">)</span> +</pre></div> +</div> +<p>Use a CASA clean mask image to keep sources that lie in masked regions:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="s">'clean_mask.mask == True'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.setColValues"> +<tt class="descname">setColValues</tt><big>(</big><em>colName</em>, <em>values</em>, <em>mask=None</em>, <em>index=None</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.setColValues" title="Permalink to this definition">¶</a></dt> +<dd><p>Sets column values.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>colName</strong> : str</p> +<blockquote> +<div><p>Name of column. If not already present in the table, a new column +will be created.</p> +</div></blockquote> +<p><strong>values</strong> : list, numpy array, or dict</p> +<blockquote> +<div><p>Array of values or dict of {sourceName:value} pairs. If list or +array, the length must match the number of rows in the table. If +dict, missing values will be masked unless already present. Values +are assumed to be in units required by makesourcedb.</p> +</div></blockquote> +<p><strong>mask</strong> : list or array of bools, optional</p> +<blockquote> +<div><p>If values is a list or array, a mask can be specified (True means +the value is masked).</p> +</div></blockquote> +<p><strong>index</strong> : int, optional</p> +<blockquote class="last"> +<div><p>Index that specifies the column position in the table, if column is +not already present in the table</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Set Stokes I fluxes:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">setColValues</span><span class="p">(</span><span class="s">'I'</span><span class="p">,</span> <span class="p">[</span><span class="mf">1.0</span><span class="p">,</span> <span class="mf">1.1</span><span class="p">,</span> <span class="mf">1.2</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">1.3</span><span class="p">],</span> <span class="n">mask</span><span class="o">=</span><span class="p">[</span><span class="bp">False</span><span class="p">,</span> +<span class="go"> False, False, True, False])</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.setDefaltValues"> +<tt class="descname">setDefaltValues</tt><big>(</big><em>colDict</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.setDefaltValues" title="Permalink to this definition">¶</a></dt> +<dd><p>Sets default column values.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>colDict</strong> : dict</p> +<blockquote class="last"> +<div><p>Dict specifying column names and default values as +{‘colName’:value} where the value is in the units accepted by +makesourcedb (e.g., Hz for ReferenceFrequency).</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Set new default value for ReferenceFrequency:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">setDefaultValues</span><span class="p">({</span><span class="s">'ReferenceFrequency'</span><span class="p">:</span> <span class="mf">140e6</span><span class="p">})</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.setPatchPositions"> +<tt class="descname">setPatchPositions</tt><big>(</big><em>patchDict=None</em>, <em>method='mid'</em>, <em>applyBeam=False</em>, <em>perPatchProjection=True</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.setPatchPositions" title="Permalink to this definition">¶</a></dt> +<dd><p>Sets the patch positions.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>patchDict</strong> : dict</p> +<blockquote> +<div><p>Dict specifying patch names and positions as {‘patchName’:[RA, Dec]} +where both RA and Dec are degrees J2000 or in makesourcedb format.</p> +</div></blockquote> +<p><strong>method</strong> : None or str, optional</p> +<blockquote> +<div><p>If no patchDict is given, this parameter specifies the method used +to set the patch positions: +- ‘mid’ => the position is set to the midpoint of the patch +- ‘mean’ => the positions is set to the mean RA and Dec of the patch +- ‘wmean’ => the position is set to the flux-weighted mean RA and +Dec of the patch +- ‘zero’ => set all positions to [0.0, 0.0]</p> +<p>Note that the mid, mean, and wmean positions are calculated from TAN- +projected values.</p> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote> +<div><p>If True, fluxes used as weights will be attenuated by the beam.</p> +</div></blockquote> +<p><strong>perPatchProjection</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, a different projection center is used per patch. If False, +a single projection center is used for all patches.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Set all patch positions to their (projected) midpoints:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">setPatchPositions</span><span class="p">()</span> +</pre></div> +</div> +<p>Set all patch positions to their (projected) flux-weighted mean +positions:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">setPatchPositions</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s">'wmean'</span><span class="p">)</span> +</pre></div> +</div> +<p>Set new position for the ‘bin0’ patch only:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">setPatchPositions</span><span class="p">({</span><span class="s">'bin0'</span><span class="p">:</span> <span class="p">[</span><span class="mf">123.231</span><span class="p">,</span> <span class="mf">23.4321</span><span class="p">]})</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.setRowValues"> +<tt class="descname">setRowValues</tt><big>(</big><em>values</em>, <em>mask=None</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.setRowValues" title="Permalink to this definition">¶</a></dt> +<dd><p>Sets values for a single row.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>values</strong> : list, numpy array, or dict</p> +<blockquote> +<div><p>Array of values or dict of {colName:value} pairs. If list or +array, the length must match the number and order of the columns in +the table. If dict, missing values will be masked unless already +present.</p> +</div></blockquote> +<p><strong>mask</strong> : list or array of bools, optional</p> +<blockquote class="last"> +<div><p>If values is a list or array, a mask can be specified (True means +the value is masked).</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Set row values for the source ‘src1’:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">setRowValues</span><span class="p">({</span><span class="s">'Name'</span><span class="p">:</span><span class="s">'src1'</span><span class="p">,</span> <span class="s">'Ra'</span><span class="p">:</span><span class="mf">213.123</span><span class="p">,</span> <span class="s">'Dec'</span><span class="p">:</span><span class="mf">23.1232</span><span class="p">,</span> +<span class="go"> 'I':23.2, 'Type':'POINT'}</span> +</pre></div> +</div> +<p>The RA and Dec values can be in degrees (as above) or in makesourcedb +format. E.g.:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">setRowValues</span><span class="p">({</span><span class="s">'Name'</span><span class="p">:</span><span class="s">'src1'</span><span class="p">,</span> <span class="s">'Ra'</span><span class="p">:</span><span class="s">'12:22:21.1'</span><span class="p">,</span> +<span class="go"> 'Dec':'+14.46.31.5', 'I':23.2, 'Type':'POINT'}</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.transfer"> +<tt class="descname">transfer</tt><big>(</big><em>patchFile</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.transfer" title="Permalink to this definition">¶</a></dt> +<dd><p>Transfer patches from the input sky model.</p> +<p>Sources with the same name as those in patchFile will be grouped into +the patches defined in patchFile. Sources that do not appear in patchFile +will be placed into separate patches (one per source). Patch positions are +not transferred.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>patchFile</strong> : str</p> +<blockquote class="last"> +<div><p>Input sky model from which to transfer patches.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Transfer patches from one sky model to another and set their positions:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">transfer</span><span class="p">(</span><span class="s">'master_sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">setPatchPositions</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s">'mid'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.ungroup"> +<tt class="descname">ungroup</tt><big>(</big><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.ungroup" title="Permalink to this definition">¶</a></dt> +<dd><p>Removes all patches from the sky model.</p> +<p class="rubric">Examples</p> +<p>Remove all patches:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">ungroup</span><span class="p">()</span> +</pre></div> +</div> +</dd></dl> + +<dl class="method"> +<dt id="lsmtool.skymodel.SkyModel.write"> +<tt class="descname">write</tt><big>(</big><em>fileName=None</em>, <em>format='makesourcedb'</em>, <em>clobber=False</em>, <em>sortBy=None</em>, <em>lowToHigh=False</em><big>)</big><a class="headerlink" href="#lsmtool.skymodel.SkyModel.write" title="Permalink to this definition">¶</a></dt> +<dd><p>Writes the sky model to a file.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>filename</strong> : str</p> +<blockquote> +<div><p>Name of output file.</p> +</div></blockquote> +<p><strong>format: str, optional</strong></p> +<blockquote> +<div><dl class="docutils"> +<dt>Format of the output file. Allowed formats are:</dt> +<dd><ul class="first last simple"> +<li>‘makesourcedb’ (BBS format)</li> +<li>‘fits’</li> +<li>‘votable’</li> +<li>‘hdf5’</li> +<li>‘ds9’</li> +<li>‘kvis’</li> +<li>plus all other formats supported by the astropy.table package</li> +</ul> +</dd> +</dl> +</div></blockquote> +<p><strong>clobber</strong> : bool, optional</p> +<blockquote> +<div><p>If True, an existing file is overwritten.</p> +</div></blockquote> +<p><strong>sortBy</strong> : str or list of str, optional</p> +<blockquote> +<div><p>Name of columns to sort on. If None, no sorting is done. If +a list is given, sorting is done on the columns in the order given</p> +</div></blockquote> +<p><strong>lowToHigh</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, sort values from low to high instead of high to low</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Write the model to a makesourcedb sky model file suitable for use with +BBS:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'modsky.model'</span><span class="p">)</span> +</pre></div> +</div> +<p>Write to a fits catalog:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'sky.fits'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">'fits'</span><span class="p">)</span> +</pre></div> +</div> +<p>Write to a ds9 region file:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'sky.reg'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">'ds9'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-lsmtool.tableio"> +<span id="lsmtool-tableio-module"></span><h2>lsmtool.tableio module<a class="headerlink" href="#module-lsmtool.tableio" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.tableio.Dec2Angle"> +<tt class="descclassname">lsmtool.tableio.</tt><tt class="descname">Dec2Angle</tt><big>(</big><em>Dec</em><big>)</big><a class="headerlink" href="#lsmtool.tableio.Dec2Angle" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns Angle objects for input Dec values.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>Dec</strong> : str, float or list of str, float</p> +<blockquote> +<div><p>Values of Dec to convert. Can be strings in makesourcedb format or floats +in degrees.</p> +</div></blockquote> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><strong>DecAngle</strong> : astropy.coordinates.Angle object</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.tableio.RA2Angle"> +<tt class="descclassname">lsmtool.tableio.</tt><tt class="descname">RA2Angle</tt><big>(</big><em>RA</em><big>)</big><a class="headerlink" href="#lsmtool.tableio.RA2Angle" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns Angle objects for input RA values.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>RA</strong> : str, float or list of str, float</p> +<blockquote> +<div><p>Values of RA to convert. Can be strings in makesourcedb format or floats +in degrees.</p> +</div></blockquote> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><strong>RAAngle</strong> : astropy.coordinates.Angle object</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.tableio.ds9RegionWriter"> +<tt class="descclassname">lsmtool.tableio.</tt><tt class="descname">ds9RegionWriter</tt><big>(</big><em>table</em>, <em>fileName</em><big>)</big><a class="headerlink" href="#lsmtool.tableio.ds9RegionWriter" title="Permalink to this definition">¶</a></dt> +<dd><p>Writes table to a ds9 region file.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>table</strong> : astropy.table.Table object</p> +<blockquote> +<div><p>Input sky model table</p> +</div></blockquote> +<p><strong>fileName</strong> : str</p> +<blockquote class="last"> +<div><p>Output ASCII file to which the sky model is written.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.tableio.kvisAnnWriter"> +<tt class="descclassname">lsmtool.tableio.</tt><tt class="descname">kvisAnnWriter</tt><big>(</big><em>table</em>, <em>fileName</em><big>)</big><a class="headerlink" href="#lsmtool.tableio.kvisAnnWriter" title="Permalink to this definition">¶</a></dt> +<dd><p>Writes table to a kvis annotation file.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>table</strong> : astropy.table.Table object</p> +<blockquote> +<div><p>Input sky model table</p> +</div></blockquote> +<p><strong>fileName</strong> : str</p> +<blockquote class="last"> +<div><p>Output ASCII file to which the sky model is written.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.tableio.rowStr"> +<tt class="descclassname">lsmtool.tableio.</tt><tt class="descname">rowStr</tt><big>(</big><em>row</em><big>)</big><a class="headerlink" href="#lsmtool.tableio.rowStr" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns makesourcedb representation of a row.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>row</strong> : astropy.table.Row object</p> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>line</strong> : str</p> +<blockquote class="last"> +<div><p>Sting representing a row in a makesourcedb sky model file</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.tableio.skyModelIdentify"> +<tt class="descclassname">lsmtool.tableio.</tt><tt class="descname">skyModelIdentify</tt><big>(</big><em>origin</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#lsmtool.tableio.skyModelIdentify" title="Permalink to this definition">¶</a></dt> +<dd><p>Identifies valid makesourcedb sky model files.</p> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.tableio.skyModelReader"> +<tt class="descclassname">lsmtool.tableio.</tt><tt class="descname">skyModelReader</tt><big>(</big><em>fileName</em><big>)</big><a class="headerlink" href="#lsmtool.tableio.skyModelReader" title="Permalink to this definition">¶</a></dt> +<dd><p>Reads a makesourcedb sky model file into an astropy table.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>fileName</strong> : str</p> +<blockquote> +<div><p>Input ASCII file from which the sky model is read. Must +respect the makesourcedb format</p> +</div></blockquote> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><strong>table</strong> : astropy.table.Table object</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.tableio.skyModelWriter"> +<tt class="descclassname">lsmtool.tableio.</tt><tt class="descname">skyModelWriter</tt><big>(</big><em>table</em>, <em>fileName</em><big>)</big><a class="headerlink" href="#lsmtool.tableio.skyModelWriter" title="Permalink to this definition">¶</a></dt> +<dd><p>Writes table to a makesourcedb sky model file.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>fileName</strong> : str</p> +<blockquote class="last"> +<div><p>Output ASCII file to which the sky model is written.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</div> +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">LSMTool Module Documentation</a><ul> +<li><a class="reference internal" href="#module-lsmtool">lsmtool module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations_lib">lsmtool.operations_lib module</a></li> +<li><a class="reference internal" href="#module-lsmtool.skymodel">lsmtool.skymodel module</a></li> +<li><a class="reference internal" href="#module-lsmtool.tableio">lsmtool.tableio module</a></li> +</ul> +</li> +</ul> + + <h4>Previous topic</h4> + <p class="topless"><a href="overview.html" + title="previous chapter">LSMTool: the LOFAR Local Sky Model Tool </a></p> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/lsmtool.txt" + rel="nofollow">Show Source</a></li> + </ul> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li class="right" > + <a href="overview.html" title="LSMTool: the LOFAR Local Sky Model Tool" + >previous</a> |</li> + <li><a href="index.html">LSMTool 1.0.0 documentation</a> »</li> + </ul> + </div> + <div class="footer"> + © Copyright 2014, David Rafferty. + Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2. + </div> + </body> +</html> \ No newline at end of file diff --git a/docs/build/html/lsmtool.operations.html b/docs/build/html/lsmtool.operations.html new file mode 100644 index 0000000000000000000000000000000000000000..c6f6eee1be81826079697dc38bfd5ff75a1b2d11 --- /dev/null +++ b/docs/build/html/lsmtool.operations.html @@ -0,0 +1,742 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>lsmtool.operations package — LSMTool 1.0.0 documentation</title> + + <link rel="stylesheet" href="_static/default.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '1.0.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + <link rel="top" title="LSMTool 1.0.0 documentation" href="index.html" /> + </head> + <body> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li><a href="index.html">LSMTool 1.0.0 documentation</a> »</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="lsmtool-operations-package"> +<h1>lsmtool.operations package<a class="headerlink" href="#lsmtool-operations-package" title="Permalink to this headline">¶</a></h1> +<div class="section" id="submodules"> +<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> +</div> +<div class="section" id="module-lsmtool.operations.add"> +<span id="lsmtool-operations-add-module"></span><h2>lsmtool.operations.add module<a class="headerlink" href="#module-lsmtool.operations.add" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.add.add"> +<tt class="descclassname">lsmtool.operations.add.</tt><tt class="descname">add</tt><big>(</big><em>LSM</em>, <em>colNamesVals</em><big>)</big><a class="headerlink" href="#lsmtool.operations.add.add" title="Permalink to this definition">¶</a></dt> +<dd><p>Add a source to the sky model.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>LSM</strong> : SkyModel object</p> +<blockquote> +<div><p>Input sky model.</p> +</div></blockquote> +<p><strong>colNamesVals</strong> : dict</p> +<blockquote class="last"> +<div><p>A dictionary that specifies the row values for the source to be added.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.add.run"> +<tt class="descclassname">lsmtool.operations.add.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.add.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.concatenate"> +<span id="lsmtool-operations-concatenate-module"></span><h2>lsmtool.operations.concatenate module<a class="headerlink" href="#module-lsmtool.operations.concatenate" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.concatenate.concatenate"> +<tt class="descclassname">lsmtool.operations.concatenate.</tt><tt class="descname">concatenate</tt><big>(</big><em>LSM1</em>, <em>LSM2</em>, <em>matchBy='name'</em>, <em>radius=0.1</em>, <em>keep='all'</em><big>)</big><a class="headerlink" href="#lsmtool.operations.concatenate.concatenate" title="Permalink to this definition">¶</a></dt> +<dd><p>Concatenate two sky models</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>LSM1</strong> : SkyModel object</p> +<blockquote> +<div><p>Parent sky model</p> +</div></blockquote> +<p><strong>LSM2</strong> : SkyModel object</p> +<blockquote> +<div><p>Sky model to concatenate with the parent sky model</p> +</div></blockquote> +<p><strong>matchBy</strong> : str, optional</p> +<blockquote> +<div><p>Determines how duplicate sources are determined: +- ‘name’ => duplicates are identified by name +- ‘position’ => duplicates are identified by radius. Sources within the</p> +<blockquote> +<div><p>radius specified by the radius parameter are considered duplicates</p> +</div></blockquote> +</div></blockquote> +<p><strong>radius</strong> : float, optional</p> +<blockquote> +<div><p>Radius in degrees for matching when matchBy=’position’</p> +</div></blockquote> +<p><strong>keep</strong> : str, optional</p> +<blockquote class="last"> +<div><p>Determines how duplicates are treated: +- ‘all’ => all duplicates are kept; those with identical names are re-</p> +<blockquote> +<div><p>named</p> +</div></blockquote> +<ul class="simple"> +<li>‘from1’ => duplicates kept are those from sky model 1 (LSM1)</li> +<li>‘from2’ => duplicates kept are those from sky model 2 (LSM2)</li> +</ul> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Concatenate two sky models, identifying duplicates by matching to the source +names. When duplicates are found, keep the source from the parent sky model +and discard the duplicate from second sky model (this might be useful when +merging two sky models that have some overlap):</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM1</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky1.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">LSM2</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky2.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">concatenate</span><span class="p">(</span><span class="n">LSM1</span><span class="p">,</span> <span class="n">LSM2</span><span class="p">,</span> <span class="n">matchBy</span><span class="o">=</span><span class="s">'name'</span><span class="p">,</span> <span class="n">keep</span><span class="o">=</span><span class="s">'from1'</span><span class="p">)</span> +</pre></div> +</div> +<p>Concatenate two sky models, identifying duplicates by matching to the source +positions within a radius of 10 arcsec. When duplicates are found, keep the +source from the second sky model and discard the duplicate from the parent +sky model (this might be useful when replacing parts of a low-resolution +sky model with a high-resolution one):</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM2</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'high_res_sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">concatenate</span><span class="p">(</span><span class="n">LSM1</span><span class="p">,</span> <span class="n">LSM2</span><span class="p">,</span> <span class="n">matchBy</span><span class="o">=</span><span class="s">'position'</span><span class="p">,</span> <span class="n">radius</span><span class="o">=</span><span class="mf">10.0</span><span class="o">/</span><span class="mf">3600.0</span><span class="p">,</span> +<span class="go"> keep='from2')</span> +</pre></div> +</div> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.concatenate.run"> +<tt class="descclassname">lsmtool.operations.concatenate.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.concatenate.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.group"> +<span id="lsmtool-operations-group-module"></span><h2>lsmtool.operations.group module<a class="headerlink" href="#module-lsmtool.operations.group" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.group.addEvery"> +<tt class="descclassname">lsmtool.operations.group.</tt><tt class="descname">addEvery</tt><big>(</big><em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.group.addEvery" title="Permalink to this definition">¶</a></dt> +<dd><p>Add a Patch column with a different name for each source</p> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.group.addSingle"> +<tt class="descclassname">lsmtool.operations.group.</tt><tt class="descname">addSingle</tt><big>(</big><em>LSM</em>, <em>patchName</em><big>)</big><a class="headerlink" href="#lsmtool.operations.group.addSingle" title="Permalink to this definition">¶</a></dt> +<dd><p>Add a Patch column with a single patch name</p> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.group.getPatchNamesFromMask"> +<tt class="descclassname">lsmtool.operations.group.</tt><tt class="descname">getPatchNamesFromMask</tt><big>(</big><em>mask</em>, <em>RARad</em>, <em>DecRad</em><big>)</big><a class="headerlink" href="#lsmtool.operations.group.getPatchNamesFromMask" title="Permalink to this definition">¶</a></dt> +<dd><p>Returns an array of patch names for each (RA, Dec) pair in radians</p> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.group.group"> +<tt class="descclassname">lsmtool.operations.group.</tt><tt class="descname">group</tt><big>(</big><em>LSM</em>, <em>algorithm</em>, <em>targetFlux=None</em>, <em>numClusters=100</em>, <em>applyBeam=False</em><big>)</big><a class="headerlink" href="#lsmtool.operations.group.group" title="Permalink to this definition">¶</a></dt> +<dd><p>Groups sources into patches</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>LSM</strong> : SkyModel object</p> +<blockquote> +<div><p>Input sky model.</p> +</div></blockquote> +<p><strong>algorithm</strong> : str</p> +<blockquote> +<div><p>Algorithm to use for grouping: +- ‘single’ => all sources are grouped into a single patch +- ‘every’ => every source gets a separate patch +- ‘cluster’ => SAGECAL clustering algorithm that groups sources into</p> +<blockquote> +<div><p>specified number of clusters (specified by the numClusters parameter).</p> +</div></blockquote> +<ul> +<li><dl class="first docutils"> +<dt>‘tessellate’ => group into tiles whose total flux approximates</dt> +<dd><p class="first last">the target flux (specified by the targetFlux parameter).</p> +</dd> +</dl> +</li> +<li><dl class="first docutils"> +<dt>the filename of a mask image => group by masked regions (where mask =</dt> +<dd><p class="first last">True). Source outside of masked regions are given patches of their +own.</p> +</dd> +</dl> +</li> +</ul> +</div></blockquote> +<p><strong>targetFlux</strong> : str or float, optional</p> +<blockquote> +<div><p>Target flux for tessellation (the total flux of each tile will be close +to this value). The target flux can be specified as either a float in Jy +or as a string with units (e.g., ‘25.0 mJy’).</p> +</div></blockquote> +<p><strong>numClusters</strong> : int, optional</p> +<blockquote> +<div><p>Number of clusters for clustering. Sources are grouped around the +numClusters brightest sources.</p> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, fluxes will be attenuated by the beam.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Tesselate the sky model into patches with approximately 30 Jy total +flux:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">group</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'tessellate'</span><span class="p">,</span> <span class="n">targetFlux</span><span class="o">=</span><span class="mf">30.0</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.group.run"> +<tt class="descclassname">lsmtool.operations.group.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.group.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.merge"> +<span id="lsmtool-operations-merge-module"></span><h2>lsmtool.operations.merge module<a class="headerlink" href="#module-lsmtool.operations.merge" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.merge.merge"> +<tt class="descclassname">lsmtool.operations.merge.</tt><tt class="descname">merge</tt><big>(</big><em>LSM</em>, <em>patches</em>, <em>name=None</em><big>)</big><a class="headerlink" href="#lsmtool.operations.merge.merge" title="Permalink to this definition">¶</a></dt> +<dd><p>Merge two or more patches together</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>patches</strong> : list of str</p> +<blockquote> +<div><p>List of patches to merge</p> +</div></blockquote> +<p><strong>name</strong> : str, optional</p> +<blockquote class="last"> +<div><p>Name of resulting merged patch</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Merge three patches into one:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">merge</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="p">[</span><span class="s">'bin0'</span><span class="p">,</span> <span class="s">'bin1'</span><span class="p">,</span> <span class="s">'bin2'</span><span class="p">],</span> <span class="s">'binmerged'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.merge.run"> +<tt class="descclassname">lsmtool.operations.merge.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.merge.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.move"> +<span id="lsmtool-operations-move-module"></span><h2>lsmtool.operations.move module<a class="headerlink" href="#module-lsmtool.operations.move" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.move.move"> +<tt class="descclassname">lsmtool.operations.move.</tt><tt class="descname">move</tt><big>(</big><em>LSM</em>, <em>name</em>, <em>position=None</em>, <em>shift=None</em><big>)</big><a class="headerlink" href="#lsmtool.operations.move.move" title="Permalink to this definition">¶</a></dt> +<dd><p>Move or shift a source.</p> +<p>If both a position and a shift are specified, the source is moved to the +new position and then shifted.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>name</strong> : str</p> +<blockquote> +<div><p>Source name.</p> +</div></blockquote> +<p><strong>position</strong> : list, optional</p> +<blockquote> +<div><p>A list specifying a new position as [RA, Dec] in either makesourcedb +format (e.g., [‘12:23:43.21’, ‘+22.34.21.2’]) or in degrees (e.g., +[123.2312, 23.3422]).</p> +</div></blockquote> +<p><strong>shift</strong> : list, optional</p> +<blockquote class="last"> +<div><p>A list specifying the shift as [RAShift, DecShift] in +in degrees (e.g., [0.02312, 0.00342]).</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Move source ‘1609.6+6556’ to a new position:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">move</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'1609.6+6556'</span><span class="p">,</span> <span class="n">position</span><span class="o">=</span><span class="p">[</span><span class="s">'16:10:00'</span><span class="p">,</span> <span class="s">'+65.57.00'</span><span class="p">])</span> +</pre></div> +</div> +<p>Shift the source by 10 arcsec in Dec:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">move</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'1609.6+6556'</span><span class="p">,</span> <span class="n">shift</span><span class="o">=</span><span class="p">[</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">10.0</span><span class="o">/</span><span class="mf">3600.0</span><span class="p">])</span> +</pre></div> +</div> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.move.run"> +<tt class="descclassname">lsmtool.operations.move.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.move.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.plot"> +<span id="lsmtool-operations-plot-module"></span><h2>lsmtool.operations.plot module<a class="headerlink" href="#module-lsmtool.operations.plot" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.plot.Dectickformatter"> +<tt class="descclassname">lsmtool.operations.plot.</tt><tt class="descname">Dectickformatter</tt><big>(</big><em>y</em>, <em>pos</em><big>)</big><a class="headerlink" href="#lsmtool.operations.plot.Dectickformatter" title="Permalink to this definition">¶</a></dt> +<dd><p>Changes y tick labels from pixels to Dec in degrees</p> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.plot.RAtickformatter"> +<tt class="descclassname">lsmtool.operations.plot.</tt><tt class="descname">RAtickformatter</tt><big>(</big><em>x</em>, <em>pos</em><big>)</big><a class="headerlink" href="#lsmtool.operations.plot.RAtickformatter" title="Permalink to this definition">¶</a></dt> +<dd><p>Changes x tick labels from pixels to RA in degrees</p> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.plot.formatCoord"> +<tt class="descclassname">lsmtool.operations.plot.</tt><tt class="descname">formatCoord</tt><big>(</big><em>x</em>, <em>y</em><big>)</big><a class="headerlink" href="#lsmtool.operations.plot.formatCoord" title="Permalink to this definition">¶</a></dt> +<dd><p>Custom coordinate format</p> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.plot.plot"> +<tt class="descclassname">lsmtool.operations.plot.</tt><tt class="descname">plot</tt><big>(</big><em>LSM</em>, <em>fileName=None</em><big>)</big><a class="headerlink" href="#lsmtool.operations.plot.plot" title="Permalink to this definition">¶</a></dt> +<dd><p>Shows a simple plot of the sky model.</p> +<p>The circles in the plot are scaled with flux. If the sky model is grouped +into patches, sources are colored by patch and the patch positions are +indicated with stars.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>fileName</strong> : str, optional</p> +<blockquote class="last"> +<div><p>If given, the plot is saved to a file instead of displayed.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.plot.run"> +<tt class="descclassname">lsmtool.operations.plot.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.plot.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.remove"> +<span id="lsmtool-operations-remove-module"></span><h2>lsmtool.operations.remove module<a class="headerlink" href="#module-lsmtool.operations.remove" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.remove.remove"> +<tt class="descclassname">lsmtool.operations.remove.</tt><tt class="descname">remove</tt><big>(</big><em>LSM</em>, <em>filterExpression</em>, <em>aggregate=None</em>, <em>applyBeam=None</em>, <em>useRegEx=False</em>, <em>force=False</em><big>)</big><a class="headerlink" href="#lsmtool.operations.remove.remove" title="Permalink to this definition">¶</a></dt> +<dd><p>Filters the sky model, removing all sources that meet the given expression.</p> +<p>After filtering, the sky model contains only those sources for which the +given filter expression is false.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>filterExpression</strong> : str or dict</p> +<blockquote> +<div><dl class="docutils"> +<dt>A string specifying the filter expression in the form:</dt> +<dd><p class="first last">‘<property> <operator> <value> [<units>]’</p> +</dd> +</dl> +<p>(e.g., ‘I <= 10.5 Jy’). These elements can also be given as a +dictionary in the form:</p> +<blockquote> +<div><dl class="docutils"> +<dt>{‘filterProp’:property, ‘filterOper’:operator,</dt> +<dd><p class="first last">‘filterVal’:value, ‘filterUnits’:units}</p> +</dd> +</dl> +</div></blockquote> +<dl class="docutils"> +<dt>or as a list:</dt> +<dd><p class="first last">[property, operator, value, value]</p> +</dd> +</dl> +<p>The property to filter on must be a valid column name or the filename +of a mask image.</p> +<dl class="docutils"> +<dt>Supported operators are:</dt> +<dd><ul class="first last simple"> +<li>!=</li> +<li><=</li> +<li>>=</li> +<li>></li> +<li><</li> +<li>= (or ‘==’)</li> +</ul> +</dd> +</dl> +<p>Units are optional and must be specified as required by astropy.units.</p> +</div></blockquote> +<p><strong>aggregate</strong> : str, optional</p> +<blockquote> +<div><p>If set, the array returned will be of values aggregated +over the patch members. The following aggregation functions are +available:</p> +<blockquote> +<div><ul> +<li><p class="first">‘sum’: sum of patch values</p> +</li> +<li><p class="first">‘mean’: mean of patch values</p> +</li> +<li><p class="first">‘wmean’: Stokes I weighted mean of patch values</p> +</li> +<li><p class="first">‘min’: minimum of patch values</p> +</li> +<li><p class="first">‘max’: maximum of patch values</p> +</li> +<li><dl class="first docutils"> +<dt>True: only valid when the filter indices are specified directly as</dt> +<dd><p class="first last">a numpy array. If True, filtering is done on patches instead of +sources.</p> +</dd> +</dl> +</li> +</ul> +</div></blockquote> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote> +<div><p>If True, apparent fluxes will be used.</p> +</div></blockquote> +<p><strong>useRegEx</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, string matching will use regular expression matching. If +False, string matching uses Unix filename matching.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Filter on column ‘I’ (Stokes I flux). This filter will remove all sources +with Stokes I flux greater than 1.5 Jy:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">remove</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'I > 1.5 Jy'</span><span class="p">)</span> +<span class="go">INFO: Removed 1102 sources.</span> +</pre></div> +</div> +<p>If the sky model has patches and the filter is desired per patch, use +<tt class="docutils literal"><span class="pre">aggregate</span> <span class="pre">=</span> <span class="pre">function</span></tt>. For example, to select on the sum of the patch +fluxes:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">remove</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'I > 1.5 Jy'</span><span class="p">,</span> <span class="n">aggregate</span><span class="o">=</span><span class="s">'sum'</span><span class="p">)</span> +</pre></div> +</div> +<p>Filter on source names, removing those that match “src*_1?”:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">remove</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'Name == src*_1?'</span><span class="p">)</span> +</pre></div> +</div> +<p>Use a CASA clean mask image to remove sources that lie in masked regions:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">remove</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'clean_mask.mask == True'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.remove.run"> +<tt class="descclassname">lsmtool.operations.remove.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.remove.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.select"> +<span id="lsmtool-operations-select-module"></span><h2>lsmtool.operations.select module<a class="headerlink" href="#module-lsmtool.operations.select" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.select.run"> +<tt class="descclassname">lsmtool.operations.select.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.select.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.select.select"> +<tt class="descclassname">lsmtool.operations.select.</tt><tt class="descname">select</tt><big>(</big><em>LSM</em>, <em>filterExpression</em>, <em>aggregate=None</em>, <em>applyBeam=False</em>, <em>useRegEx=False</em>, <em>force=False</em><big>)</big><a class="headerlink" href="#lsmtool.operations.select.select" title="Permalink to this definition">¶</a></dt> +<dd><p>Filters the sky model, keeping all sources that meet the given expression.</p> +<p>After filtering, the sky model contains only those sources for which the +given filter expression is true.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>filterExpression</strong> : str or dict</p> +<blockquote> +<div><dl class="docutils"> +<dt>A string specifying the filter expression in the form:</dt> +<dd><p class="first last">‘<property> <operator> <value> [<units>]’</p> +</dd> +</dl> +<p>(e.g., ‘I <= 10.5 Jy’). These elements can also be given as a +dictionary in the form:</p> +<blockquote> +<div><dl class="docutils"> +<dt>{‘filterProp’:property, ‘filterOper’:operator,</dt> +<dd><p class="first last">‘filterVal’:value, ‘filterUnits’:units}</p> +</dd> +</dl> +</div></blockquote> +<dl class="docutils"> +<dt>or as a list:</dt> +<dd><p class="first last">[property, operator, value, value]</p> +</dd> +</dl> +<p>The property to filter on must be a valid column name or the filename +of a mask image.</p> +<dl class="docutils"> +<dt>Supported operators are:</dt> +<dd><ul class="first last simple"> +<li>!=</li> +<li><=</li> +<li>>=</li> +<li>></li> +<li><</li> +<li>= (or ‘==’)</li> +</ul> +</dd> +</dl> +<p>Units are optional and must be specified as required by astropy.units.</p> +</div></blockquote> +<p><strong>aggregate</strong> : str, optional</p> +<blockquote> +<div><p>If set, the array returned will be of values aggregated +over the patch members. The following aggregation functions are +available:</p> +<blockquote> +<div><ul> +<li><p class="first">‘sum’: sum of patch values</p> +</li> +<li><p class="first">‘mean’: mean of patch values</p> +</li> +<li><p class="first">‘wmean’: Stokes I weighted mean of patch values</p> +</li> +<li><p class="first">‘min’: minimum of patch values</p> +</li> +<li><p class="first">‘max’: maximum of patch values</p> +</li> +<li><dl class="first docutils"> +<dt>True: only valid when the filter indices are specified directly as</dt> +<dd><p class="first last">a numpy array. If True, filtering is done on patches instead of +sources.</p> +</dd> +</dl> +</li> +</ul> +</div></blockquote> +</div></blockquote> +<p><strong>applyBeam</strong> : bool, optional</p> +<blockquote> +<div><p>If True, apparent fluxes will be used.</p> +</div></blockquote> +<p><strong>useRegEx</strong> : bool, optional</p> +<blockquote class="last"> +<div><p>If True, string matching will use regular expression matching. If +False, string matching uses Unix filename matching.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Filter on column ‘I’ (Stokes I flux). This filter will select all sources +with Stokes I flux greater than 1.5 Jy:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">select</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'I > 1.5 Jy'</span><span class="p">)</span> +<span class="go">INFO: Kept 1102 sources.</span> +</pre></div> +</div> +<p>If the sky model has patches and the filter is desired per patch, use +<tt class="docutils literal"><span class="pre">aggregate</span> <span class="pre">=</span> <span class="pre">function</span></tt>. For example, to select on the sum of the patch +fluxes:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">select</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'I > 1.5 Jy'</span><span class="p">,</span> <span class="n">aggregate</span><span class="o">=</span><span class="s">'sum'</span><span class="p">)</span> +</pre></div> +</div> +<p>Filter on source names, keeping those that match “src*_1?”:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">select</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'Name == src*_1?'</span><span class="p">)</span> +</pre></div> +</div> +<p>Use a CASA clean mask image to keep sources that lie in masked regions:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="nb">filter</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'clean_mask.mask == True'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.setpatchpositions"> +<span id="lsmtool-operations-setpatchpositions-module"></span><h2>lsmtool.operations.setpatchpositions module<a class="headerlink" href="#module-lsmtool.operations.setpatchpositions" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.setpatchpositions.run"> +<tt class="descclassname">lsmtool.operations.setpatchpositions.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.setpatchpositions.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.transfer"> +<span id="lsmtool-operations-transfer-module"></span><h2>lsmtool.operations.transfer module<a class="headerlink" href="#module-lsmtool.operations.transfer" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.transfer.run"> +<tt class="descclassname">lsmtool.operations.transfer.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.transfer.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="function"> +<dt id="lsmtool.operations.transfer.transfer"> +<tt class="descclassname">lsmtool.operations.transfer.</tt><tt class="descname">transfer</tt><big>(</big><em>LSM</em>, <em>patchFile</em><big>)</big><a class="headerlink" href="#lsmtool.operations.transfer.transfer" title="Permalink to this definition">¶</a></dt> +<dd><p>Transfer patches from the input sky model.</p> +<p>Sources with the same name as those in patchFile will be grouped into +the patches defined in patchFile. Sources that do not appear in patchFile +will be placed into separate patches (one per source). Patch positions are +not transferred.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><p class="first"><strong>patchFile</strong> : str</p> +<blockquote class="last"> +<div><p>Input sky model from which to transfer patches.</p> +</div></blockquote> +</td> +</tr> +</tbody> +</table> +<p class="rubric">Examples</p> +<p>Transfer patches from one sky model to another and set their positions:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">transfer</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="s">'master_sky.model'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">setPatchPositions</span><span class="p">(</span><span class="n">LSM</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s">'mid'</span><span class="p">)</span> +</pre></div> +</div> +</dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations.ungroup"> +<span id="lsmtool-operations-ungroup-module"></span><h2>lsmtool.operations.ungroup module<a class="headerlink" href="#module-lsmtool.operations.ungroup" title="Permalink to this headline">¶</a></h2> +<dl class="function"> +<dt id="lsmtool.operations.ungroup.run"> +<tt class="descclassname">lsmtool.operations.ungroup.</tt><tt class="descname">run</tt><big>(</big><em>step</em>, <em>parset</em>, <em>LSM</em><big>)</big><a class="headerlink" href="#lsmtool.operations.ungroup.run" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</div> +<div class="section" id="module-lsmtool.operations"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-lsmtool.operations" title="Permalink to this headline">¶</a></h2> +</div> +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">lsmtool.operations package</a><ul> +<li><a class="reference internal" href="#submodules">Submodules</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.add">lsmtool.operations.add module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.concatenate">lsmtool.operations.concatenate module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.group">lsmtool.operations.group module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.merge">lsmtool.operations.merge module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.move">lsmtool.operations.move module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.plot">lsmtool.operations.plot module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.remove">lsmtool.operations.remove module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.select">lsmtool.operations.select module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.setpatchpositions">lsmtool.operations.setpatchpositions module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.transfer">lsmtool.operations.transfer module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations.ungroup">lsmtool.operations.ungroup module</a></li> +<li><a class="reference internal" href="#module-lsmtool.operations">Module contents</a></li> +</ul> +</li> +</ul> + + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/lsmtool.operations.txt" + rel="nofollow">Show Source</a></li> + </ul> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li><a href="index.html">LSMTool 1.0.0 documentation</a> »</li> + </ul> + </div> + <div class="footer"> + © Copyright 2014, David Rafferty. + Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2. + </div> + </body> +</html> \ No newline at end of file diff --git a/docs/build/html/modules.html b/docs/build/html/modules.html new file mode 100644 index 0000000000000000000000000000000000000000..25e1e89e25d25383010826dbf0be46a89cf1b885 --- /dev/null +++ b/docs/build/html/modules.html @@ -0,0 +1,127 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>lsmtool — LSMTool 1.0.0 documentation</title> + + <link rel="stylesheet" href="_static/default.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '1.0.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + <link rel="top" title="LSMTool 1.0.0 documentation" href="index.html" /> + </head> + <body> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li><a href="index.html">LSMTool 1.0.0 documentation</a> »</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="lsmtool"> +<h1>lsmtool<a class="headerlink" href="#lsmtool" title="Permalink to this headline">¶</a></h1> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="lsmtool.html">LSMTool Module Documentation</a><ul> +<li class="toctree-l2"><a class="reference internal" href="lsmtool.html#subpackages">Subpackages</a><ul> +<li class="toctree-l3"><a class="reference internal" href="lsmtool.operations.html">lsmtool.operations package</a><ul> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#submodules">Submodules</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.add">lsmtool.operations.add module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.concatenate">lsmtool.operations.concatenate module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.group">lsmtool.operations.group module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.merge">lsmtool.operations.merge module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.move">lsmtool.operations.move module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.plot">lsmtool.operations.plot module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.remove">lsmtool.operations.remove module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.select">lsmtool.operations.select module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.setpatchpositions">lsmtool.operations.setpatchpositions module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.transfer">lsmtool.operations.transfer module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations.ungroup">lsmtool.operations.ungroup module</a></li> +<li class="toctree-l4"><a class="reference internal" href="lsmtool.operations.html#module-lsmtool.operations">Module contents</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="lsmtool.html#module-lsmtool.operations_lib">lsmtool.operations_lib module</a></li> +<li class="toctree-l2"><a class="reference internal" href="lsmtool.html#module-lsmtool.skymodel">lsmtool.skymodel module</a></li> +<li class="toctree-l2"><a class="reference internal" href="lsmtool.html#module-lsmtool.tableio">lsmtool.tableio module</a></li> +<li class="toctree-l2"><a class="reference internal" href="lsmtool.html#module-lsmtool">Module contents</a></li> +</ul> +</li> +</ul> +</div> +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/modules.txt" + rel="nofollow">Show Source</a></li> + </ul> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li><a href="index.html">LSMTool 1.0.0 documentation</a> »</li> + </ul> + </div> + <div class="footer"> + © Copyright 2014, David Rafferty. + Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2. + </div> + </body> +</html> \ No newline at end of file diff --git a/doc/build/html/objects.inv b/docs/build/html/objects.inv similarity index 100% rename from doc/build/html/objects.inv rename to docs/build/html/objects.inv diff --git a/docs/build/html/overview.html b/docs/build/html/overview.html new file mode 100644 index 0000000000000000000000000000000000000000..f59a1659e8f6e9bdd83e71d6e1fe2ba1a6eeb98d --- /dev/null +++ b/docs/build/html/overview.html @@ -0,0 +1,459 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>LSMTool: the LOFAR Local Sky Model Tool — LSMTool 1.0.0 documentation</title> + + <link rel="stylesheet" href="_static/default.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: './', + VERSION: '1.0.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + <link rel="top" title="LSMTool 1.0.0 documentation" href="index.html" /> + <link rel="next" title="LSMTool Module Documentation" href="lsmtool.html" /> + <link rel="prev" title="Welcome to LSMTool’s documentation!" href="index.html" /> + </head> + <body> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li class="right" > + <a href="lsmtool.html" title="LSMTool Module Documentation" + accesskey="N">next</a> |</li> + <li class="right" > + <a href="index.html" title="Welcome to LSMTool’s documentation!" + accesskey="P">previous</a> |</li> + <li><a href="index.html">LSMTool 1.0.0 documentation</a> »</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="lsmtool-the-lofar-local-sky-model-tool"> +<h1>LSMTool: the LOFAR Local Sky Model Tool<a class="headerlink" href="#lsmtool-the-lofar-local-sky-model-tool" title="Permalink to this headline">¶</a></h1> +<p>LSMTool is a Python package which allows for the manipulation of sky +models in the <tt class="docutils literal"><span class="pre">makesourcedb</span></tt> format (understood by BBS and NDPPP). +Note that LSMTool is still in beta. Please report bugs to +<a class="reference external" href="mailto:drafferty%40hs.uni-hamburg.de">drafferty<span>@</span>hs<span>.</span>uni-hamburg<span>.</span>de</a>. To initialize your environment for LSMTool, +users on CEP1 and CEP2 should run the following commands:</p> +<div class="highlight-python"><div class="highlight"><pre>use LofIm +source ~rafferty/init_lsmtool +</pre></div> +</div> +<p>Note that the Pythonlibs LOFAR package includes an older version of +astropy that conflicts with LSMTool and cannot be used in conjunction +with it.</p> +<div class="section" id="usage"> +<h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2> +<p>The command-line version of LSMTool can be run as follows:</p> +<div class="highlight-python"><div class="highlight"><pre>Usage: lsmtool.py <skymodel> <parset> [<beam MS>] +Options: + --version show program's version number and exit + -h, --help show this help message and exit + -q Quiet + -v Verbose +</pre></div> +</div> +<p>The parset specifies the operations to perform and their parameters. +These are described in the next sections.</p> +</div> +<div class="section" id="operations"> +<span id="operations-defined"></span><h2>Operations<a class="headerlink" href="#operations" title="Permalink to this headline">¶</a></h2> +<p>These are the operations that LSMTool can perform:</p> +<dl class="docutils"> +<dt>SELECT</dt> +<dd>: Select sources by source or patch properties</dd> +<dt>REMOVE</dt> +<dd>: Remove sources by source or patch properties</dd> +<dt>TRANSFER</dt> +<dd>: Transfer a patch scheme from one sky model to another</dd> +<dt>GROUP</dt> +<dd>: Group sources into patches</dd> +<dt>UNGROUP</dt> +<dd>: Remove patches</dd> +<dt>MOVE</dt> +<dd>: Move a source or patch position</dd> +<dt>MERGE</dt> +<dd>: Merge two or more patches into one</dd> +<dt>CONCATENATE</dt> +<dd>: Concatenate two sky models</dd> +<dt>ADD</dt> +<dd>: Add a source</dd> +<dt>SETPATCHPOSITIONS</dt> +<dd>: Calculate and set patch positions</dd> +<dt>PLOT</dt> +<dd>: Plot a simple representation of the sky model</dd> +</dl> +</div> +<div class="section" id="example-parset"> +<h2>Example parset<a class="headerlink" href="#example-parset" title="Permalink to this headline">¶</a></h2> +<p>This is an example parset that filters on the flux, adds a source, and +then groups the sources into patches:</p> +<div class="highlight-python"><div class="highlight"><pre>LSMTool.Steps = [selectbright, addsrc, grp, setpos] + +# Select only sources above 1 mJy +LSMTool.Steps.selectbright.Operation = SELECT +LSMTool.Steps.selectbright.FilterExpression = I > 1.0 mJy + +# Add a source +LSMTool.Steps.addsrc.Name = new_source +LSMTool.Steps.addsrc.Type = POINT +LSMTool.Steps.addsrc.Ra = 277.4232 +LSMTool.Steps.addsrc.Dec = 48.3689 +LSMTool.Steps.addsrc.I = 0.69 + +# Group using tessellation to a target flux of 50 Jy +LSMTool.Steps.grp.Operation = GROUP +LSMTool.Steps.grp.Algorithm = tessellate +LSMTool.Steps.grp.TargetFlux = 50.0 Jy +LSMTool.Steps.grp.Method = mid + +# Set the patch positions to their midpoint and write final skymodel +LSMTool.Steps.setpos.Method = mid +LSMTool.Steps.setpos.Outfile = grouped.sky +</pre></div> +</div> +<p>In the first line of this parset the step names are defined. In the next +sections, the step parameters for every step are defined. Steps are +applied sequentially, in the same order defined in the list of steps. A +list of step-specific parameters is given in +Table [lsmtool:tab:local<sub>v</sub>al].</p> +<table border="1" class="docutils"> +<colgroup> +<col width="17%" /> +<col width="15%" /> +<col width="14%" /> +<col width="54%" /> +</colgroup> +<thead valign="bottom"> +<tr class="row-odd"><th class="head">Var Name</th> +<th class="head">Format</th> +<th class="head">Example</th> +<th class="head">Comment</th> +</tr> +</thead> +<tbody valign="top"> +<tr class="row-even"><td>Operation</td> +<td>string</td> +<td>SELECT</td> +<td>An operation name (see <a class="reference internal" href="#operations-defined"><em>Operations</em></a>)</td> +</tr> +<tr class="row-odd"><td>OutFile</td> +<td>string</td> +<td>out.sky</td> +<td>Name of output file</td> +</tr> +<tr class="row-even"><td colspan="4"><strong>SELECT and REMOVE</strong></td> +</tr> +<tr class="row-odd"><td>FilterExpression</td> +<td>string</td> +<td>I > 10.0 Jy</td> +<td>Filter for selection</td> +</tr> +<tr class="row-even"><td>Aggregate</td> +<td>bool</td> +<td>False</td> +<td>Filter by aggregated patch property</td> +</tr> +<tr class="row-odd"><td>ApplyBeam</td> +<td>bool</td> +<td>True</td> +<td>If true, apparent fluxes will be used</td> +</tr> +<tr class="row-even"><td colspan="4"><strong>TRANSFER</strong></td> +</tr> +<tr class="row-odd"><td>PatchFile</td> +<td>string</td> +<td>patches.sky</td> +<td>File with patches that will be transferred</td> +</tr> +<tr class="row-even"><td colspan="4"><strong>GROUP</strong></td> +</tr> +<tr class="row-odd"><td>Algorithm</td> +<td>string</td> +<td>tessellate</td> +<td>One of tessellate, cluster, single, every</td> +</tr> +<tr class="row-even"><td>TargetFlux</td> +<td>string</td> +<td>10.0 Jy</td> +<td>Target total flux of patches (tessellate only)</td> +</tr> +<tr class="row-odd"><td>NumClusters</td> +<td>int</td> +<td>100</td> +<td>Number of clusters (cluster only)</td> +</tr> +<tr class="row-even"><td>ApplyBeam</td> +<td>bool</td> +<td>True</td> +<td>If true, apparent fluxes will be used</td> +</tr> +<tr class="row-odd"><td colspan="4"><strong>UNGROUP</strong></td> +</tr> +<tr class="row-even"><td colspan="4"><strong>MOVE</strong></td> +</tr> +<tr class="row-odd"><td>Name</td> +<td>string</td> +<td>src1</td> +<td>Name of source or patch to move</td> +</tr> +<tr class="row-even"><td>Position</td> +<td>list of floats</td> +<td>[12.3, 23.4]</td> +<td>RA and Dec in degrees to move to</td> +</tr> +<tr class="row-odd"><td>Shift</td> +<td>list of floats</td> +<td>[0.001, 0.0]</td> +<td>RA and Dec in degrees to shift by</td> +</tr> +<tr class="row-even"><td colspan="4"><strong>MERGE</strong></td> +</tr> +<tr class="row-odd"><td>Patches</td> +<td>list of strings</td> +<td>[bin1, bin2]</td> +<td>Patch names to merge</td> +</tr> +<tr class="row-even"><td>Name</td> +<td>string</td> +<td>merged_patch</td> +<td>Name of new merged patch</td> +</tr> +<tr class="row-odd"><td colspan="4"><strong>SETPATCHPOSITIONS</strong></td> +</tr> +<tr class="row-even"><td>Method</td> +<td>string</td> +<td>mid</td> +<td>Set patch positions to mid, mean, or wmean positions</td> +</tr> +<tr class="row-odd"><td colspan="4"><strong>CONCATENATE</strong></td> +</tr> +<tr class="row-even"><td>Skymodel2</td> +<td>string</td> +<td>in2.sky</td> +<td>Name of sky model to concatenate</td> +</tr> +<tr class="row-odd"><td>MatchBy</td> +<td>string</td> +<td>position</td> +<td>Identify duplicates by position or name</td> +</tr> +<tr class="row-even"><td>Radius</td> +<td>string</td> +<td>30 arcsec</td> +<td>Radius within which matches are identified</td> +</tr> +<tr class="row-odd"><td>Keep</td> +<td>string</td> +<td>all</td> +<td>If two sources match, keep: all, from1, or from2</td> +</tr> +<tr class="row-even"><td colspan="4"><strong>ADD</strong></td> +</tr> +<tr class="row-odd"><td>Name</td> +<td>string</td> +<td>src1</td> +<td>Name of source; required</td> +</tr> +<tr class="row-even"><td>Type</td> +<td>string</td> +<td>POINT</td> +<td>Type; required</td> +</tr> +<tr class="row-odd"><td>Patch</td> +<td>string</td> +<td>new_patch</td> +<td>Patch name; required if sky model has patches</td> +</tr> +<tr class="row-even"><td>RA</td> +<td>float or string</td> +<td>12:45:30.4</td> +<td>RA; required</td> +</tr> +<tr class="row-odd"><td>Dec</td> +<td>float or string</td> +<td>+76.45.02.48</td> +<td>Dec; required</td> +</tr> +<tr class="row-even"><td>I</td> +<td>float</td> +<td>0.69</td> +<td>Flux in Jy; required</td> +</tr> +<tr class="row-odd"><td>AnyValidColumnName</td> +<td> </td> +<td>value</td> +<td>Any valid column name can be specified</td> +</tr> +<tr class="row-even"><td colspan="4"><strong>PLOT</strong></td> +</tr> +</tbody> +</table> +</div> +<div class="section" id="interactive-use-and-scripting"> +<h2>Interactive use and scripting<a class="headerlink" href="#interactive-use-and-scripting" title="Permalink to this headline">¶</a></h2> +<p>LSMTool can also be used interactively (in IPython, for example) or in +Python scripts without the need for a parset. To use LSMTool in a Python +script or interpreter, import it as follows:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">import</span> <span class="nn">lsmtool</span> +</pre></div> +</div> +<p>A sky model can then be loaded with, e.g.:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span> <span class="o">=</span> <span class="n">lsmtool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">'skymodel.sky'</span><span class="p">)</span> +</pre></div> +</div> +<p>All of the operations described in Section [lsmtool:operations] are +available as methods of the resulting sky model object (with the same +name as the corresponding operation). For example, the following +commands with duplicate the steps done in the example parset given in +Section [lsmtool:parset]:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s">'I > 1.0 mJy'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">add</span><span class="p">({</span><span class="s">'Name'</span><span class="p">:</span><span class="s">'new_source'</span><span class="p">,</span> <span class="s">'Type'</span><span class="p">:</span><span class="s">'POINT'</span><span class="p">,</span> <span class="s">'Ra'</span><span class="p">:</span><span class="mf">277.4232</span><span class="p">,</span> <span class="s">'Dec'</span><span class="p">:</span><span class="mf">48.3689</span><span class="p">,</span> <span class="s">'I'</span><span class="p">:</span><span class="mf">0.69</span><span class="p">})</span> +<span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="n">algorithm</span><span class="o">=</span><span class="s">'tesselate'</span><span class="p">,</span> <span class="n">targetFlux</span><span class="o">=</span><span class="s">'10.0 Jy'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">setPatchPositions</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s">'mid'</span><span class="p">)</span> +</pre></div> +</div> +<p>In many cases, the methods accept parameters with the same names as +those used in a parset (see the full documentation for details). The sky +model can then written to a new file with:</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'grouped.sky'</span><span class="p">)</span> +</pre></div> +</div> +<p>Additionally, sky models can be written out as ds9 region files and kvis +annotation files (as well as all the formats supported by the +astropy.table package, such at VOTable, HDF5, and FITS):</p> +<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'outskymodel.reg'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">'ds9'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'outskymodel.ann'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">'kvis'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'outskymodel.fits'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">'fits'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'outskymodel.hdf5'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">'hdf5'</span><span class="p">)</span> +<span class="gp">>>> </span><span class="n">LSM</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'outskymodel.vo'</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">'votable'</span><span class="p">)</span> +</pre></div> +</div> +<p>In addition to the operations described above, a number of other methods +are available:</p> +<dl class="docutils"> +<dt>LSM.copy()</dt> +<dd>: Return a copy of the sky model object</dd> +<dt>LSM.info()</dt> +<dd>: Print information about the sky model</dd> +<dt>LSM.more()</dt> +<dd>: Print the sky model to the screen, using more-like controls</dd> +<dt>LSM.getColNames()</dt> +<dd>: Returns a list of the column names in the sky model</dd> +<dt>LSM.getColValues()</dt> +<dd>: Returns a numpy array of column values</dd> +<dt>LSM.getRowIndex()</dt> +<dd>: Returns the row index or indices for a source or patch</dd> +<dt>LSM.getRowValues()</dt> +<dd>: Returns a table or row for a source or patch</dd> +<dt>LSM.getPatchPositions()</dt> +<dd>: Returns patch RA and Dec values</dd> +<dt>LSM.getDefaltValues()</dt> +<dd>: Returns column default values</dd> +<dt>LSM.getPatchSizes()</dt> +<dd>: Returns an array of patch sizes</dd> +<dt>LSM.setColValues()</dt> +<dd>: Sets column values</dd> +<dt>LSM.setRowValues()</dt> +<dd>: Sets row values</dd> +<dt>LSM.setDefaultValues()</dt> +<dd>: Sets default column values</dd> +</dl> +<p>For details on these methods, please see the full module documentation.</p> +</div> +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">LSMTool: the LOFAR Local Sky Model Tool</a><ul> +<li><a class="reference internal" href="#usage">Usage</a></li> +<li><a class="reference internal" href="#operations">Operations</a></li> +<li><a class="reference internal" href="#example-parset">Example parset</a></li> +<li><a class="reference internal" href="#interactive-use-and-scripting">Interactive use and scripting</a></li> +</ul> +</li> +</ul> + + <h4>Previous topic</h4> + <p class="topless"><a href="index.html" + title="previous chapter">Welcome to LSMTool’s documentation!</a></p> + <h4>Next topic</h4> + <p class="topless"><a href="lsmtool.html" + title="next chapter">LSMTool Module Documentation</a></p> + <h3>This Page</h3> + <ul class="this-page-menu"> + <li><a href="_sources/overview.txt" + rel="nofollow">Show Source</a></li> + </ul> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li class="right" > + <a href="lsmtool.html" title="LSMTool Module Documentation" + >next</a> |</li> + <li class="right" > + <a href="index.html" title="Welcome to LSMTool’s documentation!" + >previous</a> |</li> + <li><a href="index.html">LSMTool 1.0.0 documentation</a> »</li> + </ul> + </div> + <div class="footer"> + © Copyright 2014, David Rafferty. + Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2. + </div> + </body> +</html> \ No newline at end of file diff --git a/doc/build/html/py-modindex.html b/docs/build/html/py-modindex.html similarity index 100% rename from doc/build/html/py-modindex.html rename to docs/build/html/py-modindex.html diff --git a/doc/build/html/search.html b/docs/build/html/search.html similarity index 100% rename from doc/build/html/search.html rename to docs/build/html/search.html diff --git a/doc/build/html/searchindex.js b/docs/build/html/searchindex.js similarity index 100% rename from doc/build/html/searchindex.js rename to docs/build/html/searchindex.js diff --git a/docs/build/latex/LSMTool.aux b/docs/build/latex/LSMTool.aux new file mode 100644 index 0000000000000000000000000000000000000000..37fa1d5d095136ffd0093360e0f12b19dfd0e09a --- /dev/null +++ b/docs/build/latex/LSMTool.aux @@ -0,0 +1,26 @@ +\relax +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\select@language{english} +\@writefile{toc}{\select@language{english}} +\@writefile{lof}{\select@language{english}} +\@writefile{lot}{\select@language{english}} +\newlabel{index::doc}{{}{1}{\relax }{section*.2}{}} +\@writefile{toc}{\contentsline {chapter}{\numberline {1}Indices and tables}{3}{chapter.1}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{index:welcome-to-lsmtool-s-documentation}{{1}{3}{Indices and tables\relax }{chapter.1}{}} +\newlabel{index:indices-and-tables}{{1}{3}{Indices and tables\relax }{chapter.1}{}} diff --git a/docs/build/latex/LSMTool.idx b/docs/build/latex/LSMTool.idx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/docs/build/latex/LSMTool.ilg b/docs/build/latex/LSMTool.ilg new file mode 100644 index 0000000000000000000000000000000000000000..aec3ed7994563ee27dbc8d1fc872e26cf897491b --- /dev/null +++ b/docs/build/latex/LSMTool.ilg @@ -0,0 +1,5 @@ +This is makeindex, version 2.15 [TeX Live 2012] (kpathsea + Thai support). +Scanning style file ./python.ist......done (6 attributes redefined, 0 ignored). +Scanning input file LSMTool.idx...done (0 entries accepted, 0 rejected). +Nothing written in LSMTool.ind. +Transcript written in LSMTool.ilg. diff --git a/docs/build/latex/LSMTool.ind b/docs/build/latex/LSMTool.ind new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/docs/build/latex/LSMTool.log b/docs/build/latex/LSMTool.log new file mode 100644 index 0000000000000000000000000000000000000000..c0e3bc077df066e5a5c6f732e591320686c5b105 --- /dev/null +++ b/docs/build/latex/LSMTool.log @@ -0,0 +1,970 @@ +This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012) (format=pdflatex 2012.8.22) 20 JUN 2014 09:47 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**LSMTool.tex +(./LSMTool.tex +LaTeX2e <2011/06/27> +Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge +rman-x-2012-05-30, ngerman-x-2012-05-30, afrikaans, ancientgreek, ibycus, arabi +c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis +h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis +h, french, friulan, galician, german, ngerman, swissgerman, monogreek, greek, h +ungarian, icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, ma +rathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, +kurmanji, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, + polish, portuguese, romanian, romansh, russian, sanskrit, serbian, serbianc, s +lovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, +welsh, loaded. +(./sphinxmanual.cls +Document Class: sphinxmanual 2009/06/02 Document class (Sphinx manual) +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/report.cls +Document Class: report 2007/10/19 v1.4h Standard LaTeX document class +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@chapter=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +)) +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2008/03/30 v1.1d Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/utf8.def +File: utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc +Now handling font encoding OML ... +... no UTF-8 mapping file for font encoding OML +Now handling font encoding T1 ... +... processing UTF-8 mapping file for font encoding T1 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/t1enc.dfu +File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A1 (decimal 161) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00AB (decimal 171) + defining Unicode char U+00BB (decimal 187) + defining Unicode char U+00BF (decimal 191) + defining Unicode char U+00C0 (decimal 192) + defining Unicode char U+00C1 (decimal 193) + defining Unicode char U+00C2 (decimal 194) + defining Unicode char U+00C3 (decimal 195) + defining Unicode char U+00C4 (decimal 196) + defining Unicode char U+00C5 (decimal 197) + defining Unicode char U+00C6 (decimal 198) + defining Unicode char U+00C7 (decimal 199) + defining Unicode char U+00C8 (decimal 200) + defining Unicode char U+00C9 (decimal 201) + defining Unicode char U+00CA (decimal 202) + defining Unicode char U+00CB (decimal 203) + defining Unicode char U+00CC (decimal 204) + defining Unicode char U+00CD (decimal 205) + defining Unicode char U+00CE (decimal 206) + defining Unicode char U+00CF (decimal 207) + defining Unicode char U+00D0 (decimal 208) + defining Unicode char U+00D1 (decimal 209) + defining Unicode char U+00D2 (decimal 210) + defining Unicode char U+00D3 (decimal 211) + defining Unicode char U+00D4 (decimal 212) + defining Unicode char U+00D5 (decimal 213) + defining Unicode char U+00D6 (decimal 214) + defining Unicode char U+00D8 (decimal 216) + defining Unicode char U+00D9 (decimal 217) + defining Unicode char U+00DA (decimal 218) + defining Unicode char U+00DB (decimal 219) + defining Unicode char U+00DC (decimal 220) + defining Unicode char U+00DD (decimal 221) + defining Unicode char U+00DE (decimal 222) + defining Unicode char U+00DF (decimal 223) + defining Unicode char U+00E0 (decimal 224) + defining Unicode char U+00E1 (decimal 225) + defining Unicode char U+00E2 (decimal 226) + defining Unicode char U+00E3 (decimal 227) + defining Unicode char U+00E4 (decimal 228) + defining Unicode char U+00E5 (decimal 229) + defining Unicode char U+00E6 (decimal 230) + defining Unicode char U+00E7 (decimal 231) + defining Unicode char U+00E8 (decimal 232) + defining Unicode char U+00E9 (decimal 233) + defining Unicode char U+00EA (decimal 234) + defining Unicode char U+00EB (decimal 235) + defining Unicode char U+00EC (decimal 236) + defining Unicode char U+00ED (decimal 237) + defining Unicode char U+00EE (decimal 238) + defining Unicode char U+00EF (decimal 239) + defining Unicode char U+00F0 (decimal 240) + defining Unicode char U+00F1 (decimal 241) + defining Unicode char U+00F2 (decimal 242) + defining Unicode char U+00F3 (decimal 243) + defining Unicode char U+00F4 (decimal 244) + defining Unicode char U+00F5 (decimal 245) + defining Unicode char U+00F6 (decimal 246) + defining Unicode char U+00F8 (decimal 248) + defining Unicode char U+00F9 (decimal 249) + defining Unicode char U+00FA (decimal 250) + defining Unicode char U+00FB (decimal 251) + defining Unicode char U+00FC (decimal 252) + defining Unicode char U+00FD (decimal 253) + defining Unicode char U+00FE (decimal 254) + defining Unicode char U+00FF (decimal 255) + defining Unicode char U+0102 (decimal 258) + defining Unicode char U+0103 (decimal 259) + defining Unicode char U+0104 (decimal 260) + defining Unicode char U+0105 (decimal 261) + defining Unicode char U+0106 (decimal 262) + defining Unicode char U+0107 (decimal 263) + defining Unicode char U+010C (decimal 268) + defining Unicode char U+010D (decimal 269) + defining Unicode char U+010E (decimal 270) + defining Unicode char U+010F (decimal 271) + defining Unicode char U+0110 (decimal 272) + defining Unicode char U+0111 (decimal 273) + defining Unicode char U+0118 (decimal 280) + defining Unicode char U+0119 (decimal 281) + defining Unicode char U+011A (decimal 282) + defining Unicode char U+011B (decimal 283) + defining Unicode char U+011E (decimal 286) + defining Unicode char U+011F (decimal 287) + defining Unicode char U+0130 (decimal 304) + defining Unicode char U+0131 (decimal 305) + defining Unicode char U+0132 (decimal 306) + defining Unicode char U+0133 (decimal 307) + defining Unicode char U+0139 (decimal 313) + defining Unicode char U+013A (decimal 314) + defining Unicode char U+013D (decimal 317) + defining Unicode char U+013E (decimal 318) + defining Unicode char U+0141 (decimal 321) + defining Unicode char U+0142 (decimal 322) + defining Unicode char U+0143 (decimal 323) + defining Unicode char U+0144 (decimal 324) + defining Unicode char U+0147 (decimal 327) + defining Unicode char U+0148 (decimal 328) + defining Unicode char U+014A (decimal 330) + defining Unicode char U+014B (decimal 331) + defining Unicode char U+0150 (decimal 336) + defining Unicode char U+0151 (decimal 337) + defining Unicode char U+0152 (decimal 338) + defining Unicode char U+0153 (decimal 339) + defining Unicode char U+0154 (decimal 340) + defining Unicode char U+0155 (decimal 341) + defining Unicode char U+0158 (decimal 344) + defining Unicode char U+0159 (decimal 345) + defining Unicode char U+015A (decimal 346) + defining Unicode char U+015B (decimal 347) + defining Unicode char U+015E (decimal 350) + defining Unicode char U+015F (decimal 351) + defining Unicode char U+0160 (decimal 352) + defining Unicode char U+0161 (decimal 353) + defining Unicode char U+0162 (decimal 354) + defining Unicode char U+0163 (decimal 355) + defining Unicode char U+0164 (decimal 356) + defining Unicode char U+0165 (decimal 357) + defining Unicode char U+016E (decimal 366) + defining Unicode char U+016F (decimal 367) + defining Unicode char U+0170 (decimal 368) + defining Unicode char U+0171 (decimal 369) + defining Unicode char U+0178 (decimal 376) + defining Unicode char U+0179 (decimal 377) + defining Unicode char U+017A (decimal 378) + defining Unicode char U+017B (decimal 379) + defining Unicode char U+017C (decimal 380) + defining Unicode char U+017D (decimal 381) + defining Unicode char U+017E (decimal 382) + defining Unicode char U+200C (decimal 8204) + defining Unicode char U+2013 (decimal 8211) + defining Unicode char U+2014 (decimal 8212) + defining Unicode char U+2018 (decimal 8216) + defining Unicode char U+2019 (decimal 8217) + defining Unicode char U+201A (decimal 8218) + defining Unicode char U+201C (decimal 8220) + defining Unicode char U+201D (decimal 8221) + defining Unicode char U+201E (decimal 8222) + defining Unicode char U+2030 (decimal 8240) + defining Unicode char U+2031 (decimal 8241) + defining Unicode char U+2039 (decimal 8249) + defining Unicode char U+203A (decimal 8250) + defining Unicode char U+2423 (decimal 9251) +) +Now handling font encoding OT1 ... +... processing UTF-8 mapping file for font encoding OT1 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/ot1enc.dfu +File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A1 (decimal 161) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00B8 (decimal 184) + defining Unicode char U+00BF (decimal 191) + defining Unicode char U+00C5 (decimal 197) + defining Unicode char U+00C6 (decimal 198) + defining Unicode char U+00D8 (decimal 216) + defining Unicode char U+00DF (decimal 223) + defining Unicode char U+00E6 (decimal 230) + defining Unicode char U+00EC (decimal 236) + defining Unicode char U+00ED (decimal 237) + defining Unicode char U+00EE (decimal 238) + defining Unicode char U+00EF (decimal 239) + defining Unicode char U+00F8 (decimal 248) + defining Unicode char U+0131 (decimal 305) + defining Unicode char U+0141 (decimal 321) + defining Unicode char U+0142 (decimal 322) + defining Unicode char U+0152 (decimal 338) + defining Unicode char U+0153 (decimal 339) + defining Unicode char U+2013 (decimal 8211) + defining Unicode char U+2014 (decimal 8212) + defining Unicode char U+2018 (decimal 8216) + defining Unicode char U+2019 (decimal 8217) + defining Unicode char U+201C (decimal 8220) + defining Unicode char U+201D (decimal 8221) +) +Now handling font encoding OMS ... +... processing UTF-8 mapping file for font encoding OMS + +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/omsenc.dfu +File: omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A7 (decimal 167) + defining Unicode char U+00B6 (decimal 182) + defining Unicode char U+00B7 (decimal 183) + defining Unicode char U+2020 (decimal 8224) + defining Unicode char U+2021 (decimal 8225) + defining Unicode char U+2022 (decimal 8226) +) +Now handling font encoding OMX ... +... no UTF-8 mapping file for font encoding OMX +Now handling font encoding U ... +... no UTF-8 mapping file for font encoding U + defining Unicode char U+00A9 (decimal 169) + defining Unicode char U+00AA (decimal 170) + defining Unicode char U+00AE (decimal 174) + defining Unicode char U+00BA (decimal 186) + defining Unicode char U+02C6 (decimal 710) + defining Unicode char U+02DC (decimal 732) + defining Unicode char U+200C (decimal 8204) + defining Unicode char U+2026 (decimal 8230) + defining Unicode char U+2122 (decimal 8482) + defining Unicode char U+2423 (decimal 9251) +)) + defining Unicode char U+00A0 (decimal 160) + +(/usr/local/texlive/2012/texmf-dist/tex/latex/cmap/cmap.sty +Package: cmap 2008/03/06 v1.0h CMap support: searchable PDF +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +)<<t1.cmap>>) +(/usr/local/texlive/2012/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2008/07/08 v3.8m The Babel package + +(/usr/local/texlive/2012/texmf-dist/tex/generic/babel/english.ldf +Language: english 2005/03/30 v3.3o English support from the babel system + +(/usr/local/texlive/2012/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2008/07/08 v3.8m Babel common definitions +\babel@savecnt=\count88 +\U@D=\dimen103 +) +\l@canadian = a dialect from \language\l@american +\l@australian = a dialect from \language\l@british +\l@newzealand = a dialect from \language\l@british +)) +(/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/times.sty +Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) +) (./fncychap.sty +Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters) +\RW=\skip43 +\mylen=\skip44 +\myhi=\skip45 +\px=\skip46 +\py=\skip47 +\pyy=\skip48 +\pxx=\skip49 +\c@AlphaCnt=\count89 +\c@AlphaDecCnt=\count90 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/tools/longtable.sty +Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC) +\LTleft=\skip50 +\LTright=\skip51 +\LTpre=\skip52 +\LTpost=\skip53 +\LTchunksize=\count91 +\LTcapwidth=\dimen104 +\LT@head=\box26 +\LT@firsthead=\box27 +\LT@foot=\box28 +\LT@lastfoot=\box29 +\LT@cols=\count92 +\LT@rows=\count93 +\c@LT@tables=\count94 +\c@LT@chunks=\count95 +\LT@p@ftn=\toks16 +) +(./sphinx.sty +Package: sphinx 2010/01/15 LaTeX package (Sphinx markup) + +(/usr/local/texlive/2012/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +\fancy@headwidth=\skip54 +\f@ncyO@elh=\skip55 +\f@ncyO@erh=\skip56 +\f@ncyO@olh=\skip57 +\f@ncyO@orh=\skip58 +\f@ncyO@elf=\skip59 +\f@ncyO@erf=\skip60 +\f@ncyO@olf=\skip61 +\f@ncyO@orf=\skip62 +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +Now handling font encoding TS1 ... +... processing UTF-8 mapping file for font encoding TS1 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/ts1enc.dfu +File: ts1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A2 (decimal 162) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00A4 (decimal 164) + defining Unicode char U+00A5 (decimal 165) + defining Unicode char U+00A6 (decimal 166) + defining Unicode char U+00A7 (decimal 167) + defining Unicode char U+00A8 (decimal 168) + defining Unicode char U+00A9 (decimal 169) + defining Unicode char U+00AA (decimal 170) + defining Unicode char U+00AC (decimal 172) + defining Unicode char U+00AE (decimal 174) + defining Unicode char U+00AF (decimal 175) + defining Unicode char U+00B0 (decimal 176) + defining Unicode char U+00B1 (decimal 177) + defining Unicode char U+00B2 (decimal 178) + defining Unicode char U+00B3 (decimal 179) + defining Unicode char U+00B4 (decimal 180) + defining Unicode char U+00B5 (decimal 181) + defining Unicode char U+00B6 (decimal 182) + defining Unicode char U+00B7 (decimal 183) + defining Unicode char U+00B9 (decimal 185) + defining Unicode char U+00BA (decimal 186) + defining Unicode char U+00BC (decimal 188) + defining Unicode char U+00BD (decimal 189) + defining Unicode char U+00BE (decimal 190) + defining Unicode char U+00D7 (decimal 215) + defining Unicode char U+00F7 (decimal 247) + defining Unicode char U+0192 (decimal 402) + defining Unicode char U+02C7 (decimal 711) + defining Unicode char U+02D8 (decimal 728) + defining Unicode char U+02DD (decimal 733) + defining Unicode char U+0E3F (decimal 3647) + defining Unicode char U+2016 (decimal 8214) + defining Unicode char U+2020 (decimal 8224) + defining Unicode char U+2021 (decimal 8225) + defining Unicode char U+2022 (decimal 8226) + defining Unicode char U+2030 (decimal 8240) + defining Unicode char U+2031 (decimal 8241) + defining Unicode char U+203B (decimal 8251) + defining Unicode char U+203D (decimal 8253) + defining Unicode char U+2044 (decimal 8260) + defining Unicode char U+204E (decimal 8270) + defining Unicode char U+2052 (decimal 8274) + defining Unicode char U+20A1 (decimal 8353) + defining Unicode char U+20A4 (decimal 8356) + defining Unicode char U+20A6 (decimal 8358) + defining Unicode char U+20A9 (decimal 8361) + defining Unicode char U+20AB (decimal 8363) + defining Unicode char U+20AC (decimal 8364) + defining Unicode char U+20B1 (decimal 8369) + defining Unicode char U+2103 (decimal 8451) + defining Unicode char U+2116 (decimal 8470) + defining Unicode char U+2117 (decimal 8471) + defining Unicode char U+211E (decimal 8478) + defining Unicode char U+2120 (decimal 8480) + defining Unicode char U+2122 (decimal 8482) + defining Unicode char U+2126 (decimal 8486) + defining Unicode char U+2127 (decimal 8487) + defining Unicode char U+212E (decimal 8494) + defining Unicode char U+2190 (decimal 8592) + defining Unicode char U+2191 (decimal 8593) + defining Unicode char U+2192 (decimal 8594) + defining Unicode char U+2193 (decimal 8595) + defining Unicode char U+2329 (decimal 9001) + defining Unicode char U+232A (decimal 9002) + defining Unicode char U+2422 (decimal 9250) + defining Unicode char U+25E6 (decimal 9702) + defining Unicode char U+25EF (decimal 9711) + defining Unicode char U+266A (decimal 9834) +)) +LaTeX Info: Redefining \oldstylenums on input line 266. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. +Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 311. +Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 312. +Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 313. +Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 314. +Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 315. +Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 316. +Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 317. +Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 318. +Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 319. +Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 320. +Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 321. +Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 322. +Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 323. +Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 324. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 325. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 326. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 327. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 328. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 329. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 330. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 331. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 332. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 333. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 334. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 335. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 336. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 337. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 338. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 339. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 340. +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/fancybox/fancybox.sty +Package: fancybox 2010/05/15 1.4 + +Style option: `fancybox' v1.4 <2010/05/15> (tvz) +\@fancybox=\box30 +\shadowsize=\dimen105 +\@Sbox=\box31 +\do@VerbBox=\toks17 +\the@fancyput=\toks18 +\this@fancyput=\toks19 +\EndVerbatimTokens=\toks20 +\Verbatim@Outfile=\write3 +\Verbatim@Infile=\read1 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/titlesec/titlesec.sty +Package: titlesec 2011/12/15 v2.10.0 Sectioning titles +\ttl@box=\box32 +\beforetitleunit=\skip63 +\aftertitleunit=\skip64 +\ttl@plus=\dimen106 +\ttl@minus=\dimen107 +\ttl@toksa=\toks21 +\titlewidth=\dimen108 +\titlewidthlast=\dimen109 +\titlewidthfirst=\dimen110 +) +(./tabulary.sty +Package: tabulary 2008/12/01 v0.9 tabulary package (DPC) + (/usr/local/texlive/2012/texmf-dist/tex/latex/tools/array.sty +Package: array 2008/09/09 v2.4c Tabular extension package (FMi) +\col@sep=\dimen111 +\extrarowheight=\dimen112 +\NC@list=\toks22 +\extratabsurround=\skip65 +\backup@length=\skip66 +) +\TY@count=\count96 +\TY@linewidth=\dimen113 +\tymin=\dimen114 +\tymax=\dimen115 +\TY@tablewidth=\dimen116 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip67 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks23 +\ex@=\dimen117 +)) +(/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen118 +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count97 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count98 +\leftroot@=\count99 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count100 +\DOTSCASE@=\count101 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box33 +\strutbox@=\box34 +\big@size=\dimen119 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count102 +\c@MaxMatrixCols=\count103 +\dotsspace@=\muskip10 +\c@parentequation=\count104 +\dspbrk@lvl=\count105 +\tag@help=\toks24 +\row@=\count106 +\column@=\count107 +\maxfields@=\count108 +\andhelp@=\toks25 +\eqnshift@=\dimen120 +\alignsep@=\dimen121 +\tagshift@=\dimen122 +\tagwidth@=\dimen123 +\totwidth@=\dimen124 +\lineht@=\dimen125 +\@envbody=\toks26 +\multlinegap=\skip68 +\multlinetaggap=\skip69 +\mathdisplay@stack=\toks27 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/makeidx.sty +Package: makeidx 2000/03/29 v1.0m Standard LaTeX package +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/framed/framed.sty +Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks +\OuterFrameSep=\skip70 +\fb@frw=\dimen126 +\fb@frh=\dimen127 +\FrameRule=\dimen128 +\FrameSep=\dimen129 +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/color.sty +Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC) + +(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package color Info: Driver file: pdftex.def on input line 130. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX + +(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +) +(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +) +\Gread@gobject=\count109 +)) +(/usr/local/texlive/2012/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +Package: fancyvrb 2008/02/07 + +Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix +<2008/02/07> (tvz) +(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks28 +) +\FV@CodeLineNo=\count110 +\FV@InFile=\read2 +\FV@TabBox=\box35 +\c@FancyVerbLine=\count111 +\FV@StepNumber=\count112 +\FV@OutFile=\write4 +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/threeparttable/threeparttable.sty +Package: threeparttable 2003/06/13 v 3.0 +\@tempboxb=\box36 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/mdwtools/footnote.sty +Package: footnote 1997/01/28 1.13 Save footnotes around boxes +\fn@notes=\box37 +\fn@width=\dimen130 +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/wrapfig/wrapfig.sty +\wrapoverhang=\dimen131 +\WF@size=\dimen132 +\c@WF@wrappedlines=\count113 +\WF@box=\box38 +\WF@everypar=\toks29 +Package: wrapfig 2003/01/31 v 3.6 +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/parskip/parskip.sty +Package: parskip 2001/04/09 non-zero parskip adjustments +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/alltt.sty +Package: alltt 1997/06/16 v2.0g defines alltt environment +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 91. +) +\Gin@req@height=\dimen133 +\Gin@req@width=\dimen134 +) +(/usr/local/texlive/2012/texmf-dist/tex/plain/misc/pdfcolor.tex) +\distancetoright=\skip71 +\py@argswidth=\skip72 +\py@noticelength=\skip73 +\lineblockindentation=\skip74 +\image@box=\box39 +\image@width=\dimen135 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2012/05/13 v6.82q Hypertext links for LaTeX + +(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) + + +(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) +Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package hobsub Info: Skipping package `ltxcmds' (already loaded). +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) +Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) +Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO +) +Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) +Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) +Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) +Package: xcolor-patch 2011/01/30 xcolor patch +Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) +Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) +Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) +) +(/usr/local/texlive/2012/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) +) +\@linkdim=\dimen136 +\Hy@linkcounter=\count114 +\Hy@pagecounter=\count115 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2012/05/13 v6.82q Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +\Hy@SavedSpaceFactor=\count116 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Option `colorlinks' set `true' on input line 3941. +Package hyperref Info: Option `breaklinks' set `true' on input line 3941. +Package hyperref Info: Hyper figures OFF on input line 4062. +Package hyperref Info: Link nesting OFF on input line 4067. +Package hyperref Info: Hyper index ON on input line 4070. +Package hyperref Info: Plain pages OFF on input line 4077. +Package hyperref Info: Backreferencing OFF on input line 4082. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4300. +\c@Hy@tempcnt=\count117 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4653. +\Fld@menulength=\count118 +\Field@Width=\dimen137 +\Fld@charsize=\dimen138 +Package hyperref Info: Hyper figures OFF on input line 5773. +Package hyperref Info: Link nesting OFF on input line 5778. +Package hyperref Info: Hyper index ON on input line 5781. +Package hyperref Info: backreferencing OFF on input line 5788. +Package hyperref Info: Link coloring ON on input line 5791. +Package hyperref Info: Link coloring with OCG OFF on input line 5798. +Package hyperref Info: PDF/A mode OFF on input line 5803. +LaTeX Info: Redefining \ref on input line 5843. +LaTeX Info: Redefining \pageref on input line 5847. +\Hy@abspage=\count119 +\c@Item=\count120 +\c@Hfootnote=\count121 +) + +Package hyperref Message: Driver (autodetected): hpdftex. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2012/05/13 v6.82q Hyperref driver for pdfTeX +\Fld@listcount=\count122 +\c@bookmark@seq@number=\count123 + +(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip75 +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/hypcap.sty +Package: hypcap 2011/02/16 v1.11 Adjusting the anchors of captions (HO) +) +\DUlineblockindent=\skip76 +) +(/usr/local/texlive/2012/texmf-dist/tex/latex/multirow/multirow.sty +\bigstrutjot=\dimen139 +) +\@indexfile=\write5 +\openout5 = `LSMTool.idx'. + + +Writing index file LSMTool.idx +(./LSMTool.aux) +\openout1 = `LSMTool.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 117. +LaTeX Font Info: ... okay on input line 117. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 117. +LaTeX Font Info: ... okay on input line 117. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 117. +LaTeX Font Info: ... okay on input line 117. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 117. +LaTeX Font Info: ... okay on input line 117. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 117. +LaTeX Font Info: ... okay on input line 117. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 117. +LaTeX Font Info: ... okay on input line 117. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 117. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 117. + + (/usr/local/texlive/2012/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 117. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 117. +LaTeX Font Info: ... okay on input line 117. +LaTeX Font Info: Try loading font information for T1+ptm on input line 117. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/t1ptm.fd +File: t1ptm.fd 2001/06/04 font definitions for T1/ptm. +) +(/usr/local/texlive/2012/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count124 +\scratchdimen=\dimen140 +\scratchbox=\box40 +\nofMPsegments=\count125 +\nofMParguments=\count126 +\everyMPshowfont=\toks30 +\MPscratchCnt=\count127 +\MPscratchDim=\dimen141 +\MPnumerator=\count128 +\makeMPintoPDFobject=\count129 +\everyMPtoPDFconversion=\toks31 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf + +(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) +) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 452. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +\AtBeginShipoutBox=\box41 +Package hyperref Info: Link coloring ON on input line 117. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2010/04/30 v2.40 Cross-referencing by name of section + +(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) +) +\c@section@level=\count130 +) +LaTeX Info: Redefining \ref on input line 117. +LaTeX Info: Redefining \pageref on input line 117. +LaTeX Info: Redefining \nameref on input line 117. + +(./LSMTool.out) (./LSMTool.out) +\@outlinefile=\write6 +\openout6 = `LSMTool.out'. + + +Underfull \hbox (badness 10000) in paragraph at lines 120--120 + + [] + +LaTeX Font Info: Try loading font information for T1+phv on input line 120. +(/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/t1phv.fd +File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv. +) +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <24.88> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 120. +LaTeX Font Info: Font shape `T1/phv/m/it' in size <17.28> not available +(Font) Font shape `T1/phv/m/sl' tried instead on input line 120. +LaTeX Font Info: Font shape `T1/phv/bx/it' in size <17.28> not available +(Font) Font shape `T1/phv/b/it' tried instead on input line 120. +LaTeX Font Info: Font shape `T1/phv/b/it' in size <17.28> not available +(Font) Font shape `T1/phv/b/sl' tried instead on input line 120. +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <17.28> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 120. +<<ot1.cmap>><<oml.cmap>><<oms.cmap>><<omx.cmap>> [1 + +{/usr/local/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2 + +] (./LSMTool.toc +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 2. +) +\tf@toc=\write7 +\openout7 = `LSMTool.toc'. + + +Adding blank page after the table of contents. +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <10> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 120. +[1 + +] [2] +LaTeX Font Info: Try loading font information for T1+pcr on input line 124. + (/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/t1pcr.fd +File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. +) [1 + +] +[2 + +] +Chapter 1. +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <14.4> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 134. +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <14.4> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 134. +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <24.88> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 134. +LaTeX Font Info: Try loading font information for TS1+ptm on input line 136. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/psnfss/ts1ptm.fd +File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm. +) (./LSMTool.ind) +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 151. +[3] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 151. + (./LSMTool.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 151. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 151. +Package rerunfilecheck Info: File `LSMTool.out' has not changed. +(rerunfilecheck) Checksum: 5E06C21BA6849DEE166C18CC332EB8AA;53. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 151. + ) +Here is how much of TeX's memory you used: + 8838 strings out of 493488 + 122872 string characters out of 3141326 + 211356 words of memory out of 3000000 + 11899 multiletter control sequences out of 15000+200000 + 50602 words of font info for 58 fonts, out of 3000000 for 9000 + 958 hyphenation exceptions out of 8191 + 36i,11n,45p,407b,382s stack positions out of 5000i,500n,10000p,200000b,50000s +{/usr/local/texlive/2012/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/local/t +exlive/2012/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb></usr/local/texlive/2 +012/texmf-dist/fonts/type1/urw/helvetic/uhvb8a.pfb></usr/local/texlive/2012/tex +mf-dist/fonts/type1/urw/helvetic/uhvbo8a.pfb></usr/local/texlive/2012/texmf-dis +t/fonts/type1/urw/times/utmb8a.pfb></usr/local/texlive/2012/texmf-dist/fonts/ty +pe1/urw/times/utmr8a.pfb></usr/local/texlive/2012/texmf-dist/fonts/type1/urw/ti +mes/utmri8a.pfb> +Output written on LSMTool.pdf (7 pages, 64937 bytes). +PDF statistics: + 79 PDF objects out of 1000 (max. 8388607) + 58 compressed objects within 1 object stream + 11 named destinations out of 1000 (max. 500000) + 29 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/docs/build/latex/LSMTool.out b/docs/build/latex/LSMTool.out new file mode 100644 index 0000000000000000000000000000000000000000..d4721b5f49fe95a6bdf91ee870634bbbe787733a --- /dev/null +++ b/docs/build/latex/LSMTool.out @@ -0,0 +1 @@ +\BOOKMARK [0][-]{chapter.1}{Indices and tables}{}% 1 diff --git a/docs/build/latex/LSMTool.pdf b/docs/build/latex/LSMTool.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5b4d48be3d63b8113a14fa02e85833b0a7ddf471 Binary files /dev/null and b/docs/build/latex/LSMTool.pdf differ diff --git a/docs/build/latex/LSMTool.tex b/docs/build/latex/LSMTool.tex new file mode 100644 index 0000000000000000000000000000000000000000..4aedb0b7afbee30a70eb9074d036f7bfa949b9b3 --- /dev/null +++ b/docs/build/latex/LSMTool.tex @@ -0,0 +1,151 @@ +% Generated by Sphinx. +\def\sphinxdocclass{report} +\documentclass[letterpaper,10pt,english]{sphinxmanual} +\usepackage[utf8]{inputenc} +\DeclareUnicodeCharacter{00A0}{\nobreakspace} +\usepackage{cmap} +\usepackage[T1]{fontenc} +\usepackage{babel} +\usepackage{times} +\usepackage[Bjarne]{fncychap} +\usepackage{longtable} +\usepackage{sphinx} +\usepackage{multirow} + + +\title{LSMTool Documentation} +\date{June 20, 2014} +\release{1.0.0} +\author{David Rafferty} +\newcommand{\sphinxlogo}{} +\renewcommand{\releasename}{Release} +\makeindex + +\makeatletter +\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% + \let\PYG@ul=\relax \let\PYG@tc=\relax% + \let\PYG@bc=\relax \let\PYG@ff=\relax} +\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} +\def\PYG@toks#1+{\ifx\relax#1\empty\else% + \PYG@tok{#1}\expandafter\PYG@toks\fi} +\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% + \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} +\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} + +\expandafter\def\csname PYG@tok@gd\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYG@tok@gu\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYG@tok@gt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYG@tok@gs\endcsname{\let\PYG@bf=\textbf} +\expandafter\def\csname PYG@tok@gr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYG@tok@cm\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\expandafter\def\csname PYG@tok@vg\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\expandafter\def\csname PYG@tok@m\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@mh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@cs\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\colorbox[rgb]{1.00,0.94,0.94}{\strut ##1}}} +\expandafter\def\csname PYG@tok@ge\endcsname{\let\PYG@it=\textit} +\expandafter\def\csname PYG@tok@vc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\expandafter\def\csname PYG@tok@il\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@go\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}} +\expandafter\def\csname PYG@tok@cp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@gi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYG@tok@gh\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYG@tok@ni\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}} +\expandafter\def\csname PYG@tok@nl\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}} +\expandafter\def\csname PYG@tok@nn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} +\expandafter\def\csname PYG@tok@no\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}} +\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@nc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} +\expandafter\def\csname PYG@tok@nd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}} +\expandafter\def\csname PYG@tok@ne\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@nf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}} +\expandafter\def\csname PYG@tok@si\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}} +\expandafter\def\csname PYG@tok@s2\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@vi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\expandafter\def\csname PYG@tok@nt\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}} +\expandafter\def\csname PYG@tok@nv\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\expandafter\def\csname PYG@tok@s1\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@gp\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} +\expandafter\def\csname PYG@tok@sh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@ow\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@sx\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} +\expandafter\def\csname PYG@tok@bp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@c1\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\expandafter\def\csname PYG@tok@kc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@c\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\expandafter\def\csname PYG@tok@mf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@err\endcsname{\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYG@tok@kd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@ss\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}} +\expandafter\def\csname PYG@tok@sr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}} +\expandafter\def\csname PYG@tok@mo\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@mi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@kn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@o\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYG@tok@kr\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@s\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@kp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@w\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYG@tok@kt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}} +\expandafter\def\csname PYG@tok@sc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@sb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@k\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@se\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@sd\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} + +\def\PYGZbs{\char`\\} +\def\PYGZus{\char`\_} +\def\PYGZob{\char`\{} +\def\PYGZcb{\char`\}} +\def\PYGZca{\char`\^} +\def\PYGZam{\char`\&} +\def\PYGZlt{\char`\<} +\def\PYGZgt{\char`\>} +\def\PYGZsh{\char`\#} +\def\PYGZpc{\char`\%} +\def\PYGZdl{\char`\$} +\def\PYGZhy{\char`\-} +\def\PYGZsq{\char`\'} +\def\PYGZdq{\char`\"} +\def\PYGZti{\char`\~} +% for compatibility with earlier versions +\def\PYGZat{@} +\def\PYGZlb{[} +\def\PYGZrb{]} +\makeatother + +\begin{document} + +\maketitle +\tableofcontents +\phantomsection\label{index::doc} + + +LSMTool is a Python package which allow the manipulation of sky models in the \code{makesourcedb} format understood by BBS. Note that LSMTool is still in beta. Please report bugs to \code{drafferty@hs.uni-hamburg.de}. To initialize your environment for LSMTool, users on CEP1 and CEP2 should run the following commands: + +\begin{Verbatim}[commandchars=\\\{\}] +use LofIm +source \PYGZti{}rafferty/init\PYGZus{}lsmtool +\end{Verbatim} + +Note that the Pythonlibs LOFAR package includes an older version of astropy that conflicts with LSMTool and cannot be used in conjunction with it. + + +\chapter{Indices and tables} +\label{index:welcome-to-lsmtool-s-documentation}\label{index:indices-and-tables}\begin{itemize} +\item {} +\emph{genindex} + +\item {} +\emph{modindex} + +\item {} +\emph{search} + +\end{itemize} + + + +\renewcommand{\indexname}{Index} +\printindex +\end{document} diff --git a/docs/build/latex/LSMTool.toc b/docs/build/latex/LSMTool.toc new file mode 100644 index 0000000000000000000000000000000000000000..6d091978bed213ec5a250dea105579bad056fa75 --- /dev/null +++ b/docs/build/latex/LSMTool.toc @@ -0,0 +1,2 @@ +\select@language {english} +\contentsline {chapter}{\numberline {1}Indices and tables}{3}{chapter.1} diff --git a/docs/build/latex/Makefile b/docs/build/latex/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..6b87ad8814ccb4cbe23593049f8a909d38a1c9e3 --- /dev/null +++ b/docs/build/latex/Makefile @@ -0,0 +1,66 @@ +# Makefile for Sphinx LaTeX output + +ALLDOCS = $(basename $(wildcard *.tex)) +ALLPDF = $(addsuffix .pdf,$(ALLDOCS)) +ALLDVI = $(addsuffix .dvi,$(ALLDOCS)) + +# Prefix for archive names +ARCHIVEPRREFIX = +# Additional LaTeX options +LATEXOPTS = + +all: $(ALLPDF) +all-pdf: $(ALLPDF) +all-dvi: $(ALLDVI) +all-ps: all-dvi + for f in *.dvi; do dvips $$f; done + +all-pdf-ja: + for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + -for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + for f in *.dvi; do dvipdfmx $$f; done + +zip: all-$(FMT) + mkdir $(ARCHIVEPREFIX)docs-$(FMT) + cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT) + zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT) + rm -r $(ARCHIVEPREFIX)docs-$(FMT) + +tar: all-$(FMT) + mkdir $(ARCHIVEPREFIX)docs-$(FMT) + cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT) + tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT) + rm -r $(ARCHIVEPREFIX)docs-$(FMT) + +bz2: tar + bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar + +# The number of LaTeX runs is quite conservative, but I don't expect it +# to get run often, so the little extra time won't hurt. +%.dvi: %.tex + latex $(LATEXOPTS) '$<' + latex $(LATEXOPTS) '$<' + latex $(LATEXOPTS) '$<' + -makeindex -s python.ist '$(basename $<).idx' + latex $(LATEXOPTS) '$<' + latex $(LATEXOPTS) '$<' + +%.pdf: %.tex + pdflatex $(LATEXOPTS) '$<' + pdflatex $(LATEXOPTS) '$<' + pdflatex $(LATEXOPTS) '$<' + -makeindex -s python.ist '$(basename $<).idx' + pdflatex $(LATEXOPTS) '$<' + pdflatex $(LATEXOPTS) '$<' + +clean: + rm -f *.dvi *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla + +.PHONY: all all-pdf all-dvi all-ps clean +.PHONY: all-pdf-ja + diff --git a/docs/build/latex/fncychap.sty b/docs/build/latex/fncychap.sty new file mode 100644 index 0000000000000000000000000000000000000000..9a56c04ed4223ce77e463eea87755151f5d4864c --- /dev/null +++ b/docs/build/latex/fncychap.sty @@ -0,0 +1,683 @@ +%%% Copyright Ulf A. Lindgren +%%% +%%% Note Premission is granted to modify this file under +%%% the condition that it is saved using another +%%% file and package name. +%%% +%%% Revision 1.1 (1997) +%%% +%%% Jan. 8th Modified package name base date option +%%% Jan. 22th Modified FmN and FmTi for error in book.cls +%%% \MakeUppercase{#}->{\MakeUppercase#} +%%% Apr. 6th Modified Lenny option to prevent undesired +%%% skip of line. +%%% Nov. 8th Fixed \@chapapp for AMS +%%% +%%% Revision 1.2 (1998) +%%% +%%% Feb. 11th Fixed appendix problem related to Bjarne +%%% Aug. 11th Fixed problem related to 11pt and 12pt +%%% suggested by Tomas Lundberg. THANKS! +%%% +%%% Revision 1.3 (2004) +%%% Sep. 20th problem with frontmatter, mainmatter and +%%% backmatter, pointed out by Lapo Mori +%%% +%%% Revision 1.31 (2004) +%%% Sep. 21th problem with the Rejne definition streched text +%%% caused ugly gaps in the vrule aligned with the title +%%% text. Kindly pointed out to me by Hendri Adriaens +%%% +%%% Revision 1.32 (2005) +%%% Jun. 23th compatibility problem with the KOMA class 'scrbook.cls' +%%% a remedy is a redefinition of '\@schapter' in +%%% line with that used in KOMA. The problem was pointed +%%% out to me by Mikkel Holm Olsen +%%% +%%% Revision 1.33 (2005) +%%% Aug. 9th misspelled ``TWELV'' corrected, the error was pointed +%%% out to me by George Pearson +%%% +%%% Revision 1.34 (2007) +%%% Added an alternative to Lenny provided by Peter +%%% Osborne (2005-11-28) +%%% Corrected front, main and back matter, based on input +%%% from Bas van Gils (2006-04-24) +%%% Jul. 30th Added Bjornstrup option provided by Jean-Marc +%%% Francois (2007-01-05). +%%% Reverted to \MakeUppercase{#} see rev 1.1, solved +%%% problem with MakeUppercase and MakeLowercase pointed +%%% out by Marco Feuerstein (2007-06-06) + + +%%% Last modified Jul. 2007 + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{fncychap} + [2007/07/30 v1.34 + LaTeX package (Revised chapters)] + +%%%% For conditional inclusion of color +\newif\ifusecolor +\usecolorfalse + + + +%%%% DEFINITION OF Chapapp variables +\newcommand{\CNV}{\huge\bfseries} +\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}} + + +%%%% DEFINITION OF TheChapter variables +\newcommand{\CNoV}{\huge\bfseries} +\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}} + +\newif\ifUCN +\UCNfalse +\newif\ifLCN +\LCNfalse +\def\ChNameLowerCase{\LCNtrue\UCNfalse} +\def\ChNameUpperCase{\UCNtrue\LCNfalse} +\def\ChNameAsIs{\UCNfalse\LCNfalse} + +%%%%% Fix for AMSBook 971008 + +\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{} + + +%%%%% Fix for Bjarne and appendix 980211 + +\newif\ifinapp +\inappfalse +\renewcommand\appendix{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \inapptrue% + \renewcommand\@chapapp{\appendixname}% + \renewcommand\thechapter{\@Alph\c@chapter}} + +%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 + +\@ifundefined{@mainmatter}{\newif\if@mainmatter \@mainmattertrue}{} + +%%%%% + + + +\newcommand{\FmN}[1]{% +\ifUCN + {\MakeUppercase{#1}}\LCNfalse +\else + \ifLCN + {\MakeLowercase{#1}}\UCNfalse + \else #1 + \fi +\fi} + + +%%%% DEFINITION OF Title variables +\newcommand{\CTV}{\Huge\bfseries} +\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}} + +%%%% DEFINITION OF the basic rule width +\newlength{\RW} +\setlength{\RW}{1pt} +\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}} + +\newif\ifUCT +\UCTfalse +\newif\ifLCT +\LCTfalse +\def\ChTitleLowerCase{\LCTtrue\UCTfalse} +\def\ChTitleUpperCase{\UCTtrue\LCTfalse} +\def\ChTitleAsIs{\UCTfalse\LCTfalse} +\newcommand{\FmTi}[1]{% +\ifUCT + {\MakeUppercase{#1}}\LCTfalse +\else + \ifLCT + {\MakeLowercase{#1}}\UCTfalse + \else {#1} + \fi +\fi} + + + +\newlength{\mylen} +\newlength{\myhi} +\newlength{\px} +\newlength{\py} +\newlength{\pyy} +\newlength{\pxx} + + +\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@} + +\newcommand{\DOCH}{% + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip 20\p@ + } +\newcommand{\DOTI}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } +\newcommand{\DOTIS}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } + +%%%%%% SONNY DEF + +\DeclareOption{Sonny}{% + \ChNameVar{\Large\sf} + \ChNumVar{\Huge} + \ChTitleVar{\Large\sf} + \ChRuleWidth{0.5pt} + \ChNameUpperCase + \renewcommand{\DOCH}{% + \raggedleft + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip 40\p@} + \renewcommand{\DOTI}[1]{% + \CTV\raggedleft\mghrulefill{\RW}\par\nobreak + \vskip 5\p@ + \CTV\FmTi{#1}\par\nobreak + \mghrulefill{\RW}\par\nobreak + \vskip 40\p@} + \renewcommand{\DOTIS}[1]{% + \CTV\raggedleft\mghrulefill{\RW}\par\nobreak + \vskip 5\p@ + \CTV\FmTi{#1}\par\nobreak + \mghrulefill{\RW}\par\nobreak + \vskip 40\p@} +} + +%%%%%% LENNY DEF + +\DeclareOption{Lenny}{% + + \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} + \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} + \ChTitleVar{\Huge\bfseries\rm} + \ChRuleWidth{1pt} + \renewcommand{\DOCH}{% + \settowidth{\px}{\CNV\FmN{\@chapapp}} + \addtolength{\px}{2pt} + \settoheight{\py}{\CNV\FmN{\@chapapp}} + \addtolength{\py}{1pt} + + \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} + \addtolength{\mylen}{1pt} + \settowidth{\pxx}{\CNoV\thechapter} + \addtolength{\pxx}{-1pt} + + \settoheight{\pyy}{\CNoV\thechapter} + \addtolength{\pyy}{-2pt} + \setlength{\myhi}{\pyy} + \addtolength{\myhi}{-1\py} + \par + \parbox[b]{\textwidth}{% + \rule[\py]{\RW}{\myhi}% + \hskip -\RW% + \rule[\pyy]{\px}{\RW}% + \hskip -\px% + \raggedright% + \CNV\FmN{\@chapapp}\space\CNoV\thechapter% + \hskip1pt% + \mghrulefill{\RW}% + \rule{\RW}{\pyy}\par\nobreak% + \vskip -\baselineskip% + \vskip -\pyy% + \hskip \mylen% + \mghrulefill{\RW}\par\nobreak% + \vskip \pyy}% + \vskip 20\p@} + + + \renewcommand{\DOTI}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + + \renewcommand{\DOTIS}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + +%%%%%% Peter Osbornes' version of LENNY DEF + +\DeclareOption{PetersLenny}{% + +% five new lengths +\newlength{\bl} % bottom left : orig \space +\setlength{\bl}{6pt} +\newcommand{\BL}[1]{\setlength{\bl}{#1}} +\newlength{\br} % bottom right : orig 1pt +\setlength{\br}{1pt} +\newcommand{\BR}[1]{\setlength{\br}{#1}} +\newlength{\tl} % top left : orig 2pt +\setlength{\tl}{2pt} +\newcommand{\TL}[1]{\setlength{\tl}{#1}} +\newlength{\trr} % top right :orig 1pt +\setlength{\trr}{1pt} +\newcommand{\TR}[1]{\setlength{\trr}{#1}} +\newlength{\blrule} % top right :orig 1pt +\setlength{\trr}{0pt} +\newcommand{\BLrule}[1]{\setlength{\blrule}{#1}} + + + \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} + \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} + \ChTitleVar{\Huge\bfseries\rm} + \ChRuleWidth{1pt} +\renewcommand{\DOCH}{% + + +%%%%%%% tweaks for 1--9 and A--Z +\ifcase\c@chapter\relax% +\or\BL{-3pt}\TL{-4pt}\BR{0pt}\TR{-6pt}%1 +\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%2 +\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%3 +\or\BL{0pt}\TL{5pt}\BR{2pt}\TR{-4pt}%4 +\or\BL{0pt}\TL{3pt}\BR{2pt}\TR{-4pt}%5 +\or\BL{-1pt}\TL{0pt}\BR{2pt}\TR{-2pt}%6 +\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%7 +\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%8 +\or\BL{0pt}\TL{-3pt}\BR{-4pt}\TR{-2pt}%9 +\or\BL{-3pt}\TL{-3pt}\BR{2pt}\TR{-7pt}%10 +\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%11 +\or\BL{-6pt}\TL{-6pt}\BR{2pt}\TR{-7pt}%12 +\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%13 +\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%14 +\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%15 +\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%16 +\or\BL{-5pt}\TL{-3pt}\BR{-8pt}\TR{-6pt}%17 +\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%18 +\or\BL{-3pt}\TL{-3pt}\BR{-6pt}\TR{-9pt}%19 +\or\BL{0pt}\TL{0pt}\BR{0pt}\TR{-5pt}%20 +\fi + +\ifinapp\ifcase\c@chapter\relax% +\or\BL{0pt}\TL{14pt}\BR{5pt}\TR{-19pt}%A +\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}%B +\or\BL{-3pt}\TL{-2pt}\BR{1pt}\TR{-6pt}\BLrule{0pt}%C +\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}\BLrule{0pt}%D +\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-3pt}%E +\or\BL{0pt}\TL{-5pt}\BR{-10pt}\TR{-1pt}%F +\or\BL{-3pt}\TL{0pt}\BR{0pt}\TR{-7pt}%G +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%H +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%I +\or\BL{2pt}\TL{0pt}\BR{-3pt}\TR{1pt}%J +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%K +\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-19pt}%L +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%M +\or\BL{0pt}\TL{-5pt}\BR{-2pt}\TR{-1pt}%N +\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%O +\or\BL{0pt}\TL{-5pt}\BR{-9pt}\TR{-3pt}%P +\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%Q +\or\BL{0pt}\TL{-5pt}\BR{4pt}\TR{-8pt}%R +\or\BL{-2pt}\TL{-2pt}\BR{-2pt}\TR{-7pt}%S +\or\BL{-3pt}\TL{0pt}\BR{-5pt}\TR{4pt}\BLrule{8pt}%T +\or\BL{-7pt}\TL{-11pt}\BR{-5pt}\TR{-7pt}\BLrule{0pt}%U +\or\BL{-14pt}\TL{-5pt}\BR{-14pt}\TR{-1pt}\BLrule{14pt}%V +\or\BL{-10pt}\TL{-9pt}\BR{-13pt}\TR{-3pt}\BLrule{7pt}%W +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%X +\or\BL{-6pt}\TL{-4pt}\BR{-7pt}\TR{1pt}\BLrule{7pt}%Y +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%Z +\fi\fi +%%%%%%% + \settowidth{\px}{\CNV\FmN{\@chapapp}} + \addtolength{\px}{\tl} %MOD change 2pt to \tl + \settoheight{\py}{\CNV\FmN{\@chapapp}} + \addtolength{\py}{1pt} + + \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} + \addtolength{\mylen}{\trr}% MOD change 1pt to \tr + \settowidth{\pxx}{\CNoV\thechapter} + \addtolength{\pxx}{-1pt} + + \settoheight{\pyy}{\CNoV\thechapter} + \addtolength{\pyy}{-2pt} + \setlength{\myhi}{\pyy} + \addtolength{\myhi}{-1\py} + \par + \parbox[b]{\textwidth}{% + \rule[\py]{\RW}{\myhi}% + \hskip -\RW% + \rule[\pyy]{\px}{\RW}% + \hskip -\px% + \raggedright% + \CNV\FmN{\@chapapp}\rule{\blrule}{\RW}\hskip\bl\CNoV\thechapter%MOD +% \CNV\FmN{\@chapapp}\space\CNoV\thechapter %ORIGINAL + \hskip\br% %MOD 1pt to \br + \mghrulefill{\RW}% + \rule{\RW}{\pyy}\par\nobreak% + \vskip -\baselineskip% + \vskip -\pyy% + \hskip \mylen% + \mghrulefill{\RW}\par\nobreak% + \vskip \pyy}% + \vskip 20\p@} + + + \renewcommand{\DOTI}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + + \renewcommand{\DOTIS}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + + +% + + +%%%%%% BJORNSTRUP DEF + +\DeclareOption{Bjornstrup}{% + \usecolortrue + % pzc (Zapf Chancelery) is nice. ppl (Palatino) is cool too. + \ChNumVar{\fontsize{76}{80}\usefont{OT1}{pzc}{m}{n}\selectfont} + \ChTitleVar{\raggedleft\Large\sffamily\bfseries} + + \setlength{\myhi}{10pt} % Space between grey box border and text + \setlength{\mylen}{\textwidth} + \addtolength{\mylen}{-2\myhi} + \renewcommand{\DOCH}{% + \settowidth{\py}{\CNoV\thechapter} + \addtolength{\py}{-10pt} % Amount of space by which the +% % number is shifted right + \fboxsep=0pt% + \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}% + \kern-\py\raise20pt% + \hbox{\color[gray]{.5}\CNoV\thechapter}\\% + } + + \renewcommand{\DOTI}[1]{% + \nointerlineskip\raggedright% + \fboxsep=\myhi% + \vskip-1ex% + \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% + \vskip 40\p@% + } + + \renewcommand{\DOTIS}[1]{% + \fboxsep=0pt + \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}\\% + \nointerlineskip\raggedright% + \fboxsep=\myhi% + \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% + \vskip 40\p@% + } +} + + +%%%%%%% GLENN DEF + + +\DeclareOption{Glenn}{% + \ChNameVar{\bfseries\Large\sf} + \ChNumVar{\Huge} + \ChTitleVar{\bfseries\Large\rm} + \ChRuleWidth{1pt} + \ChNameUpperCase + \ChTitleUpperCase + \renewcommand{\DOCH}{% + \settoheight{\myhi}{\CTV\FmTi{Test}} + \setlength{\py}{\baselineskip} + \addtolength{\py}{\RW} + \addtolength{\py}{\myhi} + \setlength{\pyy}{\py} + \addtolength{\pyy}{-1\RW} + + \raggedright + \CNV\FmN{\@chapapp}\space\CNoV\thechapter + \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak} + + \renewcommand{\DOTI}[1]{% + \addtolength{\pyy}{-4pt} + \settoheight{\myhi}{\CTV\FmTi{#1}} + \addtolength{\myhi}{\py} + \addtolength{\myhi}{-1\RW} + \vskip -1\pyy + \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt + \raggedleft\CTV\FmTi{#1}\par\nobreak + \vskip 80\p@} + +\newlength{\backskip} + \renewcommand{\DOTIS}[1]{% +% \setlength{\py}{10pt} +% \setlength{\pyy}{\py} +% \addtolength{\pyy}{\RW} +% \setlength{\myhi}{\baselineskip} +% \addtolength{\myhi}{\pyy} +% \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak +% \addtolength{}{} +%\vskip -1\baselineskip +% \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt +% \raggedleft\CTV\FmTi{#1}\par\nobreak +% \vskip 60\p@} +%% Fix suggested by Tomas Lundberg + \setlength{\py}{25pt} % eller vad man vill + \setlength{\pyy}{\py} + \setlength{\backskip}{\py} + \addtolength{\backskip}{2pt} + \addtolength{\pyy}{\RW} + \setlength{\myhi}{\baselineskip} + \addtolength{\myhi}{\pyy} + \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak + \vskip -1\backskip + \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 3pt % + \raggedleft\CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + +%%%%%%% CONNY DEF + +\DeclareOption{Conny}{% + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\centering\Huge\rm\bfseries} + \ChNumVar{\Huge} + \ChTitleVar{\centering\Huge\rm} + \ChRuleWidth{2pt} + + \renewcommand{\DOCH}{% + \mghrulefill{3\RW}\par\nobreak + \vskip -0.5\baselineskip + \mghrulefill{\RW}\par\nobreak + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip -0.5\baselineskip + } + \renewcommand{\DOTI}[1]{% + \mghrulefill{\RW}\par\nobreak + \CTV\FmTi{#1}\par\nobreak + \vskip 60\p@ + } + \renewcommand{\DOTIS}[1]{% + \mghrulefill{\RW}\par\nobreak + \CTV\FmTi{#1}\par\nobreak + \vskip 60\p@ + } + } + +%%%%%%% REJNE DEF + +\DeclareOption{Rejne}{% + + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\centering\Large\rm} + \ChNumVar{\Huge} + \ChTitleVar{\centering\Huge\rm} + \ChRuleWidth{1pt} + \renewcommand{\DOCH}{% + \settoheight{\py}{\CNoV\thechapter} + \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 + \addtolength{\py}{-1pt} + \CNV\FmN{\@chapapp}\par\nobreak + \vskip 20\p@ + \setlength{\myhi}{2\baselineskip} + \setlength{\px}{\myhi} + \addtolength{\px}{-1\RW} + \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip + 10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip 10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak + \vskip -3\p@% Added -2pt vskip to correct for streched text v1.31 + } + \renewcommand{\DOTI}[1]{% + \setlength{\mylen}{\textwidth} + \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 + \addtolength{\mylen}{-2\RW} + {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule width\RW}\par\nobreak% + \vskip -3pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}% + \vskip 60\p@% Added -2pt in vskip to correct for streched text v1.31 + } + \renewcommand{\DOTIS}[1]{% + \setlength{\py}{\fboxrule} + \setlength{\fboxrule}{\RW} + \setlength{\mylen}{\textwidth} + \addtolength{\mylen}{-2\RW} + \fbox{\parbox{\mylen}{\vskip 2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} + \setlength{\fboxrule}{\py} + \vskip 60\p@ + } + } + + +%%%%%%% BJARNE DEF + +\DeclareOption{Bjarne}{% + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\raggedleft\normalsize\rm} + \ChNumVar{\raggedleft \bfseries\Large} + \ChTitleVar{\raggedleft \Large\rm} + \ChRuleWidth{1pt} + + +%% Note thechapter -> c@chapter fix appendix bug +%% Fixed misspelled 12 + + \newcounter{AlphaCnt} + \newcounter{AlphaDecCnt} + \newcommand{\AlphaNo}{% + \ifcase\number\theAlphaCnt + \ifnum\c@chapter=0 + ZERO\else{}\fi + \or ONE\or TWO\or THREE\or FOUR\or FIVE + \or SIX\or SEVEN\or EIGHT\or NINE\or TEN + \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN + \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi +} + + \newcommand{\AlphaDecNo}{% + \setcounter{AlphaDecCnt}{0} + \@whilenum\number\theAlphaCnt>0\do + {\addtocounter{AlphaCnt}{-10} + \addtocounter{AlphaDecCnt}{1}} + \ifnum\number\theAlphaCnt=0 + \else + \addtocounter{AlphaDecCnt}{-1} + \addtocounter{AlphaCnt}{10} + \fi + + + \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or + FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi + } + \newcommand{\TheAlphaChapter}{% + + \ifinapp + \thechapter + \else + \setcounter{AlphaCnt}{\c@chapter} + \ifnum\c@chapter<20 + \AlphaNo + \else + \AlphaDecNo\AlphaNo + \fi + \fi + } + \renewcommand{\DOCH}{% + \mghrulefill{\RW}\par\nobreak + \CNV\FmN{\@chapapp}\par\nobreak + \CNoV\TheAlphaChapter\par\nobreak + \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak + \vskip 20\p@ + } + \renewcommand{\DOTI}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } + \renewcommand{\DOTIS}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } +} + +\DeclareOption*{% + \PackageWarning{fancychapter}{unknown style option} + } + +\ProcessOptions* \relax + +\ifusecolor + \RequirePackage{color} +\fi +\def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 + \DOCH + \fi + \fi + \interlinepenalty\@M + \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 060424 + \DOTI{#1}% + \else% + \DOTIS{#1}% + \fi + }} + + +%%% Begin: To avoid problem with scrbook.cls (fncychap version 1.32) + +%%OUT: +%\def\@schapter#1{\if@twocolumn +% \@topnewpage[\@makeschapterhead{#1}]% +% \else +% \@makeschapterhead{#1}% +% \@afterheading +% \fi} + +%%IN: +\def\@schapter#1{% +\if@twocolumn% + \@makeschapterhead{#1}% +\else% + \@makeschapterhead{#1}% + \@afterheading% +\fi} + +%%% End: To avoid problem with scrbook.cls (fncychap version 1.32) + +\def\@makeschapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \DOTIS{#1} + \vskip 40\p@ + }} + +\endinput + + diff --git a/docs/build/latex/python.ist b/docs/build/latex/python.ist new file mode 100644 index 0000000000000000000000000000000000000000..9ffa0f959f9e60e18c3a7f5fcd518a34964bf68c --- /dev/null +++ b/docs/build/latex/python.ist @@ -0,0 +1,11 @@ +line_max 100 +headings_flag 1 +heading_prefix " \\bigletter " + +preamble "\\begin{theindex} +\\def\\bigletter#1{{\\Large\\sffamily#1}\\nopagebreak\\vspace{1mm}} + +" + +symhead_positive "{Symbols}" +numhead_positive "{Numbers}" diff --git a/docs/build/latex/sphinx.sty b/docs/build/latex/sphinx.sty new file mode 100644 index 0000000000000000000000000000000000000000..554845f8353214aa643a935ff32f7ed999cc1c8f --- /dev/null +++ b/docs/build/latex/sphinx.sty @@ -0,0 +1,522 @@ +% +% sphinx.sty +% +% Adapted from the old python.sty, mostly written by Fred Drake, +% by Georg Brandl. +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{sphinx}[2010/01/15 LaTeX package (Sphinx markup)] + +\@ifclassloaded{memoir}{}{\RequirePackage{fancyhdr}} + +\RequirePackage{textcomp} +\RequirePackage{fancybox} +\RequirePackage{titlesec} +\RequirePackage{tabulary} +\RequirePackage{amsmath} % for \text +\RequirePackage{makeidx} +\RequirePackage{framed} +\RequirePackage{ifthen} +\RequirePackage{color} +% For highlighted code. +\RequirePackage{fancyvrb} +% For table captions. +\RequirePackage{threeparttable} +% Handle footnotes in tables. +\RequirePackage{footnote} +\makesavenoteenv{tabulary} +% For floating figures in the text. +\RequirePackage{wrapfig} +% Separate paragraphs by space by default. +\RequirePackage{parskip} +% For parsed-literal blocks. +\RequirePackage{alltt} + +% Redefine these colors to your liking in the preamble. +\definecolor{TitleColor}{rgb}{0.126,0.263,0.361} +\definecolor{InnerLinkColor}{rgb}{0.208,0.374,0.486} +\definecolor{OuterLinkColor}{rgb}{0.216,0.439,0.388} +% Redefine these colors to something not white if you want to have colored +% background and border for code examples. +\definecolor{VerbatimColor}{rgb}{1,1,1} +\definecolor{VerbatimBorderColor}{rgb}{1,1,1} + +% Uncomment these two lines to ignore the paper size and make the page +% size more like a typical published manual. +%\renewcommand{\paperheight}{9in} +%\renewcommand{\paperwidth}{8.5in} % typical squarish manual +%\renewcommand{\paperwidth}{7in} % O'Reilly ``Programmming Python'' + +% use pdfoutput for pTeX and dvipdfmx +\ifx\kanjiskip\undefined\else + \ifx\Gin@driver{dvipdfmx.def}\undefined\else + \newcount\pdfoutput\pdfoutput=0 + \fi +\fi + +% For graphicx, check if we are compiling under latex or pdflatex. +\ifx\pdftexversion\undefined + \usepackage{graphicx} +\else + \usepackage[pdftex]{graphicx} +\fi + +% for PDF output, use colors and maximal compression +\newif\ifsphinxpdfoutput\sphinxpdfoutputfalse +\ifx\pdfoutput\undefined\else\ifcase\pdfoutput + \let\py@NormalColor\relax + \let\py@TitleColor\relax +\else + \sphinxpdfoutputtrue + \input{pdfcolor} + \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} + \def\py@TitleColor{\color{TitleColor}} + \pdfcompresslevel=9 +\fi\fi + +% XeLaTeX can do colors, too +\ifx\XeTeXrevision\undefined\else + \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} + \def\py@TitleColor{\color{TitleColor}} +\fi + +% Increase printable page size (copied from fullpage.sty) +\topmargin 0pt +\advance \topmargin by -\headheight +\advance \topmargin by -\headsep + +% attempt to work a little better for A4 users +\textheight \paperheight +\advance\textheight by -2in + +\oddsidemargin 0pt +\evensidemargin 0pt +%\evensidemargin -.25in % for ``manual size'' documents +\marginparwidth 0.5in + +\textwidth \paperwidth +\advance\textwidth by -2in + + +% Style parameters and macros used by most documents here +\raggedbottom +\sloppy +\hbadness = 5000 % don't print trivial gripes + +\pagestyle{empty} % start this way + +% Use this to set the font family for headers and other decor: +\newcommand{\py@HeaderFamily}{\sffamily\bfseries} + +% Redefine the 'normal' header/footer style when using "fancyhdr" package: +\@ifundefined{fancyhf}{}{ + % Use \pagestyle{normal} as the primary pagestyle for text. + \fancypagestyle{normal}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} + \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}} + \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}} + \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}} + \renewcommand{\headrulewidth}{0.4pt} + \renewcommand{\footrulewidth}{0.4pt} + % define chaptermark with \@chappos when \@chappos is available for Japanese + \ifx\@chappos\undefined\else + \def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}} + \fi + } + % Update the plain style so we get the page number & footer line, + % but not a chapter or section title. This is to keep the first + % page of a chapter and the blank page between chapters `clean.' + \fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0.4pt} + } +} + +% Some custom font markup commands. +% +\newcommand{\strong}[1]{{\textbf{#1}}} +\newcommand{\code}[1]{\texttt{#1}} +\newcommand{\bfcode}[1]{\code{\bfseries#1}} +\newcommand{\email}[1]{\textsf{#1}} + +% Redefine the Verbatim environment to allow border and background colors. +% The original environment is still used for verbatims within tables. +\let\OriginalVerbatim=\Verbatim +\let\endOriginalVerbatim=\endVerbatim + +% Play with vspace to be able to keep the indentation. +\newlength\distancetoright +\def\mycolorbox#1{% + \setlength\distancetoright{\linewidth}% + \advance\distancetoright -\@totalleftmargin % + \fcolorbox{VerbatimBorderColor}{VerbatimColor}{% + \begin{minipage}{\distancetoright}% + #1 + \end{minipage}% + }% +} +\def\FrameCommand{\mycolorbox} + +\renewcommand{\Verbatim}[1][1]{% + % list starts new par, but we don't want it to be set apart vertically + \bgroup\parskip=0pt% + \smallskip% + % The list environement is needed to control perfectly the vertical + % space. + \list{}{% + \setlength\parskip{0pt}% + \setlength\itemsep{0ex}% + \setlength\topsep{0ex}% + \setlength\partopsep{0pt}% + \setlength\leftmargin{0pt}% + }% + \item\MakeFramed {\FrameRestore}% + \small% + \OriginalVerbatim[#1]% +} +\renewcommand{\endVerbatim}{% + \endOriginalVerbatim% + \endMakeFramed% + \endlist% + % close group to restore \parskip + \egroup% +} + + +% \moduleauthor{name}{email} +\newcommand{\moduleauthor}[2]{} + +% \sectionauthor{name}{email} +\newcommand{\sectionauthor}[2]{} + +% Augment the sectioning commands used to get our own font family in place, +% and reset some internal data items: +\titleformat{\section}{\Large\py@HeaderFamily}% + {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsection}{\large\py@HeaderFamily}% + {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsubsection}{\py@HeaderFamily}% + {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\paragraph}{\small\py@HeaderFamily}% + {\py@TitleColor}{0em}{\py@TitleColor}{\py@NormalColor} + +% {fulllineitems} is the main environment for object descriptions. +% +\newcommand{\py@itemnewline}[1]{% + \@tempdima\linewidth% + \advance\@tempdima \leftmargin\makebox[\@tempdima][l]{#1}% +} + +\newenvironment{fulllineitems}{ + \begin{list}{}{\labelwidth \leftmargin \labelsep 0pt + \rightmargin 0pt \topsep -\parskip \partopsep \parskip + \itemsep -\parsep + \let\makelabel=\py@itemnewline} +}{\end{list}} + +% \optional is used for ``[, arg]``, i.e. desc_optional nodes. +\newcommand{\optional}[1]{% + {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}} + +\newlength{\py@argswidth} +\newcommand{\py@sigparams}[2]{% + \parbox[t]{\py@argswidth}{#1\code{)}#2}} +\newcommand{\pysigline}[1]{\item[#1]\nopagebreak} +\newcommand{\pysiglinewithargsret}[3]{% + \settowidth{\py@argswidth}{#1\code{(}}% + \addtolength{\py@argswidth}{-2\py@argswidth}% + \addtolength{\py@argswidth}{\linewidth}% + \item[#1\code{(}\py@sigparams{#2}{#3}]} + +% Production lists +% +\newenvironment{productionlist}{ +% \def\optional##1{{\Large[}##1{\Large]}} + \def\production##1##2{\\\code{##1}&::=&\code{##2}} + \def\productioncont##1{\\& &\code{##1}} + \parindent=2em + \indent + \setlength{\LTpre}{0pt} + \setlength{\LTpost}{0pt} + \begin{longtable}[l]{lcl} +}{% + \end{longtable} +} + +% Notices / Admonitions +% +\newlength{\py@noticelength} + +\newcommand{\py@heavybox}{ + \setlength{\fboxrule}{1pt} + \setlength{\fboxsep}{6pt} + \setlength{\py@noticelength}{\linewidth} + \addtolength{\py@noticelength}{-2\fboxsep} + \addtolength{\py@noticelength}{-2\fboxrule} + %\setlength{\shadowsize}{3pt} + \noindent\Sbox + \minipage{\py@noticelength} +} +\newcommand{\py@endheavybox}{ + \endminipage + \endSbox + \fbox{\TheSbox} +} + +\newcommand{\py@lightbox}{{% + \setlength\parskip{0pt}\par + \noindent\rule[0ex]{\linewidth}{0.5pt}% + \par\noindent\vspace{-0.5ex}% + }} +\newcommand{\py@endlightbox}{{% + \setlength{\parskip}{0pt}% + \par\noindent\rule[0.5ex]{\linewidth}{0.5pt}% + \par\vspace{-0.5ex}% + }} + +% Some are quite plain: +\newcommand{\py@noticestart@note}{\py@lightbox} +\newcommand{\py@noticeend@note}{\py@endlightbox} +\newcommand{\py@noticestart@hint}{\py@lightbox} +\newcommand{\py@noticeend@hint}{\py@endlightbox} +\newcommand{\py@noticestart@important}{\py@lightbox} +\newcommand{\py@noticeend@important}{\py@endlightbox} +\newcommand{\py@noticestart@tip}{\py@lightbox} +\newcommand{\py@noticeend@tip}{\py@endlightbox} + +% Others gets more visible distinction: +\newcommand{\py@noticestart@warning}{\py@heavybox} +\newcommand{\py@noticeend@warning}{\py@endheavybox} +\newcommand{\py@noticestart@caution}{\py@heavybox} +\newcommand{\py@noticeend@caution}{\py@endheavybox} +\newcommand{\py@noticestart@attention}{\py@heavybox} +\newcommand{\py@noticeend@attention}{\py@endheavybox} +\newcommand{\py@noticestart@danger}{\py@heavybox} +\newcommand{\py@noticeend@danger}{\py@endheavybox} +\newcommand{\py@noticestart@error}{\py@heavybox} +\newcommand{\py@noticeend@error}{\py@endheavybox} + +\newenvironment{notice}[2]{ + \def\py@noticetype{#1} + \csname py@noticestart@#1\endcsname + \strong{#2} +}{\csname py@noticeend@\py@noticetype\endcsname} + +% Allow the release number to be specified independently of the +% \date{}. This allows the date to reflect the document's date and +% release to specify the release that is documented. +% +\newcommand{\py@release}{} +\newcommand{\version}{} +\newcommand{\shortversion}{} +\newcommand{\releaseinfo}{} +\newcommand{\releasename}{Release} +\newcommand{\release}[1]{% + \renewcommand{\py@release}{\releasename\space\version}% + \renewcommand{\version}{#1}} +\newcommand{\setshortversion}[1]{% + \renewcommand{\shortversion}{#1}} +\newcommand{\setreleaseinfo}[1]{% + \renewcommand{\releaseinfo}{#1}} + +% Allow specification of the author's address separately from the +% author's name. This can be used to format them differently, which +% is a good thing. +% +\newcommand{\py@authoraddress}{} +\newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}} + +% This sets up the fancy chapter headings that make the documents look +% at least a little better than the usual LaTeX output. +% +\@ifundefined{ChTitleVar}{}{ + \ChNameVar{\raggedleft\normalsize\py@HeaderFamily} + \ChNumVar{\raggedleft \bfseries\Large\py@HeaderFamily} + \ChTitleVar{\raggedleft \textrm{\Huge\py@HeaderFamily}} + % This creates chapter heads without the leading \vspace*{}: + \def\@makechapterhead#1{% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \DOCH + \fi + \interlinepenalty\@M + \DOTI{#1} + } + } +} + +% Redefine description environment so that it is usable inside fulllineitems. +% +\renewcommand{\description}{% + \list{}{\labelwidth\z@% + \itemindent-\leftmargin% + \labelsep5pt% + \let\makelabel=\descriptionlabel}} + +% Definition lists; requested by AMK for HOWTO documents. Probably useful +% elsewhere as well, so keep in in the general style support. +% +\newenvironment{definitions}{% + \begin{description}% + \def\term##1{\item[##1]\mbox{}\\*[0mm]} +}{% + \end{description}% +} + +% Tell TeX about pathological hyphenation cases: +\hyphenation{Base-HTTP-Re-quest-Hand-ler} + + +% The following is stuff copied from docutils' latex writer. +% +\newcommand{\optionlistlabel}[1]{\bf #1 \hfill} +\newenvironment{optionlist}[1] +{\begin{list}{} + {\setlength{\labelwidth}{#1} + \setlength{\rightmargin}{1cm} + \setlength{\leftmargin}{\rightmargin} + \addtolength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + \renewcommand{\makelabel}{\optionlistlabel}} +}{\end{list}} + +\newlength{\lineblockindentation} +\setlength{\lineblockindentation}{2.5em} +\newenvironment{lineblock}[1] +{\begin{list}{} + {\setlength{\partopsep}{\parskip} + \addtolength{\partopsep}{\baselineskip} + \topsep0pt\itemsep0.15\baselineskip\parsep0pt + \leftmargin#1} + \raggedright} +{\end{list}} + +% Redefine includgraphics for avoiding images larger than the screen size +% If the size is not specified. +\let\py@Oldincludegraphics\includegraphics + +\newbox\image@box% +\newdimen\image@width% +\renewcommand\includegraphics[2][\@empty]{% + \ifx#1\@empty% + \setbox\image@box=\hbox{\py@Oldincludegraphics{#2}}% + \image@width\wd\image@box% + \ifdim \image@width>\linewidth% + \setbox\image@box=\hbox{\py@Oldincludegraphics[width=\linewidth]{#2}}% + \box\image@box% + \else% + \py@Oldincludegraphics{#2}% + \fi% + \else% + \py@Oldincludegraphics[#1]{#2}% + \fi% +} + +% to make pdf with correct encoded bookmarks in Japanese +% this should precede the hyperref package +\ifx\kanjiskip\undefined\else + \usepackage{atbegshi} + \ifx\ucs\undefined + \ifnum 42146=\euc"A4A2 + \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}} + \else + \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}} + \fi + \else + \AtBeginShipoutFirst{\special{pdf:tounicode UTF8-UCS2}} + \fi +\fi + +% Include hyperref last. +\RequirePackage[colorlinks,breaklinks, + linkcolor=InnerLinkColor,filecolor=OuterLinkColor, + menucolor=OuterLinkColor,urlcolor=OuterLinkColor, + citecolor=InnerLinkColor]{hyperref} +% Fix anchor placement for figures with captions. +% (Note: we don't use a package option here; instead, we give an explicit +% \capstart for figures that actually have a caption.) +\RequirePackage{hypcap} + +% From docutils.writers.latex2e +\providecommand{\DUspan}[2]{% + {% group ("span") to limit the scope of styling commands + \@for\node@class@name:=#1\do{% + \ifcsname docutilsrole\node@class@name\endcsname% + \csname docutilsrole\node@class@name\endcsname% + \fi% + }% + {#2}% node content + }% close "span" +} + +\providecommand*{\DUprovidelength}[2]{ + \ifthenelse{\isundefined{#1}}{\newlength{#1}\setlength{#1}{#2}}{} +} + +\DUprovidelength{\DUlineblockindent}{2.5em} +\ifthenelse{\isundefined{\DUlineblock}}{ + \newenvironment{DUlineblock}[1]{% + \list{}{\setlength{\partopsep}{\parskip} + \addtolength{\partopsep}{\baselineskip} + \setlength{\topsep}{0pt} + \setlength{\itemsep}{0.15\baselineskip} + \setlength{\parsep}{0pt} + \setlength{\leftmargin}{#1}} + \raggedright + } + {\endlist} +}{} + + +% From footmisc.sty: allows footnotes in titles +\let\FN@sf@@footnote\footnote +\def\footnote{\ifx\protect\@typeset@protect + \expandafter\FN@sf@@footnote + \else + \expandafter\FN@sf@gobble@opt + \fi +} +\edef\FN@sf@gobble@opt{\noexpand\protect + \expandafter\noexpand\csname FN@sf@gobble@opt \endcsname} +\expandafter\def\csname FN@sf@gobble@opt \endcsname{% + \@ifnextchar[%] + \FN@sf@gobble@twobracket + \@gobble +} +\def\FN@sf@gobble@twobracket[#1]#2{} + +% adjust the margins for footer, +% this works with the jsclasses only (Japanese standard document classes) +\ifx\@jsc@uplatextrue\undefined\else + \hypersetup{setpagesize=false} + \setlength\footskip{2\baselineskip} + \addtolength{\textheight}{-2\baselineskip} +\fi + +% fix the double index and bibliography on the table of contents +% in jsclasses (Japanese standard document classes) +\ifx\@jsc@uplatextrue\undefined\else + \renewcommand{\theindex}{ + \cleardoublepage + \phantomsection + \py@OldTheindex + } + \renewcommand{\thebibliography}[1]{ + \cleardoublepage + \phantomsection + \py@OldThebibliography{1} + } +\fi + +% disable \@chappos in Appendix in pTeX +\ifx\kanjiskip\undefined\else + \let\py@OldAppendix=\appendix + \renewcommand{\appendix}{ + \py@OldAppendix + \gdef\@chappos{} + } +\fi diff --git a/docs/build/latex/sphinxhowto.cls b/docs/build/latex/sphinxhowto.cls new file mode 100644 index 0000000000000000000000000000000000000000..26e63a7ee48f1d1955a54fc478d69a20bf4f1d2d --- /dev/null +++ b/docs/build/latex/sphinxhowto.cls @@ -0,0 +1,104 @@ +% +% sphinxhowto.cls for Sphinx (http://sphinx-doc.org/) +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{sphinxhowto}[2009/06/02 Document class (Sphinx HOWTO)] + +% 'oneside' option overriding the 'twoside' default +\newif\if@oneside +\DeclareOption{oneside}{\@onesidetrue} +% Pass remaining document options to the parent class. +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}} +\ProcessOptions\relax + +% Default to two-side document +\if@oneside +% nothing to do (oneside is the default) +\else +\PassOptionsToClass{twoside}{\sphinxdocclass} +\fi + +\LoadClass{\sphinxdocclass} + +% Set some sane defaults for section numbering depth and TOC depth. You can +% reset these counters in your preamble. +% +\setcounter{secnumdepth}{2} + +% Change the title page to look a bit better, and fit in with the fncychap +% ``Bjarne'' style a bit better. +% +\renewcommand{\maketitle}{ + \rule{\textwidth}{1pt} + \ifsphinxpdfoutput + \begingroup + % These \defs are required to deal with multi-line authors; it + % changes \\ to ', ' (comma-space), making it pass muster for + % generating document info in the PDF file. + \def\\{, } + \def\and{and } + \pdfinfo{ + /Author (\@author) + /Title (\@title) + } + \endgroup + \fi + \begin{flushright} + \sphinxlogo% + {\rm\Huge\py@HeaderFamily \@title} \par + {\em\large\py@HeaderFamily \py@release\releaseinfo} \par + \vspace{25pt} + {\Large\py@HeaderFamily + \begin{tabular}[t]{c} + \@author + \end{tabular}} \par + \vspace{25pt} + \@date \par + \py@authoraddress \par + \end{flushright} + \@thanks + \setcounter{footnote}{0} + \let\thanks\relax\let\maketitle\relax + %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +} + +\let\py@OldTableofcontents=\tableofcontents +\renewcommand{\tableofcontents}{ + \begingroup + \parskip = 0mm + \py@OldTableofcontents + \endgroup + \rule{\textwidth}{1pt} + \vspace{12pt} +} + +\@ifundefined{fancyhf}{ + \pagestyle{plain}}{ + \pagestyle{normal}} % start this way; change for +\pagenumbering{arabic} % ToC & chapters + +\thispagestyle{empty} + +% Fix the bibliography environment to add an entry to the Table of +% Contents. +% For an article document class this environment is a section, +% so no page break before it. +\let\py@OldThebibliography=\thebibliography +\renewcommand{\thebibliography}[1]{ + \phantomsection + \py@OldThebibliography{1} + \addcontentsline{toc}{section}{\bibname} +} + +% Same for the indices. +% The memoir class already does this, so we don't duplicate it in that case. +% +\@ifclassloaded{memoir}{}{ + \let\py@OldTheindex=\theindex + \renewcommand{\theindex}{ + \phantomsection + \py@OldTheindex + \addcontentsline{toc}{section}{\indexname} + } +} diff --git a/docs/build/latex/sphinxmanual.cls b/docs/build/latex/sphinxmanual.cls new file mode 100644 index 0000000000000000000000000000000000000000..a6b9b392859c2a6fee6af23d8232f9e3fdb5f32e --- /dev/null +++ b/docs/build/latex/sphinxmanual.cls @@ -0,0 +1,148 @@ +% +% sphinxmanual.cls for Sphinx (http://sphinx-doc.org/) +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{sphinxmanual}[2009/06/02 Document class (Sphinx manual)] + +% chapters starting at odd pages (overridden by 'openany' document option) +\PassOptionsToClass{openright}{\sphinxdocclass} + +% 'oneside' option overriding the 'twoside' default +\newif\if@oneside +\DeclareOption{oneside}{\@onesidetrue} +% Pass remaining document options to the parent class. +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}} +\ProcessOptions\relax + +% Defaults two-side document +\if@oneside +% nothing to do (oneside is the default) +\else +\PassOptionsToClass{twoside}{\sphinxdocclass} +\fi + +\LoadClass{\sphinxdocclass} + +% Set some sane defaults for section numbering depth and TOC depth. You can +% reset these counters in your preamble. +% +\setcounter{secnumdepth}{2} +\setcounter{tocdepth}{1} + +% Change the title page to look a bit better, and fit in with the fncychap +% ``Bjarne'' style a bit better. +% +\renewcommand{\maketitle}{% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \rule{\textwidth}{1pt}% + \ifsphinxpdfoutput + \begingroup + % These \defs are required to deal with multi-line authors; it + % changes \\ to ', ' (comma-space), making it pass muster for + % generating document info in the PDF file. + \def\\{, } + \def\and{and } + \pdfinfo{ + /Author (\@author) + /Title (\@title) + } + \endgroup + \fi + \begin{flushright}% + \sphinxlogo% + {\rm\Huge\py@HeaderFamily \@title \par}% + {\em\LARGE\py@HeaderFamily \py@release\releaseinfo \par} + \vfill + {\LARGE\py@HeaderFamily + \begin{tabular}[t]{c} + \@author + \end{tabular} + \par} + \vfill\vfill + {\large + \@date \par + \vfill + \py@authoraddress \par + }% + \end{flushright}%\par + \@thanks + \end{titlepage}% + \cleardoublepage% + \setcounter{footnote}{0}% + \let\thanks\relax\let\maketitle\relax + %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +} + + +% Catch the end of the {abstract} environment, but here make sure the abstract +% is followed by a blank page if the 'openright' option is used. +% +\let\py@OldEndAbstract=\endabstract +\renewcommand{\endabstract}{ + \if@openright + \ifodd\value{page} + \typeout{Adding blank page after the abstract.} + \vfil\pagebreak + \fi + \fi + \py@OldEndAbstract +} + +% This wraps the \tableofcontents macro with all the magic to get the spacing +% right and have the right number of pages if the 'openright' option has been +% used. This eliminates a fair amount of crud in the individual document files. +% +\let\py@OldTableofcontents=\tableofcontents +\renewcommand{\tableofcontents}{% + \pagenumbering{roman}% + \setcounter{page}{1}% + \pagebreak% + \pagestyle{plain}% + {% + \parskip = 0mm% + \py@OldTableofcontents% + \if@openright% + \ifodd\value{page}% + \typeout{Adding blank page after the table of contents.}% + \pagebreak\hspace{0pt}% + \fi% + \fi% + \cleardoublepage% + }% + \pagenumbering{arabic}% + \@ifundefined{fancyhf}{}{\pagestyle{normal}}% +} +\pagenumbering{alph} + +% This is needed to get the width of the section # area wide enough in the +% library reference. Doing it here keeps it the same for all the manuals. +% +\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}} + +% Fix the bibliography environment to add an entry to the Table of +% Contents. +% For a report document class this environment is a chapter. +\let\py@OldThebibliography=\thebibliography +\renewcommand{\thebibliography}[1]{ + \cleardoublepage + \phantomsection + \py@OldThebibliography{1} + \addcontentsline{toc}{chapter}{\bibname} +} + +% Same for the indices. +% The memoir class already does this, so we don't duplicate it in that case. +% +\@ifclassloaded{memoir}{}{ + \let\py@OldTheindex=\theindex + \renewcommand{\theindex}{ + \cleardoublepage + \phantomsection + \py@OldTheindex + \addcontentsline{toc}{chapter}{\indexname} + } +} diff --git a/docs/build/latex/tabulary.sty b/docs/build/latex/tabulary.sty new file mode 100644 index 0000000000000000000000000000000000000000..7ea572c1213b369f51c32103149f18c32861b442 --- /dev/null +++ b/docs/build/latex/tabulary.sty @@ -0,0 +1,449 @@ +%% +%% This is file `tabulary.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tabulary.dtx (with options: `package') +%% DRAFT VERSION +%% +%% File `tabulary.dtx'. +%% Copyright (C) 1995 1996 2003 2008 David Carlisle +%% This file may be distributed under the terms of the LPPL. +%% See 00readme.txt for details. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tabulary} + [2008/12/01 v0.9 tabulary package (DPC)] +\RequirePackage{array} +\catcode`\Z=14 +\DeclareOption{debugshow}{\catcode`\Z=9\relax} +\ProcessOptions +\def\arraybackslash{\let\\=\@arraycr} +\def\@finalstrut#1{% + \unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\dp#1} +\newcount\TY@count +\def\tabulary{% + \let\TY@final\tabular + \let\endTY@final\endtabular + \TY@tabular} +\def\TY@tabular#1{% + \edef\TY@{\@currenvir}% + {\ifnum0=`}\fi + \@ovxx\TY@linewidth + \@ovyy\TY@tablewidth + \count@\z@ + \@tempswatrue + \@whilesw\if@tempswa\fi{% + \advance\count@\@ne + \expandafter\ifx\csname TY@F\the\count@\endcsname\relax + \@tempswafalse + \else + \expandafter\let\csname TY@SF\the\count@\expandafter\endcsname + \csname TY@F\the\count@\endcsname + \global\expandafter\let\csname TY@F\the\count@\endcsname\relax + \expandafter\let\csname TY@S\the\count@\expandafter\endcsname + \csname TY@\the\count@\endcsname + \fi}% + \global\TY@count\@ne + \TY@width\xdef{0pt}% + \global\TY@tablewidth\z@ + \global\TY@linewidth#1\relax +Z\message{^^J^^JTable^^J% +Z Target Width: \the\TY@linewidth^^J% +Z \string\tabcolsep: \the\tabcolsep\space +Z \string\arrayrulewidth: \the\arrayrulewidth\space +Z \string\doublerulesep: \the\doublerulesep^^J% +Z \string\tymin: \the\tymin\space +Z \string\tymax: \the\tymax^^J}% + \let\@classz\TY@classz + \let\verb\TX@verb + \toks@{}\TY@get@body} +\let\TY@@mkpream\@mkpream +\def\TY@mkpream{% + \def\@addamp{% + \if@firstamp \@firstampfalse \else + \global\advance\TY@count\@ne + \edef\@preamble{\@preamble &}\fi + \TY@width\xdef{0pt}}% + \def\@acol{% + \TY@subwidth\col@sep + \@addtopreamble{\hskip\col@sep}}% + \let\@arrayrule\TY@arrayrule + \let\@classvi\TY@classvi + \def\@classv{\save@decl + \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@ + \sbox\z@{\d@llarbegin\@nextchar\d@llarend}% + \TY@subwidth{\wd\z@}% + \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}% + \prepnext@tok}% + \global\let\@mkpream\TY@@mkpream + \TY@@mkpream} +\def\TY@arrayrule{% + \TY@subwidth\arrayrulewidth + \@addtopreamble \vline} +\def\TY@classvi{\ifcase \@lastchclass + \@acol \or + \TY@subwidth\doublerulesep + \@addtopreamble{\hskip \doublerulesep}\or + \@acol \or + \@classvii + \fi} +\def\TY@tab{% + \setbox\z@\hbox\bgroup + \let\[$\let\]$% + \let\equation$\let\endequation$% + \col@sep\tabcolsep + \let\d@llarbegin\begingroup\let\d@llarend\endgroup + \let\@mkpream\TY@mkpream + \def\multicolumn##1##2##3{\multispan##1\relax}% + \CT@start\TY@tabarray} +\def\TY@tabarray{\@ifnextchar[{\TY@array}{\@array[t]}} +\def\TY@array[#1]{\@array[t]} +\def\TY@width#1{% + \expandafter#1\csname TY@\the\TY@count\endcsname} +\def\TY@subwidth#1{% + \TY@width\dimen@ + \advance\dimen@-#1\relax + \TY@width\xdef{\the\dimen@}% + \global\advance\TY@linewidth-#1\relax} +\def\endtabulary{% + \gdef\@halignto{}% + \expandafter\TY@tab\the\toks@ + \crcr\omit + {\xdef\TY@save@row{}% + \loop + \advance\TY@count\m@ne + \ifnum\TY@count>\z@ + \xdef\TY@save@row{\TY@save@row&\omit}% + \repeat}\TY@save@row + \endarray\global\setbox1=\lastbox\setbox0=\vbox{\unvbox1 + \unskip\global\setbox1=\lastbox}\egroup + \dimen@\TY@linewidth + \divide\dimen@\TY@count + \ifdim\dimen@<\tymin + \TY@warn{tymin too large (\the\tymin), resetting to \the\dimen@}% + \tymin\dimen@ + \fi + \setbox\tw@=\hbox{\unhbox\@ne + \loop +\@tempdima=\lastskip +\ifdim\@tempdima>\z@ +Z \message{ecs=\the\@tempdima^^J}% + \global\advance\TY@linewidth-\@tempdima +\fi + \unskip + \setbox\tw@=\lastbox + \ifhbox\tw@ +Z \message{Col \the\TY@count: Initial=\the\wd\tw@\space}% + \ifdim\wd\tw@>\tymax + \wd\tw@\tymax +Z \message{> max\space}% +Z \else +Z \message{ \@spaces\space}% + \fi + \TY@width\dimen@ +Z \message{\the\dimen@\space}% + \advance\dimen@\wd\tw@ +Z \message{Final=\the\dimen@\space}% + \TY@width\xdef{\the\dimen@}% + \ifdim\dimen@<\tymin +Z \message{< tymin}% + \global\advance\TY@linewidth-\dimen@ + \expandafter\xdef\csname TY@F\the\TY@count\endcsname + {\the\dimen@}% + \else + \expandafter\ifx\csname TY@F\the\TY@count\endcsname\z@ +Z \message{***}% + \global\advance\TY@linewidth-\dimen@ + \expandafter\xdef\csname TY@F\the\TY@count\endcsname + {\the\dimen@}% + \else +Z \message{> tymin}% + \global\advance\TY@tablewidth\dimen@ + \global\expandafter\let\csname TY@F\the\TY@count\endcsname + \maxdimen + \fi\fi + \advance\TY@count\m@ne + \repeat}% + \TY@checkmin + \TY@checkmin + \TY@checkmin + \TY@checkmin + \TY@count\z@ + \let\TY@box\TY@box@v + {\expandafter\TY@final\the\toks@\endTY@final}% + \count@\z@ + \@tempswatrue + \@whilesw\if@tempswa\fi{% + \advance\count@\@ne + \expandafter\ifx\csname TY@SF\the\count@\endcsname\relax + \@tempswafalse + \else + \global\expandafter\let\csname TY@F\the\count@\expandafter\endcsname + \csname TY@SF\the\count@\endcsname + \global\expandafter\let\csname TY@\the\count@\expandafter\endcsname + \csname TY@S\the\count@\endcsname + \fi}% + \TY@linewidth\@ovxx + \TY@tablewidth\@ovyy + \ifnum0=`{\fi}} +\def\TY@checkmin{% + \let\TY@checkmin\relax +\ifdim\TY@tablewidth>\z@ + \Gscale@div\TY@ratio\TY@linewidth\TY@tablewidth + \ifdim\TY@tablewidth <\TY@linewidth + \def\TY@ratio{1}% + \fi +\else + \TY@warn{No suitable columns!}% + \def\TY@ratio{1}% +\fi +\count@\z@ +Z \message{^^JLine Width: \the\TY@linewidth, +Z Natural Width: \the\TY@tablewidth, +Z Ratio: \TY@ratio^^J}% +\@tempdima\z@ +\loop +\ifnum\count@<\TY@count +\advance\count@\@ne + \ifdim\csname TY@F\the\count@\endcsname>\tymin + \dimen@\csname TY@\the\count@\endcsname + \dimen@\TY@ratio\dimen@ + \ifdim\dimen@<\tymin +Z \message{Column \the\count@\space ->}% + \global\expandafter\let\csname TY@F\the\count@\endcsname\tymin + \global\advance\TY@linewidth-\tymin + \global\advance\TY@tablewidth-\csname TY@\the\count@\endcsname + \let\TY@checkmin\TY@@checkmin + \else + \expandafter\xdef\csname TY@F\the\count@\endcsname{\the\dimen@}% + \advance\@tempdima\csname TY@F\the\count@\endcsname + \fi + \fi +Z \dimen@\csname TY@F\the\count@\endcsname\message{\the\dimen@, }% +\repeat +Z \message{^^JTotal:\the\@tempdima^^J}% +} +\let\TY@@checkmin\TY@checkmin +\newdimen\TY@linewidth +\def\tyformat{\everypar{{\nobreak\hskip\z@skip}}} +\newdimen\tymin +\tymin=10pt +\newdimen\tymax +\tymax=2\textwidth +\def\@testpach{\@chclass + \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else + \ifnum \@lastchclass=7 5 \else + \ifnum \@lastchclass=8 \tw@ \else + \ifnum \@lastchclass=9 \thr@@ + \else \z@ + \ifnum \@lastchclass = 10 \else + \edef\@nextchar{\expandafter\string\@nextchar}% + \@chnum + \if \@nextchar c\z@ \else + \if \@nextchar l\@ne \else + \if \@nextchar r\tw@ \else + \if \@nextchar C7 \else + \if \@nextchar L8 \else + \if \@nextchar R9 \else + \if \@nextchar J10 \else + \z@ \@chclass + \if\@nextchar |\@ne \else + \if \@nextchar !6 \else + \if \@nextchar @7 \else + \if \@nextchar <8 \else + \if \@nextchar >9 \else + 10 + \@chnum + \if \@nextchar m\thr@@\else + \if \@nextchar p4 \else + \if \@nextchar b5 \else + \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi\fi \fi \fi\fi \fi + \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} +\def\TY@classz{% + \@classx + \@tempcnta\count@ + \ifx\TY@box\TY@box@v + \global\advance\TY@count\@ne + \fi + \let\centering c% + \let\raggedright\noindent + \let\raggedleft\indent + \let\arraybackslash\relax + \prepnext@tok + \ifnum\@chnum<4 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \ifnum\@chnum=6 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \@addtopreamble{% + \ifcase\@chnum + \hfil \d@llarbegin\insert@column\d@llarend \hfil \or + \kern\z@ + \d@llarbegin \insert@column \d@llarend \hfil \or + \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \or + $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or + \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or + \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or + \d@llarbegin \insert@column \d@llarend \or% dubious "s" case + \TY@box\centering\or + \TY@box\raggedright\or + \TY@box\raggedleft\or + \TY@box\relax + \fi}\prepnext@tok} +\def\TY@box#1{% + \ifx\centering#1% + \hfil \d@llarbegin\insert@column\d@llarend \hfil \else + \ifx\raggedright#1% + \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + \d@llarbegin \insert@column \d@llarend \hfil \else + \ifx\raggedleft#1% + \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \else + \ifx\relax#1% + \d@llarbegin \insert@column \d@llarend + \fi \fi \fi \fi} +\def\TY@box@v#1{% + \vtop \@startpbox{\csname TY@F\the\TY@count\endcsname}% + #1\arraybackslash\tyformat + \insert@column\@endpbox} +\newdimen\TY@tablewidth +\def\Gscale@div#1#2#3{% + \setlength\dimen@{#3}% + \ifdim\dimen@=\z@ + \PackageError{graphics}{Division by 0}\@eha + \dimen@#2% + \fi + \edef\@tempd{\the\dimen@}% + \setlength\dimen@{#2}% + \count@65536\relax + \ifdim\dimen@<\z@ + \dimen@-\dimen@ + \count@-\count@ + \fi + \loop + \ifdim\dimen@<8192\p@ + \dimen@\tw@\dimen@ + \divide\count@\tw@ + \repeat + \dimen@ii=\@tempd\relax + \divide\dimen@ii\count@ + \divide\dimen@\dimen@ii + \edef#1{\strip@pt\dimen@}} +\long\def\TY@get@body#1\end + {\toks@\expandafter{\the\toks@#1}\TY@find@end} +\def\TY@find@end#1{% + \def\@tempa{#1}% + \ifx\@tempa\TY@\def\@tempa{\end{#1}}\expandafter\@tempa + \else\toks@\expandafter + {\the\toks@\end{#1}}\expandafter\TY@get@body\fi} +\def\TY@warn{% + \PackageWarning{tabulary}} +\catcode`\Z=11 +\AtBeginDocument{ +\@ifpackageloaded{colortbl}{% +\expandafter\def\expandafter\@mkpream\expandafter#\expandafter1% + \expandafter{% + \expandafter\let\expandafter\CT@setup\expandafter\relax + \expandafter\let\expandafter\CT@color\expandafter\relax + \expandafter\let\expandafter\CT@do@color\expandafter\relax + \expandafter\let\expandafter\color\expandafter\relax + \expandafter\let\expandafter\CT@column@color\expandafter\relax + \expandafter\let\expandafter\CT@row@color\expandafter\relax + \@mkpream{#1}} +\let\TY@@mkpream\@mkpream +\def\TY@classz{% + \@classx + \@tempcnta\count@ + \ifx\TY@box\TY@box@v + \global\advance\TY@count\@ne + \fi + \let\centering c% + \let\raggedright\noindent + \let\raggedleft\indent + \let\arraybackslash\relax + \prepnext@tok +\expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil + \ifnum\@chnum<4 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \ifnum\@chnum=6 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \@addtopreamble{% + \setbox\z@\hbox\bgroup\bgroup + \ifcase\@chnum + \hskip\stretch{.5}\kern\z@ + \d@llarbegin\insert@column\d@llarend\hskip\stretch{.5}\or + \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<< + \d@llarbegin \insert@column \d@llarend \hfill \or + \hfill\kern\z@ \d@llarbegin \insert@column \d@llarend \or + $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or + \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or + \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or + \d@llarbegin \insert@column \d@llarend \or% dubious s case + \TY@box\centering\or + \TY@box\raggedright\or + \TY@box\raggedleft\or + \TY@box\relax + \fi + \egroup\egroup +\begingroup + \CT@setup + \CT@column@color + \CT@row@color + \CT@do@color +\endgroup + \@tempdima\ht\z@ + \advance\@tempdima\minrowclearance + \vrule\@height\@tempdima\@width\z@ +\unhbox\z@ +}\prepnext@tok}% + \def\TY@arrayrule{% + \TY@subwidth\arrayrulewidth + \@addtopreamble{{\CT@arc@\vline}}}% + \def\TY@classvi{\ifcase \@lastchclass + \@acol \or + \TY@subwidth\doublerulesep + \ifx\CT@drsc@\relax + \@addtopreamble{\hskip\doublerulesep}% + \else + \@addtopreamble{{\CT@drsc@\vrule\@width\doublerulesep}}% + \fi\or + \@acol \or + \@classvii + \fi}% +}{% +\let\CT@start\relax +} +} +{\uccode`\*=`\ % +\uppercase{\gdef\TX@verb{% + \leavevmode\null\TX@vwarn + {\ifnum0=`}\fi\ttfamily\let\\\ignorespaces + \@ifstar{\let~*\TX@vb}{\TX@vb}}}} +\def\TX@vb#1{\def\@tempa##1#1{\toks@{##1}\edef\@tempa{\the\toks@}% + \expandafter\TX@v\meaning\@tempa\\ \\\ifnum0=`{\fi}}\@tempa!} +\def\TX@v#1!{\afterassignment\TX@vfirst\let\@tempa= } +\begingroup +\catcode`\*=\catcode`\# +\catcode`\#=12 +\gdef\TX@vfirst{% + \if\@tempa#% + \def\@tempb{\TX@v@#}% + \else + \let\@tempb\TX@v@ + \if\@tempa\space~\else\@tempa\fi + \fi + \@tempb} +\gdef\TX@v@*1 *2{% + \TX@v@hash*1##\relax\if*2\\\else~\expandafter\TX@v@\fi*2} +\gdef\TX@v@hash*1##*2{*1\ifx*2\relax\else#\expandafter\TX@v@hash\fi*2} +\endgroup +\def\TX@vwarn{% + \@warning{\noexpand\verb may be unreliable inside tabularx/y}% + \global\let\TX@vwarn\@empty} +\endinput +%% +%% End of file `tabulary.sty'. diff --git a/docs/lsmtool.aux b/docs/lsmtool.aux new file mode 100644 index 0000000000000000000000000000000000000000..246062111e5a74ceeacc7f0d533c8de8027d1320 --- /dev/null +++ b/docs/lsmtool.aux @@ -0,0 +1,29 @@ +\relax +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\@writefile{toc}{\contentsline {section}{\numberline {1}LSMTool: the LOFAR Local Sky Model Tool}{1}{section.1}} +\newlabel{lsmtool}{{1}{1}{LSMTool: the LOFAR Local Sky Model Tool\relax }{section.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Usage}{1}{subsection.1.1}} +\newlabel{lsmtool:usage}{{1.1}{1}{Usage\relax }{subsection.1.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Operations}{1}{subsection.1.2}} +\newlabel{lsmtool:operations}{{1.2}{1}{Operations\relax }{subsection.1.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Example parset}{2}{subsection.1.3}} +\newlabel{lsmtool:parset}{{1.3}{2}{Example parset\relax }{subsection.1.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Interactive use and scripting}{2}{subsection.1.4}} +\newlabel{lsmtool:scripting}{{1.4}{2}{Interactive use and scripting\relax }{subsection.1.4}{}} +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Definition of variables in the LSMTool parset. \relax }}{3}{table.caption.1}} +\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} +\newlabel{lsmtool:tab:local_val}{{1}{3}{Definition of variables in the LSMTool parset. \relax \relax }{table.caption.1}{}} diff --git a/docs/lsmtool.log b/docs/lsmtool.log new file mode 100644 index 0000000000000000000000000000000000000000..bfeb6e29c051dbc0ef606181ea02f3795360a549 --- /dev/null +++ b/docs/lsmtool.log @@ -0,0 +1,512 @@ +This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012) (format=pdflatex 2012.8.22) 30 JUN 2014 17:05 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**lsmtool.tex +(./lsmtool.tex +LaTeX2e <2011/06/27> +Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge +rman-x-2012-05-30, ngerman-x-2012-05-30, afrikaans, ancientgreek, ibycus, arabi +c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis +h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis +h, french, friulan, galician, german, ngerman, swissgerman, monogreek, greek, h +ungarian, icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, ma +rathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, +kurmanji, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, + polish, portuguese, romanian, romansh, russian, sanskrit, serbian, serbianc, s +lovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, +welsh, loaded. +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/article.cls +Document Class: article 2007/10/19 v1.4h Standard LaTeX document class +(/usr/local/texlive/2012/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/txfonts.sty +Package: txfonts 2008/01/22 v3.2.1 +LaTeX Font Info: Redeclaring symbol font `operators' on input line 21. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/txr/m/n on input line 21. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/txr/m/n on input line 21. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/txr/m/n --> OT1/txr/bx/n on input line 22. +\symitalic=\mathgroup4 +LaTeX Font Info: Overwriting symbol font `italic' in version `bold' +(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 26. +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 30. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/txr/m/it on input line 30. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/txr/m/it on input line 30. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 31. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 40. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/txss/m/n on input line 40. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/txss/m/n on input line 40. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/txss/m/n --> OT1/txss/b/n on input line 41. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 50. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/txtt/m/n --> OT1/txtt/b/n on input line 51. +LaTeX Font Info: Redeclaring symbol font `letters' on input line 58. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/txmi/m/it on input line 58. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/txmi/m/it on input line 58. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/txmi/m/it --> OML/txmi/bx/it on input line 59. +\symlettersA=\mathgroup5 +LaTeX Font Info: Overwriting symbol font `lettersA' in version `bold' +(Font) U/txmia/m/it --> U/txmia/bx/it on input line 67. +LaTeX Font Info: Redeclaring symbol font `symbols' on input line 77. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/txsy/m/n on input line 77. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/txsy/m/n on input line 77. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/txsy/m/n --> OMS/txsy/bx/n on input line 78. +\symAMSa=\mathgroup6 +LaTeX Font Info: Overwriting symbol font `AMSa' in version `bold' +(Font) U/txsya/m/n --> U/txsya/bx/n on input line 94. +\symAMSb=\mathgroup7 +LaTeX Font Info: Overwriting symbol font `AMSb' in version `bold' +(Font) U/txsyb/m/n --> U/txsyb/bx/n on input line 103. +\symsymbolsC=\mathgroup8 +LaTeX Font Info: Overwriting symbol font `symbolsC' in version `bold' +(Font) U/txsyc/m/n --> U/txsyc/bx/n on input line 113. +LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 120. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/txex/m/n --> OMX/txex/bx/n on input line 121. +\symlargesymbolsA=\mathgroup9 +LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `bold' +(Font) U/txexa/m/n --> U/txexa/bx/n on input line 129. +LaTeX Info: Redefining \not on input line 1043. +) (/usr/local/texlive/2012/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc. +) (/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2012/05/13 v6.82q Hypertext links for LaTeX +(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) + +(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) +Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) +Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) +Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO +) +Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) +Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) +Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) +Package: xcolor-patch 2011/01/30 xcolor patch +Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) +Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) +Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) +) (/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks14 +) (/usr/local/texlive/2012/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) (/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) +) +\@linkdim=\dimen103 +\Hy@linkcounter=\count87 +\Hy@pagecounter=\count88 +(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2012/05/13 v6.82q Hyperref: PDFDocEncoding definition (HO) +) +\Hy@SavedSpaceFactor=\count89 +(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Option `breaklinks' set `true' on input line 3941. +Package hyperref Info: Hyper figures OFF on input line 4062. +Package hyperref Info: Link nesting OFF on input line 4067. +Package hyperref Info: Hyper index ON on input line 4070. +Package hyperref Info: Plain pages OFF on input line 4077. +Package hyperref Info: Backreferencing OFF on input line 4082. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4300. +\c@Hy@tempcnt=\count90 +LaTeX Info: Redefining \url on input line 4653. +\Fld@menulength=\count91 +\Field@Width=\dimen104 +\Fld@charsize=\dimen105 +Package hyperref Info: Hyper figures OFF on input line 5773. +Package hyperref Info: Link nesting OFF on input line 5778. +Package hyperref Info: Hyper index ON on input line 5781. +Package hyperref Info: backreferencing OFF on input line 5788. +Package hyperref Info: Link coloring OFF on input line 5793. +Package hyperref Info: Link coloring with OCG OFF on input line 5798. +Package hyperref Info: PDF/A mode OFF on input line 5803. +LaTeX Info: Redefining \ref on input line 5843. +LaTeX Info: Redefining \pageref on input line 5847. +\Hy@abspage=\count92 +\c@Item=\count93 +\c@Hfootnote=\count94 +) + +Package hyperref Message: Driver (autodetected): hpdftex. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2012/05/13 v6.82q Hyperref driver for pdfTeX +\Fld@listcount=\count95 +\c@bookmark@seq@number=\count96 +(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip43 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/twoopt.sty +Package: twoopt 2008/08/11 v1.5 Definitions with two optional arguments (HO) +) (/usr/local/texlive/2012/texmf-dist/tex/latex/natbib/natbib.sty +Package: natbib 2010/09/13 8.31b (PWD, AO) +\bibhang=\skip44 +\bibsep=\skip45 +LaTeX Info: Redefining \cite on input line 694. +\c@NAT@ctr=\count97 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/ctable/ctable.sty +Package: ctable 2012/05/28 v1.23 ctable package +(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/color.sty +Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC) +(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package color Info: Driver file: pdftex.def on input line 130. +(/usr/local/texlive/2012/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX +\Gread@gobject=\count98 +)) (/usr/local/texlive/2012/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2008/08/13 v2.6a package option processing (HA) +(/usr/local/texlive/2012/texmf-dist/tex/generic/xkeyval/xkeyval.tex +\XKV@toks=\toks15 +\XKV@tempa@toks=\toks16 +\XKV@depth=\count99 +File: xkeyval.tex 2008/08/13 v2.6a key=value parser (HA) +)) (/usr/local/texlive/2012/texmf-dist/tex/latex/tools/array.sty +Package: array 2008/09/09 v2.4c Tabular extension package (FMi) +\col@sep=\dimen106 +\extrarowheight=\dimen107 +\NC@list=\toks17 +\extratabsurround=\skip46 +\backup@length=\skip47 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/tools/tabularx.sty +Package: tabularx 1999/01/07 v2.07 `tabularx' package (DPC) +\TX@col@width=\dimen108 +\TX@old@table=\dimen109 +\TX@old@col=\dimen110 +\TX@target=\dimen111 +\TX@delta=\dimen112 +\TX@cols=\count100 +\TX@ftn=\toks18 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/booktabs/booktabs.sty +Package: booktabs 2005/04/14 v1.61803 publication quality tables +\heavyrulewidth=\dimen113 +\lightrulewidth=\dimen114 +\cmidrulewidth=\dimen115 +\belowrulesep=\dimen116 +\belowbottomsep=\dimen117 +\aboverulesep=\dimen118 +\abovetopsep=\dimen119 +\cmidrulesep=\dimen120 +\cmidrulekern=\dimen121 +\defaultaddspace=\dimen122 +\@cmidla=\count101 +\@cmidlb=\count102 +\@aboverulesep=\dimen123 +\@belowrulesep=\dimen124 +\@thisruleclass=\count103 +\@lastruleclass=\count104 +\@thisrulewidth=\dimen125 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/rotating/rotating.sty +Package: rotating 2009/03/28 v2.16a rotated objects in LaTeX +(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) +(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) +(/usr/local/texlive/2012/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) (/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 91. +) +\Gin@req@height=\dimen126 +\Gin@req@width=\dimen127 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) +\c@r@tfl@t=\count105 +\rotFPtop=\skip48 +\rotFPbot=\skip49 +\rot@float@box=\box26 +\rot@mess@toks=\toks19 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2011/01/03 v2.1 e-TeX tools for LaTeX +(/usr/local/texlive/2012/texmf-dist/tex/latex/etex-pkg/etex.sty +Package: etex 1998/03/26 v2.0 eTeX basic definition package (PEB) +\et@xins=\count106 +) +\etb@tempcnta=\count107 +) +\@ctblframesep=\dimen128 +\@defaultctblframesep=\dimen129 +\@ctblframerule=\dimen130 +\@defaultctblframerule=\dimen131 +\@ctblwidth=\dimen132 +\@defaultctblwidth=\dimen133 +\@ctblcaptionskip=\dimen134 +\@defaultctblcaptionskip=\dimen135 +\@ctblmaxwidth=\dimen136 +\@defaultctblmaxwidth=\dimen137 +\@ctblmincapwidth=\dimen138 +\@defaultctblmincapwidth=\dimen139 +\@ctblfooterwidth=\dimen140 +\@defaultctblfooterwidth=\dimen141 +\@ctblw=\dimen142 +\@ctblfloatwidth=\dimen143 +\@ctbloldsep=\dimen144 +\@ctbloldrule=\dimen145 +\ctbl@t=\box27 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/multirow/multirow.sty +\bigstrutjot=\dimen146 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/subfig/subfig.sty +Package: subfig 2005/06/28 ver: 1.3 subfig package +(/usr/local/texlive/2012/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2012/02/19 v3.2f Customizing captions (AR) +(/usr/local/texlive/2012/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2012/01/12 v1.4b caption3 kernel (AR) +\captionmargin=\dimen147 +\captionmargin@=\dimen148 +\captionwidth=\dimen149 +\caption@indent=\dimen150 +\caption@parindent=\dimen151 +\caption@hangindent=\dimen152 +) +\c@ContinuedFloat=\count108 +Package caption Info: hyperref package is loaded. +Package caption Info: rotating package is loaded. +) +\c@KVtest=\count109 +\sf@farskip=\skip50 +\sf@captopadj=\dimen153 +\sf@capskip=\skip51 +\sf@nearskip=\skip52 +\c@subfigure=\count110 +\c@subfigure@save=\count111 +\c@lofdepth=\count112 +\c@subtable=\count113 +\c@subtable@save=\count114 +\c@lotdepth=\count115 +\sf@top=\skip53 +\sf@bottom=\skip54 +) + +LaTeX Warning: Unused global option(s): + [structabstract]. + +(./lsmtool.aux) +\openout1 = `lsmtool.aux'. + +LaTeX Font Info: Checking defaults for OML/txmi/m/it on input line 24. +LaTeX Font Info: Try loading font information for OML+txmi on input line 24. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/omltxmi.fd +File: omltxmi.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 24. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 24. +LaTeX Font Info: ... okay on input line 24. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 24. +LaTeX Font Info: ... okay on input line 24. +LaTeX Font Info: Checking defaults for OMS/txsy/m/n on input line 24. +LaTeX Font Info: Try loading font information for OMS+txsy on input line 24. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/omstxsy.fd +File: omstxsy.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 24. +LaTeX Font Info: Checking defaults for OMX/txex/m/n on input line 24. +LaTeX Font Info: Try loading font information for OMX+txex on input line 24. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/omxtxex.fd +File: omxtxex.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 24. +LaTeX Font Info: Checking defaults for U/txexa/m/n on input line 24. +LaTeX Font Info: Try loading font information for U+txexa on input line 24. +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/utxexa.fd +File: utxexa.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 24. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 24. +LaTeX Font Info: ... okay on input line 24. +LaTeX Font Info: Try loading font information for OT1+txr on input line 24. +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/ot1txr.fd +File: ot1txr.fd 2000/12/15 v3.1 +) +\AtBeginShipoutBox=\box28 +Package hyperref Info: Link coloring OFF on input line 24. +(/usr/local/texlive/2012/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2010/04/30 v2.40 Cross-referencing by name of section +(/usr/local/texlive/2012/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) +) +\c@section@level=\count116 +) +LaTeX Info: Redefining \ref on input line 24. +LaTeX Info: Redefining \pageref on input line 24. +LaTeX Info: Redefining \nameref on input line 24. +(./lsmtool.out) (./lsmtool.out) +\@outlinefile=\write3 +\openout3 = `lsmtool.out'. + +(/usr/local/texlive/2012/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count117 +\scratchdimen=\dimen154 +\scratchbox=\box29 +\nofMPsegments=\count118 +\nofMParguments=\count119 +\everyMPshowfont=\toks20 +\MPscratchCnt=\count120 +\MPscratchDim=\dimen155 +\MPnumerator=\count121 +\makeMPintoPDFobject=\count122 +\everyMPtoPDFconversion=\toks21 +) (/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf +(/usr/local/texlive/2012/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) +) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 452. +(/usr/local/texlive/2012/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: subfig package v1.3 is loaded. +Package caption Info: End \AtBeginDocument code. +LaTeX Font Info: Try loading font information for U+txmia on input line 29. +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/utxmia.fd +File: utxmia.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Try loading font information for U+txsya on input line 29. +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/utxsya.fd +File: utxsya.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Try loading font information for U+txsyb on input line 29. +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/utxsyb.fd +File: utxsyb.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Try loading font information for U+txsyc on input line 29. +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/utxsyc.fd +File: utxsyc.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Try loading font information for OT1+txtt on input line 29. + +(/usr/local/texlive/2012/texmf-dist/tex/latex/txfonts/ot1txtt.fd +File: ot1txtt.fd 2000/12/15 v3.1 +) [1 + +{/usr/local/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] +Overfull \hbox (53.86507pt too wide) in paragraph at lines 107--162 + [][] + [] + + +Overfull \hbox (2.74364pt too wide) in paragraph at lines 182--182 +[]\OT1/txtt/m/n/10 >>> LSM.add({'Name':'new_source', 'Type':'POINT', 'Ra':277.4 +232, 'Dec':48.3689, 'I':0.69})[] + [] + +[2] [3] +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 214. +[4] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 214. +(./lsmtool.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 214. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 214. +Package rerunfilecheck Info: File `lsmtool.out' has not changed. +(rerunfilecheck) Checksum: 62653F51F019715D3B957EE5CD75C0AB;328. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 214. + ) +Here is how much of TeX's memory you used: + 8244 strings out of 493488 + 121642 string characters out of 3141326 + 215371 words of memory out of 3000000 + 11425 multiletter control sequences out of 15000+200000 + 35783 words of font info for 94 fonts, out of 3000000 for 9000 + 957 hyphenation exceptions out of 8191 + 61i,9n,96p,934b,435s stack positions out of 5000i,500n,10000p,200000b,50000s +{/usr/local/texlive/2012/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/local/t +exlive/2012/texmf-dist/fonts/type1/public/txfonts/rtxmi.pfb></usr/local/texlive +/2012/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb></usr/local/texlive/2012/t +exmf-dist/fonts/type1/public/txfonts/txtt.pfb></usr/local/texlive/2012/texmf-di +st/fonts/type1/urw/times/utmb8a.pfb></usr/local/texlive/2012/texmf-dist/fonts/t +ype1/urw/times/utmr8a.pfb> +Output written on lsmtool.pdf (4 pages, 53399 bytes). +PDF statistics: + 76 PDF objects out of 1000 (max. 8388607) + 64 compressed objects within 1 object stream + 12 named destinations out of 1000 (max. 500000) + 41 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/docs/lsmtool.out b/docs/lsmtool.out new file mode 100644 index 0000000000000000000000000000000000000000..78b102561aebaf62d0bce1b632aa3fa698697d9e --- /dev/null +++ b/docs/lsmtool.out @@ -0,0 +1,5 @@ +\BOOKMARK [1][-]{section.1}{LSMTool: the LOFAR Local Sky Model Tool}{}% 1 +\BOOKMARK [2][-]{subsection.1.1}{Usage}{section.1}% 2 +\BOOKMARK [2][-]{subsection.1.2}{Operations}{section.1}% 3 +\BOOKMARK [2][-]{subsection.1.3}{Example parset}{section.1}% 4 +\BOOKMARK [2][-]{subsection.1.4}{Interactive use and scripting}{section.1}% 5 diff --git a/doc/lsmtool.pdf b/docs/lsmtool.pdf similarity index 100% rename from doc/lsmtool.pdf rename to docs/lsmtool.pdf diff --git a/docs/lsmtool.synctex.gz b/docs/lsmtool.synctex.gz new file mode 100644 index 0000000000000000000000000000000000000000..cdc84eda1db88024b82c824e48c6208dbc4bc835 Binary files /dev/null and b/docs/lsmtool.synctex.gz differ diff --git a/doc/lsmtool.tex b/docs/lsmtool.tex similarity index 100% rename from doc/lsmtool.tex rename to docs/lsmtool.tex diff --git a/doc/source/.DS_Store b/docs/source/.DS_Store similarity index 100% rename from doc/source/.DS_Store rename to docs/source/.DS_Store diff --git a/doc/source/conf.py b/docs/source/conf.py similarity index 100% rename from doc/source/conf.py rename to docs/source/conf.py diff --git a/doc/source/index.rst b/docs/source/index.rst similarity index 100% rename from doc/source/index.rst rename to docs/source/index.rst diff --git a/docs/source/lsmtool.rst b/docs/source/lsmtool.rst new file mode 100644 index 0000000000000000000000000000000000000000..6a572a1728c0728cfaab98a4bb1dd3c80d0525d7 --- /dev/null +++ b/docs/source/lsmtool.rst @@ -0,0 +1,39 @@ +LSMTool Module Documentation +============================ + +.. toctree:: + +lsmtool module +------------------------------- + +.. automodule:: lsmtool + :members: + :undoc-members: + :show-inheritance: + + +lsmtool.operations_lib module +----------------------------- + +.. automodule:: lsmtool.operations_lib + :members: + :undoc-members: + :show-inheritance: + +lsmtool.skymodel module +----------------------- + +.. automodule:: lsmtool.skymodel + :members: + :undoc-members: + :show-inheritance: + +lsmtool.tableio module +---------------------- + +.. automodule:: lsmtool.tableio + :members: + :undoc-members: + :show-inheritance: + + diff --git a/doc/source/overview.rst b/docs/source/overview.rst similarity index 100% rename from doc/source/overview.rst rename to docs/source/overview.rst diff --git a/docs/test/lsmtool.operations.rst b/docs/test/lsmtool.operations.rst new file mode 100644 index 0000000000000000000000000000000000000000..d0997457149b8e3c2b8fd69cfa4dbaab27f6225f --- /dev/null +++ b/docs/test/lsmtool.operations.rst @@ -0,0 +1,102 @@ +lsmtool.operations package +========================== + +Submodules +---------- + +lsmtool.operations.add module +----------------------------- + +.. automodule:: lsmtool.operations.add + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.concatenate module +------------------------------------- + +.. automodule:: lsmtool.operations.concatenate + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.group module +------------------------------- + +.. automodule:: lsmtool.operations.group + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.merge module +------------------------------- + +.. automodule:: lsmtool.operations.merge + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.move module +------------------------------ + +.. automodule:: lsmtool.operations.move + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.plot module +------------------------------ + +.. automodule:: lsmtool.operations.plot + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.remove module +-------------------------------- + +.. automodule:: lsmtool.operations.remove + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.select module +-------------------------------- + +.. automodule:: lsmtool.operations.select + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.setpatchpositions module +------------------------------------------- + +.. automodule:: lsmtool.operations.setpatchpositions + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.transfer module +---------------------------------- + +.. automodule:: lsmtool.operations.transfer + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations.ungroup module +--------------------------------- + +.. automodule:: lsmtool.operations.ungroup + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lsmtool.operations + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/test/lsmtool.rst b/docs/test/lsmtool.rst new file mode 100644 index 0000000000000000000000000000000000000000..65a688eb464a37f120b21184781427d0be68d55e --- /dev/null +++ b/docs/test/lsmtool.rst @@ -0,0 +1,53 @@ +lsmtool package +=============== + +Subpackages +----------- + +.. toctree:: + + lsmtool.operations + +Submodules +---------- + +lsmtool.lsmtool module +---------------------- + +.. automodule:: lsmtool.lsmtool + :members: + :undoc-members: + :show-inheritance: + +lsmtool.operations_lib module +----------------------------- + +.. automodule:: lsmtool.operations_lib + :members: + :undoc-members: + :show-inheritance: + +lsmtool.skymodel module +----------------------- + +.. automodule:: lsmtool.skymodel + :members: + :undoc-members: + :show-inheritance: + +lsmtool.tableio module +---------------------- + +.. automodule:: lsmtool.tableio + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lsmtool + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/test/modules.rst b/docs/test/modules.rst new file mode 100644 index 0000000000000000000000000000000000000000..70163ca4a8240831a17002576f0786b7b12a7df7 --- /dev/null +++ b/docs/test/modules.rst @@ -0,0 +1,7 @@ +lsmtool +======= + +.. toctree:: + :maxdepth: 4 + + lsmtool diff --git a/lsmtool/skymodel.py b/lsmtool/skymodel.py index f9ac7a387e7a6798b2bbec5df3222d69ac0700d1..63a59aacb645ddc90209fe23d21817b357eace07 100644 --- a/lsmtool/skymodel.py +++ b/lsmtool/skymodel.py @@ -845,7 +845,11 @@ class SkyModel(object): import numpy as np sourceNames = self.getColValues('Name') - patchNames = self.getColValues('Patch') + if self.hasPatches: + patchNames = self.getColValues('Patch') + else: + patchNames = [] + if rowName in sourceNames: return self._getNameIndx(rowName) elif rowName in patchNames: diff --git a/runtests.py b/runtests.py index f1081fe11678f3292dd04cd7c6d80881c92b0863..140b2a4b22824e856db55896fe02f4b1b4c58b93 100644 --- a/runtests.py +++ b/runtests.py @@ -1,6 +1,2979 @@ #! /usr/bin/env python -import subprocess +sources = """ +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 +N/r/XY5KpA== +""" + +import sys +import base64 +import zlib + +class DictImporter(object): + def __init__(self, sources): + self.sources = sources + + def find_module(self, fullname, path=None): + if fullname == "argparse" and sys.version_info >= (2,7): + # we were generated with <python2.7 (which pulls in argparse) + # but we are running now on a stdlib which has it, so use that. + return None + if fullname in self.sources: + return self + if fullname + '.__init__' in self.sources: + return self + return None + + def load_module(self, fullname): + # print "load_module:", fullname + from types import ModuleType + try: + s = self.sources[fullname] + is_pkg = False + except KeyError: + s = self.sources[fullname + '.__init__'] + is_pkg = True + + co = compile(s, fullname, 'exec') + module = sys.modules.setdefault(fullname, ModuleType(fullname)) + module.__file__ = "%s/%s" % (__file__, fullname) + module.__loader__ = self + if is_pkg: + module.__path__ = [fullname] + + do_exec(co, module.__dict__) # noqa + return sys.modules[fullname] + + def get_source(self, name): + res = self.sources.get(name) + if res is None: + res = self.sources.get(name + '.__init__') + return res if __name__ == "__main__": - subprocess.call(['python', 'tests/validation.py']) + if sys.version_info >= (3, 0): + exec("def do_exec(co, loc): exec(co, loc)\n") + import pickle + sources = sources.encode("ascii") # ensure bytes + sources = pickle.loads(zlib.decompress(base64.decodebytes(sources))) + else: + import cPickle as pickle + exec("def do_exec(co, loc): exec co in loc\n") + sources = pickle.loads(zlib.decompress(base64.decodestring(sources))) + + importer = DictImporter(sources) + sys.meta_path.insert(0, importer) + + entry = "import pytest; raise SystemExit(pytest.cmdline.main())" + do_exec(entry, locals()) # noqa diff --git a/setup.py b/setup.py index 004a09221d85208d2914da7513c538816621faa0..064272c8efb2d72f81db22265d5df021eb32d7d9 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,6 @@ from __future__ import print_function from setuptools import setup, Command import os - import lsmtool._version @@ -11,6 +10,21 @@ if os.path.exists('README.md'): with open('README.md') as f: long_description=f.read() + +class PyTest(Command): + user_options = [] + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + import sys,subprocess + errno = subprocess.call([sys.executable, 'runtests.py']) + raise SystemExit(errno) + + setup( name='lsmtool', version=lsmtool._version.__version__, @@ -29,7 +43,8 @@ setup( 'Topic :: Scientific/Engineering :: Astronomy', 'Topic :: Software Development :: Libraries :: Python Modules', ], - install_requires=['numpy','astropy'], - scripts = ['lsmtool/lsmtool.py'], + install_requires=['numpy','astropy >= 0.4'], + scripts = ['bin/lsmtool'], packages=['lsmtool','lsmtool.operations'], + cmdclass = {'test': PyTest}, ) diff --git a/tests/test_lsmtool.py b/tests/test_lsmtool.py new file mode 100644 index 0000000000000000000000000000000000000000..a281dae460ce30574c1f6b58669adbe9fdef0878 --- /dev/null +++ b/tests/test_lsmtool.py @@ -0,0 +1,39 @@ +#! /usr/bin/env python +# Runs an example of each operation +import lsmtool + +s = lsmtool.load('tests/no_patches.sky') + +print('Select individual sources with Stokes I fluxes above 1 Jy') +s.select('I > 1.0 Jy') + +print('Transfer patches from patches.sky') +s.transfer('tests/patches.sky') + +print('Remove patches with total fluxes below 2 Jy') +s.remove('I < 2.0 Jy', aggregate='sum') + +print('Ungroup the skymodel') +s.ungroup() + +print('Concatenate with concat.sky') +s.concatenate('tests/concat.sky', matchBy = 'position', radius = '30 arcsec', keep = 'from2') + +print('Add a source') +s.add({'Name': 'src1', 'Type': 'POINT', 'Ra': 277.4232, 'Dec': 48.3689, 'I': 0.69}) + +print('Group using tessellation to a target flux of 50 Jy') +s.group('tessellate', targetFlux = '50.0 Jy') + +print('Move patch Patch_1 to 16:04:16.2288, 58.03.06.912') +s.move('Patch_1', position = ['16:04:16.2288', '58.03.06.912']) + +print('Merge patches Patch_0 and Patch_2') +s.merge(['Patch_0', 'Patch_2'], name = 'merged_patch') + +print('Set patch positions to midpoint of patch and write final model to file') +s.setPatchPositions(method='mid') +s.write('tests/final.sky', clobber=True) + +print('Plot the sky model') +s.plot('tests/plot.pdf')