<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Anthony Smith&#039;s Research Blog &#187; Computing</title>
	<atom:link href="http://www.anthonysmith.me.uk/research/category/computing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.anthonysmith.me.uk/research</link>
	<description>Surveying the Universe</description>
	<lastBuildDate>Mon, 06 Feb 2012 10:25:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Generating LaTeX authors lists for MNRAS and A&amp;A</title>
		<link>http://www.anthonysmith.me.uk/research/2010/06/03/generating-latex-authors-lists-for-mnras-and-aa/</link>
		<comments>http://www.anthonysmith.me.uk/research/2010/06/03/generating-latex-authors-lists-for-mnras-and-aa/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 09:38:11 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[A&A]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[MNRAS]]></category>

		<guid isPermaLink="false">http://www.anthonysmith.me.uk/research/?p=303</guid>
		<description><![CDATA[Okay, a bit boring, but as promised, here are some Python functions to generate LaTeX source for long authors lists for MNRAS and A&#38;A. First, a small utility: def getSortedInstituteCodes&#40;authorList, authorInstituteCodes&#41;: &#34;&#34;&#34;Return a list of institute codes, in the correct order for authorList. &#160; authorList = [&#34;J.~Bloggs&#34;, &#34;A.N.~Other&#34;] authorInstituteCodes = {&#34;J.~Bloggs&#34;:1, &#34;A.N.~Other&#34;:[1,&#34;Sussex&#34;]} &#34;&#34;&#34; instituteCodes =&#8230;]]></description>
			<content:encoded><![CDATA[<p>Okay, a bit boring, but as <a href="http://www.anthonysmith.me.uk/research/2010/05/07/mnras-line-wrapping-in-authors-lists/">promised</a>, here are some Python functions to generate LaTeX source for long authors lists for MNRAS and A&amp;A.</p>
<p><span id="more-303"></span>First, a small utility:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> getSortedInstituteCodes<span style="color: black;">&#40;</span>authorList, authorInstituteCodes<span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;Return a list of institute codes, in the correct order for authorList.
&nbsp;
    authorList = [&quot;J.~Bloggs&quot;, &quot;A.N.~Other&quot;]
    authorInstituteCodes = {&quot;J.~Bloggs&quot;:1, &quot;A.N.~Other&quot;:[1,&quot;Sussex&quot;]}
    &quot;&quot;&quot;</span>
    instituteCodes = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
    <span style="color: #ff7700;font-weight:bold;">for</span> author <span style="color: #ff7700;font-weight:bold;">in</span> authorList:
        codes = authorInstituteCodes<span style="color: black;">&#91;</span>author<span style="color: black;">&#93;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">hasattr</span><span style="color: black;">&#40;</span>codes, <span style="color: #483d8b;">'__iter__'</span><span style="color: black;">&#41;</span>:
            codes = <span style="color: black;">&#91;</span>codes<span style="color: black;">&#93;</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: #dc143c;">code</span> <span style="color: #ff7700;font-weight:bold;">in</span> codes:
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #dc143c;">code</span> <span style="color: #ff7700;font-weight:bold;">in</span> instituteCodes:
                instituteCodes.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">code</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">return</span> instituteCodes</pre></div></div>

<p>then the function for MNRAS:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> getAuthorsStringMNRAS<span style="color: black;">&#40;</span>authorList, authorInstituteCodes, institutesTex,
                          authorEmails<span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;Return a string containing LaTeX for MNRAS authors list.
&nbsp;
    authorList = [&quot;J.~Bloggs&quot;, &quot;A.N.~Other&quot;]
    authorInstituteCodes = {&quot;J.~Bloggs&quot;:1, &quot;A.N.~Other&quot;:[1,&quot;Sussex&quot;]}
    institutesTex = {1:&quot;Somewhere, Earth&quot;, &quot;Sussex&quot;:&quot;University of Sussex&quot;}
    authorEmails = {&quot;J.~Bloggs&quot;: &quot;j.bloggs@no.where&quot;}
    &quot;&quot;&quot;</span>
    instituteCodes = getSortedInstituteCodes<span style="color: black;">&#40;</span>authorList, authorInstituteCodes<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Make a list of strings:</span>
    <span style="color: #808080; font-style: italic;"># &quot;Author Name$^{1,2}$\thanks{E-mail: \texttt{j.bloggs@no.where}}&quot;</span>
    authorInstituteList = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
    <span style="color: #ff7700;font-weight:bold;">for</span> author <span style="color: #ff7700;font-weight:bold;">in</span> authorList:
        <span style="color: #ff7700;font-weight:bold;">try</span>:
            codes = authorInstituteCodes<span style="color: black;">&#91;</span>author<span style="color: black;">&#93;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">hasattr</span><span style="color: black;">&#40;</span>codes, <span style="color: #483d8b;">'__iter__'</span><span style="color: black;">&#41;</span>:
                codes = <span style="color: black;">&#91;</span>codes<span style="color: black;">&#93;</span>  <span style="color: #808080; font-style: italic;"># Only one institute code for this author</span>
            authorInstituteList.<span style="color: black;">append</span><span style="color: black;">&#40;</span>
                author
                + <span style="color: #483d8b;">',$^{'</span> + <span style="color: #483d8b;">','</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>instituteCodes.<span style="color: black;">index</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">code</span><span style="color: black;">&#41;</span> + <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
                                     <span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: #dc143c;">code</span> <span style="color: #ff7700;font-weight:bold;">in</span> codes<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
                + <span style="color: #483d8b;">'}$'</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">KeyError</span>:
            authorInstituteList.<span style="color: black;">append</span><span style="color: black;">&#40;</span>author + <span style="color: #483d8b;">','</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">try</span>:
            <span style="color: #dc143c;">email</span> = authorEmails<span style="color: black;">&#91;</span>author<span style="color: black;">&#93;</span>
            authorInstituteList<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> += <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>thanks{E-mail: <span style="color: #000099; font-weight: bold;">\\</span>texttt{'</span>
            authorInstituteList<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> += <span style="color: #dc143c;">email</span> + <span style="color: #483d8b;">'}}'</span>
        <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">KeyError</span>:
            <span style="color: #ff7700;font-weight:bold;">pass</span> <span style="color: #808080; font-style: italic;"># No email address for this author</span>
    <span style="color: #808080; font-style: italic;"># Sort out the punctuation (won't work if the penultimate or ultimate</span>
    <span style="color: #808080; font-style: italic;"># author has no institute)</span>
    authorInstituteList<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span> = authorInstituteList<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">',$'</span>, <span style="color: #483d8b;">'$'</span><span style="color: black;">&#41;</span>
    authorInstituteList<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span> += <span style="color: #483d8b;">' and'</span>
    authorInstituteList<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> = authorInstituteList<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">',$'</span>, <span style="color: #483d8b;">'$'</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Put it all together</span>
    authorsString = <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>author['</span> + authorList<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span> + <span style="color: #483d8b;">' et al.]'</span>
    authorsString += <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>{<span style="color: #000099; font-weight: bold;">\\</span>parbox{<span style="color: #000099; font-weight: bold;">\\</span>textwidth}{'</span>
    authorsString += <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>authorInstituteList<span style="color: black;">&#41;</span>
    authorsString += <span style="color: #483d8b;">'}<span style="color: #000099; font-weight: bold;">\\</span>vspace{0.4cm}<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\n</span>'</span>
    authorsString += <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>parbox{<span style="color: #000099; font-weight: bold;">\\</span>textwidth}{'</span>
    authorsString += <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\n</span>'</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'$^{'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>iInst + <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'}$'</span>
                                    + institutesTex<span style="color: black;">&#91;</span>instituteCodes<span style="color: black;">&#91;</span>iInst<span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
                                    <span style="color: #ff7700;font-weight:bold;">for</span> iInst <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span>instituteCodes<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
    authorsString += <span style="color: #483d8b;">'}}<span style="color: #000099; font-weight: bold;">\n</span>'</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">return</span> authorsString</pre></div></div>

<p>and the function for A&amp;A:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> getAuthorsStringAA<span style="color: black;">&#40;</span>authorList, authorInstituteCodes, institutesTex,
                       authorEmails<span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;Return a string containing LaTeX for A&amp;amp;A authors list.
&nbsp;
    authorList = [&quot;J.~Bloggs&quot;, &quot;A.N.~Other&quot;]
    authorInstituteCodes = {&quot;J.~Bloggs&quot;:1, &quot;A.N.~Other&quot;:[1,&quot;Sussex&quot;]}
    institutesTex = {1:&quot;Somewhere, Earth&quot;, &quot;Sussex&quot;:&quot;University of Sussex&quot;}
    authorEmails = {&quot;J.~Bloggs&quot;: &quot;j.bloggs@no.where&quot;}
    &quot;&quot;&quot;</span>
    instituteCodes = getSortedInstituteCodes<span style="color: black;">&#40;</span>authorList, authorInstituteCodes<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Associate institute numbers with authors and emails with institutes</span>
    authorInstituteList = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>  <span style="color: #808080; font-style: italic;"># A list of &quot;Author Name\inst{1,2}&quot; strings</span>
    instituteEmails = <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span>  <span style="color: #808080; font-style: italic;"># A dictionary of email addresses for each institute</span>
    <span style="color: #ff7700;font-weight:bold;">for</span> author <span style="color: #ff7700;font-weight:bold;">in</span> authorList:
        <span style="color: #ff7700;font-weight:bold;">try</span>:
            codes = authorInstituteCodes<span style="color: black;">&#91;</span>author<span style="color: black;">&#93;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">hasattr</span><span style="color: black;">&#40;</span>codes, <span style="color: #483d8b;">'__iter__'</span><span style="color: black;">&#41;</span>:
                codes = <span style="color: black;">&#91;</span>codes<span style="color: black;">&#93;</span>  <span style="color: #808080; font-style: italic;"># Only one institute code for this author</span>
            authorInstituteList.<span style="color: black;">append</span><span style="color: black;">&#40;</span>
                author + <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\i</span>nst{'</span>
                + <span style="color: #483d8b;">','</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>instituteCodes.<span style="color: black;">index</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">code</span><span style="color: black;">&#41;</span> + <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
                            <span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: #dc143c;">code</span> <span style="color: #ff7700;font-weight:bold;">in</span> codes<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
                + <span style="color: #483d8b;">'}'</span><span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">try</span>:
                <span style="color: #dc143c;">email</span> = authorEmails<span style="color: black;">&#91;</span>author<span style="color: black;">&#93;</span>
                <span style="color: #ff7700;font-weight:bold;">try</span>:
                    instituteEmails<span style="color: black;">&#91;</span>codes<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">email</span><span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">KeyError</span>:  <span style="color: #808080; font-style: italic;"># First email address for this institute</span>
                    instituteEmails<span style="color: black;">&#91;</span>codes<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> = <span style="color: black;">&#91;</span><span style="color: #dc143c;">email</span><span style="color: black;">&#93;</span>
            <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">KeyError</span>:
                <span style="color: #ff7700;font-weight:bold;">pass</span> <span style="color: #808080; font-style: italic;"># No email address associated with author</span>
        <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">KeyError</span>:
            authorInstituteList.<span style="color: black;">append</span><span style="color: black;">&#40;</span>author<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Create a list of &quot;Institute Name, Address\\</span>
    <span style="color: #808080; font-style: italic;">#                   \email{j.bloggs@no.where}&quot; strings</span>
    instituteEmailList = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
    <span style="color: #ff7700;font-weight:bold;">for</span> instituteCode <span style="color: #ff7700;font-weight:bold;">in</span> instituteCodes:
        <span style="color: #ff7700;font-weight:bold;">try</span>:
            emails = instituteEmails<span style="color: black;">&#91;</span>instituteCode<span style="color: black;">&#93;</span>
            instituteEmailList.<span style="color: black;">append</span><span style="color: black;">&#40;</span>
                institutesTex<span style="color: black;">&#91;</span>instituteCode<span style="color: black;">&#93;</span>
                + <span style="color: #483d8b;">''</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\e</span>mail{'</span> + <span style="color: #dc143c;">email</span> + <span style="color: #483d8b;">'}'</span> <span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: #dc143c;">email</span> <span style="color: #ff7700;font-weight:bold;">in</span> emails<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">KeyError</span>:
            instituteEmailList.<span style="color: black;">append</span><span style="color: black;">&#40;</span>institutesTex<span style="color: black;">&#91;</span>instituteCode<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Put it all together</span>
    authorsString = <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>author{'</span>
    authorsString += <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\\</span>and '</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>authorInstituteList<span style="color: black;">&#41;</span>
    authorsString += <span style="color: #483d8b;">'}<span style="color: #000099; font-weight: bold;">\n</span>'</span>
    authorsString += <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>institute{'</span>
    authorsString += <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\\</span>and '</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>instituteEmailList<span style="color: black;">&#41;</span>
    authorsString += <span style="color: #483d8b;">'}<span style="color: #000099; font-weight: bold;">\n</span>'</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">return</span> authorsString</pre></div></div>

<p>Anyone still reading?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonysmith.me.uk/research/2010/06/03/generating-latex-authors-lists-for-mnras-and-aa/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>MNRAS line wrapping in authors lists</title>
		<link>http://www.anthonysmith.me.uk/research/2010/05/07/mnras-line-wrapping-in-authors-lists/</link>
		<comments>http://www.anthonysmith.me.uk/research/2010/05/07/mnras-line-wrapping-in-authors-lists/#comments</comments>
		<pubDate>Fri, 07 May 2010 11:08:29 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[MNRAS]]></category>

		<guid isPermaLink="false">http://www.anthonysmith.me.uk/research/?p=290</guid>
		<description><![CDATA[In case anyone else using the MNRAS LaTeX class has been tearing their hair out inserting line breaks manually into long author (and institution) lists, using \newauthor, here's how I did it: \author[J.~Bloggs et al.] {\parbox{\textwidth}{J.~Bloggs,$^{1}$\thanks{E-mail: \texttt{j.bloggs@no.where}} J.~Bloggs,$^{2,3}$ J.~Bloggs,$^{3}$ J.~Bloggs,$^{4}$ J.~Bloggs,$^{5}$ J.~Bloggs,$^{6}$ %... J.~Bloggs$^{99}$ and J.~Bloggs$^{100}$}\vspace{0.4cm}\\ \parbox{\textwidth}{$^{1}$Department of Something, Somewhere\\ $^{2}$Department of Something, Somewhere\\ $^{3}$Department&#8230;]]></description>
			<content:encoded><![CDATA[<p>In case anyone else using the <a href="http://www.wiley.com/bw/static/mnras_latex.asp">MNRAS LaTeX class</a> has been tearing their hair out inserting line breaks manually into long author (and institution) lists, using <code>\newauthor</code>, here's how I did it:</p>

<div class="wp_syntax"><div class="code"><pre class="latex" style="font-family:monospace;"><span style="color: #E02020; ">\</span><span style="color: #800000;">author</span><span style="color: #E02020; ">[</span><span style="color: #C08020; font-weight: normal;">J.~Bloggs et al.</span><span style="color: #E02020; ">]</span>
<span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">\<span style="color: #800000;">parbox</span><span style="color: #E02020; ">{\</span><span style="color: #800000;">textwidth</span></span><span style="color: #E02020; ">}{</span><span style="color: #2020C0; font-weight: normal;">J.~Bloggs,<span style="color: #8020E0; font-weight: normal;">$^{1</span>}$</span><span style="color: #E02020; ">\</span><span style="color: #800000;">thanks</span><span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">E-mail: \<span style="color: #800000;">texttt</span>{j.bloggs@no.where</span><span style="color: #E02020; ">}}</span>
J.~Bloggs,<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">2,3</span>}$</span>
J.~Bloggs,<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">3</span>}$</span>
J.~Bloggs,<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">4</span>}$</span>
J.~Bloggs,<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">5</span>}$</span>
J.~Bloggs,<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">6</span>}$</span>
<span style="color: #2C922C; font-style: italic;">%...</span>
J.~Bloggs<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">99</span>}$</span> and
J.~Bloggs<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">100</span>}$</span><span style="color: #E02020; ">}\</span><span style="color: #800000;">vspace</span><span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">0.4cm</span><span style="color: #E02020; ">}\\</span>
<span style="color: #E02020; ">\</span><span style="color: #800000;">parbox</span><span style="color: #E02020; ">{</span><span style="color: #2020C0; font-weight: normal;">\<span style="color: #800000;">textwidth</span></span><span style="color: #E02020; ">}{</span><span style="color: #2020C0; font-weight: normal;"><span style="color: #8020E0; font-weight: normal;">$^{1</span>}$</span>Department of Something, Somewhere<span style="color: #E02020; ">\\</span>
<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">2</span>}$</span>Department of Something, Somewhere<span style="color: #E02020; ">\\</span>
<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">3</span>}$</span>Department of Something, Somewhere<span style="color: #E02020; ">\\</span>
<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">4</span>}$</span>Department of Something, Somewhere<span style="color: #E02020; ">\\</span>
<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">5</span>}$</span>Department of Something, Somewhere<span style="color: #E02020; ">\\</span>
<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">6</span>}$</span>Department of Something, Somewhere<span style="color: #E02020; ">\\</span>
<span style="color: #2C922C; font-style: italic;">%...</span>
<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">99</span>}$</span>Department of Something, Somewhere<span style="color: #E02020; ">\\</span>
<span style="color: #8020E0; font-weight: normal;">$^{<span style="color: #2020C0; font-weight: normal;">100</span>}$</span>Department of Something, Somewhere<span style="color: #E02020; ">}}</span></pre></div></div>

<p>Next: a Python script to generate the above from a simple list of authors and affiliations.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonysmith.me.uk/research/2010/05/07/mnras-line-wrapping-in-authors-lists/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Astropython</title>
		<link>http://www.anthonysmith.me.uk/research/2010/01/19/astropython/</link>
		<comments>http://www.anthonysmith.me.uk/research/2010/01/19/astropython/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 10:48:25 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.anthonysmith.me.uk/research/?p=276</guid>
		<description><![CDATA[You (both of you) might well be interested in the new Astropython site, which looks excellent. Here's the site's own description: Research in astronomy includes the analysis of astronomical images, parsing and manipulation of large catalogs, statistical yet often visual inference, and the creation of data visualizations for publication and dissemination of results. The purpose&#8230;]]></description>
			<content:encoded><![CDATA[<p>You (both of you) might well be interested in the new <a href="http://www.astropython.org/">Astropython</a> site, which looks excellent. Here's <a href="http://www.astropython.org/about">the site's own description</a>:</p>
<blockquote><p>Research in astronomy includes the analysis of astronomical images, parsing and manipulation of large catalogs, statistical yet often visual inference, and the creation of data visualizations for publication and dissemination of results.</p>
<p>The purpose of this web site is to act as a community knowledge base for performing this research with the open source Python language. It provides a forum for general discussion, advice, or relevant news items, collecting lists of useful resources, users' code snippets or scripts, and longer tutorials on specific topics. The topics within these pages are presented in a list view with the ability to sort by date or topic. A traditional "blog" view of the most recently posted topics is visible from the site Home page.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonysmith.me.uk/research/2010/01/19/astropython/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing noisy images</title>
		<link>http://www.anthonysmith.me.uk/research/2009/05/13/visualizing-noisy-images/</link>
		<comments>http://www.anthonysmith.me.uk/research/2009/05/13/visualizing-noisy-images/#comments</comments>
		<pubDate>Wed, 13 May 2009 11:51:43 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[photometry]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.anthonysmith.me.uk/research/?p=196</guid>
		<description><![CDATA[You have an image. Each pixel has a value with some uncertainty. How do you visualize the uncertainty in each pixel? Like this: Here's the Python code import numpy as np from matplotlib import pyplot as plt &#160; class FlickerImage&#40;object&#41;: def __init__&#40;self, im, err&#41;: self.im = im.copy&#40;&#41; self.err = err.copy&#40;&#41; finite = np.isfinite&#40;self.im + self.err&#41;&#8230;]]></description>
			<content:encoded><![CDATA[<p>You have an image. Each pixel has a value with some uncertainty. How do you visualize the uncertainty in each pixel? Like this:</p>
<p><a href="http://www.anthonysmith.me.uk/research/wp-content/uploads/2009/05/flicker_image.gif"><img class="alignnone size-full wp-image-197" title="flicker_image" src="http://www.anthonysmith.me.uk/research/wp-content/uploads/2009/05/flicker_image.gif" alt="flicker_image" width="100%" /></a></p>
<p>Here's the Python code</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> numpy <span style="color: #ff7700;font-weight:bold;">as</span> np
<span style="color: #ff7700;font-weight:bold;">from</span> matplotlib <span style="color: #ff7700;font-weight:bold;">import</span> pyplot <span style="color: #ff7700;font-weight:bold;">as</span> plt
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> FlickerImage<span style="color: black;">&#40;</span><span style="color: #008000;">object</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, im, err<span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">im</span> = im.<span style="color: #dc143c;">copy</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">err</span> = err.<span style="color: #dc143c;">copy</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        finite = np.<span style="color: black;">isfinite</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">im</span> + <span style="color: #008000;">self</span>.<span style="color: black;">err</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">vmin</span> = <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">im</span> - <span style="color: #ff4500;">2</span> <span style="color: #66cc66;">*</span> <span style="color: #008000;">self</span>.<span style="color: black;">err</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span>finite<span style="color: black;">&#93;</span>.<span style="color: #008000;">min</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">vmax</span> = <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">im</span> + <span style="color: #ff4500;">2</span> <span style="color: #66cc66;">*</span> <span style="color: #008000;">self</span>.<span style="color: black;">err</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span>finite<span style="color: black;">&#93;</span>.<span style="color: #008000;">max</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">im</span><span style="color: black;">&#91;</span>np.<span style="color: black;">invert</span><span style="color: black;">&#40;</span>finite<span style="color: black;">&#41;</span><span style="color: black;">&#93;</span> = <span style="color: #008000;">self</span>.<span style="color: black;">vmax</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">err</span><span style="color: black;">&#91;</span>np.<span style="color: black;">invert</span><span style="color: black;">&#40;</span>finite<span style="color: black;">&#41;</span><span style="color: black;">&#93;</span> = <span style="color: #ff4500;">0</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> flicker<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        fg = plt.<span style="color: black;">imshow</span><span style="color: black;">&#40;</span>np.<span style="color: black;">zeros</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">im</span>.<span style="color: black;">shape</span><span style="color: black;">&#41;</span>,
                        interpolation=<span style="color: #483d8b;">'nearest'</span>,
                        vmin=<span style="color: #008000;">self</span>.<span style="color: black;">vmin</span>,
                        vmax=<span style="color: #008000;">self</span>.<span style="color: black;">vmax</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
            ran = np.<span style="color: #dc143c;">random</span>.<span style="color: black;">normal</span><span style="color: black;">&#40;</span>size=im.<span style="color: black;">shape</span><span style="color: black;">&#41;</span>
            fg.<span style="color: black;">set_data</span><span style="color: black;">&#40;</span>im + err <span style="color: #66cc66;">*</span> ran<span style="color: black;">&#41;</span>
            plt.<span style="color: black;">draw</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>And here's an example script:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> pyfits
f = pyfits.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'file.fits'</span><span style="color: black;">&#41;</span>
im = f<span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;IMAGE&quot;</span><span style="color: black;">&#93;</span>.<span style="color: black;">data</span>
err = f<span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;ERROR&quot;</span><span style="color: black;">&#93;</span>.<span style="color: black;">data</span>
flicker_image = FlickerImage<span style="color: black;">&#40;</span>im, err<span style="color: black;">&#41;</span>
flicker_image.<span style="color: black;">flicker</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.anthonysmith.me.uk/research/2009/05/13/visualizing-noisy-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python, FITS and DS9</title>
		<link>http://www.anthonysmith.me.uk/research/2009/04/01/python-fits-and-ds9/</link>
		<comments>http://www.anthonysmith.me.uk/research/2009/04/01/python-fits-and-ds9/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 13:06:34 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[DS9]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.anthonysmith.me.uk/research/?p=188</guid>
		<description><![CDATA[Here's an easy way to display FITS images (or any array) in DS9 using Python (with PyFITS, NumPy and Numdisplay, which is part of stsci_python). First launch DS9, then in Python: import numdisplay import pyfits arr = pyfits.getdata&#40;'file.fits'&#41; numdisplay.display&#40;arr&#41; Easy! Alternatively, the Kapteyn package seems excellent, and uses Python's matplotlib for displaying images. It requires&#8230;]]></description>
			<content:encoded><![CDATA[<p>Here's an easy way to display <a href="http://heasarc.gsfc.nasa.gov/docs/heasarc/fits.html">FITS</a> images (or any array) in <a href="http://hea-www.harvard.edu/RD/ds9/">DS9</a> using <a href="http://python.org/">Python</a> (with <a href="http://www.stsci.edu/resources/software_hardware/pyfits">PyFITS</a>, <a href="http://numpy.scipy.org/">NumPy</a> and <a href="http://stsdas.stsci.edu/numdisplay/">Numdisplay</a>, which is part of <a href="http://www.stsci.edu/resources/software_hardware/pyraf/stsci_python/">stsci_python</a>). First launch DS9, then in Python:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> numdisplay
<span style="color: #ff7700;font-weight:bold;">import</span> pyfits
arr = pyfits.<span style="color: black;">getdata</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'file.fits'</span><span style="color: black;">&#41;</span>
numdisplay.<span style="color: black;">display</span><span style="color: black;">&#40;</span>arr<span style="color: black;">&#41;</span></pre></div></div>

<p>Easy!</p>
<p>Alternatively, the <a href="http://www.astro.rug.nl/software/kapteyn/">Kapteyn package</a> seems excellent, and uses Python's <a href="http://matplotlib.sourceforge.net/">matplotlib</a> for displaying images. <del>It requires <a href="http://www.atnf.csiro.au/people/mcalabre/WCS/">WCSLIB</a> to run, though, so the installation process is a bit longer</del> [update: apparently that bit is no longer true - 17 Oct 2011].</p>
<p>A third option is to use <a href="http://code.google.com/p/python-sao/">python-sao</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> pysao
<span style="color: #ff7700;font-weight:bold;">import</span> pyfits
ds9 = pysao.<span style="color: black;">ds9</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
f = pyfits.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'file.fits'</span><span style="color: black;">&#41;</span>
ds9.<span style="color: black;">view</span><span style="color: black;">&#40;</span>f<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Easy again! And the WCS information is preserved, which doesn't seem to be the case with Numdisplay.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonysmith.me.uk/research/2009/04/01/python-fits-and-ds9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PSFs in IDL</title>
		<link>http://www.anthonysmith.me.uk/research/2009/03/18/psfs-in-idl/</link>
		<comments>http://www.anthonysmith.me.uk/research/2009/03/18/psfs-in-idl/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 15:14:52 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[IDL]]></category>
		<category><![CDATA[point sources]]></category>

		<guid isPermaLink="false">http://www.anthonysmith.me.uk/research/?p=175</guid>
		<description><![CDATA[Two methods of approximating a point-spread function in IDL: 1. StarFinder seems to do a great job at finding point sources in crowded fields. It includes a routine for generating the Airy pattern. For a 51 x 51 array, with the peak at [25, 25], and an FWHM of 8.0 pixels, this is the command:&#8230;]]></description>
			<content:encoded><![CDATA[<p>Two methods of approximating a <a href="http://en.wikipedia.org/wiki/Point_spread_function">point-spread function</a> in IDL:</p>
<p>1. <a href="http://www.bo.astro.it/~giangi/StarFinder/">StarFinder</a> seems to do a great job at finding point sources in crowded fields. It includes a routine for generating the <a href="http://en.wikipedia.org/wiki/Airy_pattern">Airy pattern</a>. For a 51 x 51 array, with the peak at [25, 25], and an FWHM of 8.0 pixels, this is the command:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">psf = airy_pattern(51, 51, 25, 25, 2./8.0)
isurface, psf</pre></div></div>

<p>The output looks something like this:</p>
<p><img class="alignnone size-full wp-image-179" title="PSF Airy pattern (StarFinder/IDL)" src="http://www.anthonysmith.me.uk/research/wp-content/uploads/2009/03/psf_airy.png" alt="PSF Airy pattern (StarFinder/IDL)" width="480" height="321" /></p>
<p>2. The <a href="http://idlastro.gsfc.nasa.gov/">IDL Astronomy User's Library</a> contains a routine, psf_gaussian, that produces a Gaussian PSF. To produce the same as above, the command would be:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">psf = psf_gaussian(npix=51, fwhm=8.0, /double)
isurface, psf</pre></div></div>

<p>... which produces something like this:</p>
<p><img class="alignnone size-full wp-image-180" title="PSF Gaussian (IDL Astronomy User's Library)" src="http://www.anthonysmith.me.uk/research/wp-content/uploads/2009/03/psf_gaussian.png" alt="PSF Gaussian (IDL Astronomy User's Library)" width="479" height="324" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonysmith.me.uk/research/2009/03/18/psfs-in-idl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The eclipse of IDL 7</title>
		<link>http://www.anthonysmith.me.uk/research/2009/03/03/the-eclipse-of-idl-7/</link>
		<comments>http://www.anthonysmith.me.uk/research/2009/03/03/the-eclipse-of-idl-7/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 18:54:32 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[IDL]]></category>

		<guid isPermaLink="false">http://www.anthonysmith.me.uk/research/?p=168</guid>
		<description><![CDATA[I've finally made the transition from IDL 6.4 to IDL 7. Here are my handy hints... IDL Workbench rocks! (This is because it is basically Eclipse, which is a proper development environment, unlike that hideous old IDLDE.) Another reason for using IDL Workbench (for me at least, and for now) is that IDL help doesn't&#8230;]]></description>
			<content:encoded><![CDATA[<p>I've finally made the transition from <a href="http://www.ittvis.com/idl/">IDL</a> 6.4 to IDL 7. Here are my handy hints...</p>
<ul>
<li>IDL Workbench rocks! (This is because it is basically <a href="http://www.eclipse.org/">Eclipse</a>, which is a proper development environment, unlike that hideous old IDLDE.)</li>
<li>Another reason for using IDL Workbench (for me at least, and for now) is that IDL help doesn't seem to work if Java 6 is the default (as it is on my Mac), but the help <em>does</em> work if launched through the IDL Workbench.</li>
</ul>
<p>To transition to IDL Workbench:</p>
<ol>
<li>Import your code as described on <a href="http://www.dfanning.com/workbench/setup_projects.html">David Fanning's page</a> - fret not, it's easy and harmless</li>
<li>Preferences -&gt; IDL -&gt; Startup file, if you have one, and</li>
<li>Preferences -&gt; IDL -&gt; Paths -&gt; Insert... for me it was just my idl folder, including all sub-folders, to mimic my $IDL_PATH environment variable.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonysmith.me.uk/research/2009/03/03/the-eclipse-of-idl-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pIDLy: IDL within Python</title>
		<link>http://www.anthonysmith.me.uk/research/2008/01/31/pidly-idl-within-python/</link>
		<comments>http://www.anthonysmith.me.uk/research/2008/01/31/pidly-idl-within-python/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 14:35:09 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[IDL]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.anthonysmith.me.uk/2008/01/31/pidly-idl-within-python/</guid>
		<description><![CDATA[Now Python and IDL can talk to each other (okay, Python talks to IDL and IDL does what it's told), using pIDLy (pronounce as you please). I experimented with a few other solutions available online but couldn't get them to work. So I cobbled this one together with surprisingly little trouble, thanks largely to pexpect.]]></description>
			<content:encoded><![CDATA[<p>Now Python and IDL can talk to each other (okay, Python talks to IDL and IDL does what it's told), using <a title="pIDLy" href="http://astronomy.sussex.ac.uk/~anthonys/pidly/">pIDLy</a> (pronounce as you please). I experimented with a few other solutions available online but couldn't get them to work. So I cobbled this one together with surprisingly little trouble, thanks largely to <a href="http://pexpect.sourceforge.net/">pexpect</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonysmith.me.uk/research/2008/01/31/pidly-idl-within-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IDL code miscellany</title>
		<link>http://www.anthonysmith.me.uk/research/2008/01/28/idl-code-miscellany/</link>
		<comments>http://www.anthonysmith.me.uk/research/2008/01/28/idl-code-miscellany/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 13:15:58 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[IDL]]></category>

		<guid isPermaLink="false">http://www.anthonysmith.me.uk/2008/01/28/idl-code-miscellany/</guid>
		<description><![CDATA[IDLdoc 3.0 (more info here) gives my badly-written bits of IDL the deceptive appearance of being well designed, useful and user-friendly. So I've made a few available here for your enjoyment.]]></description>
			<content:encoded><![CDATA[<p><a title="IDLdoc downloads page" href="http://idldoc.idldev.com/wiki/Downloads">IDLdoc 3.0</a> (more info <a title="Getting Started with IDLdoc" href="http://idldoc.idldev.com/wiki/GettingStarted">here</a>) gives my badly-written bits of <a title="IDL homepage" href="http://www.ittvis.com/idl/">IDL</a> the deceptive appearance of being well designed, useful and user-friendly. So I've made a few available <a title="Anthony Smith's IDL routines" href="http://astronomy.sussex.ac.uk/~anthonys/idldoc/">here</a> for your enjoyment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonysmith.me.uk/research/2008/01/28/idl-code-miscellany/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

