<?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; visualization</title>
	<atom:link href="http://www.anthonysmith.me.uk/research/tag/visualization/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>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>
	</channel>
</rss>

