<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Ah, probably a PIL string method. <br>
<br>
Wayne Watson wrote:
<blockquote cite="mid:49E137CD.8000009@sbcglobal.net" type="cite">
  <pre wrap="">I successfully produced a 640x480 one byte file from the py program, and
called it sentinel_internal.raw. I'm now trying to figure out what
facility that I need to get this into a fits data structure. Probably
what is below will be fine, but, first though, I cannot read the .raw
file.  As far as I can tell, PIL, pyfits or numpy cannot do it.  Let me
put it another way.  I do not see any description in any of the
documents that I have that shows a way to do it.  Comments?

Peter Erwin wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">On Apr 8, 2009, at 1:50 PM, Wayne Watson wrote:

[snip]

    </pre>
    <blockquote type="cite">
      <pre wrap="">This is close to what I'm looking for. That is, executable Python code,
and not interactive code one enters line by line. Right now I'm lacking
a way to read, say, a jpg, fits, or gif file, and convert it to fits.
I'm also lacking a way to convert the internal image format to fits. The
latter is very important. The internal format is simple. An image
640x480 pixels and 8-bits deep, b/w. jpg, etc. is already done for
writing the internal file.  For fits files, I'd like to write very
simple headers that have, say, lat/long of observer, a time stamp, and
some other assorted items.

      </pre>
    </blockquote>
    <pre wrap="">*Writing* a FITS file using pyfits is not very difficult.  The bare-bones
description of this is in the pyfits manual ("Create FITS Images from 
Scratch",
on p.10, I think).  Since you're working with images, you need to have 
the image
data as a 2D numpy array (the example on p.10 uses a 1-D array).

(Pyfits manual available here: 
<a class="moz-txt-link-freetext" href="http://www.stsci.edu/resources/software_hardware/pyfits">http://www.stsci.edu/resources/software_hardware/pyfits</a> )


Since you say that the existing Python code handles the "internal image
format", then it must somewhere have the data in a Python data structure,
perhaps as a list of lists, or perhaps as a Python array.  You'll need to
go into this existing code and find out what the internal format is; then
you'll have some idea of how to convert it to a numpy array.  It might be
as simple as
   image_for_fits = numpy.array(image_oldformat)

Since your data is 8 bit, it would make sense to use a numpy *integer*
array; I believe pyfits is smart enough to save the result as an integer
FITS file.

The Pyfits manual also explains how to add header keywords (see the
chapter on Headers).

(Note that the Pyfits manual is still based on version 1.0, and so it 
refers to
"numarray" instead of "numpy"; you should just mentally substitute 
"numpy"
wherever you see "numarray" in the text.  The manual also has problems 
with
the chapter numbers, which don't agree between the Table of Contents and
the actual main text.  But this is a minor issue.)


As for jpeg, gif, etc. -- you have to find some Python code that can 
read those
formats (Python Imaging Library, perhaps?).  Once they've been read 
in, however,
you should be able to convert the resulting data structure to a numpy 
array,
and then you can write it as a FITS file.

cheers,

Peter

=============================================================
Peter Erwin                   Max-Planck-Insitute for Extraterrestrial
<a class="moz-txt-link-abbreviated" href="mailto:erwin@mpe.mpg.de">erwin@mpe.mpg.de</a>              Physics, Giessenbachstrasse
tel. +49 (0)89 30000 3695     85748 Garching, Germany
fax  +49 (0)89 30000 3495     <a class="moz-txt-link-freetext" href="http://www.mpe.mpg.de/~erwin">http://www.mpe.mpg.de/~erwin</a>




    </pre>
  </blockquote>
  <pre wrap=""><!---->
  </pre>
</blockquote>
<br>
<pre class="moz-signature" cols="76">-- 
           Wayne Watson (Watson Adventures, Prop., Nevada City, CA)

             (121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
              Obz Site:  39&deg; 15' 7" N, 121&deg; 2' 32" W, 2700 feet  

          "In arithemtic as in politics, the importance of one is
           determined by the number of zeros behind it." -- Anon 
</pre>
</body>
</html>