IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Opened 22 years ago

Closed 22 years ago

Last modified 22 years ago

#105 closed defect (fixed)

Astronomical Image struct definitions

Reported by: robert.desonia@… Owned by: Paul Price
Priority: high Milestone:
Component: PSLib SDRS Version: unspecified
Severity: minor Keywords:
Cc: george.gusciora@…

Description

I noticed that the latest SDRS still doesn't have psArray in psCell/psChip/etc.

I've made a crack at it, see attached header file. Does this look right to you
too? Oh, and I expanded some of the member names to make things abit less
cryptic; do you approve?

Attachments (1)

psCCD.h (7.2 KB ) - added by robert.desonia@… 22 years ago.
the implementation of 5.4, for review.

Download all attachments as: .zip

Change History (9)

by robert.desonia@…, 22 years ago

Attachment: psCCD.h added

the implementation of 5.4, for review.

comment:1 by robert.desonia@…, 22 years ago

(From update of attachment 4)

/ @file psCCD.h

*

  • @brief Contains basic CCD image definitions and operations *
  • This file defines the basic types for astronomical imagery, including
  • the concepts of: Readout, Cell, Chip, Focal Plane, and Exposure Information. *
  • @ingroup AstroImage *
  • @author Robert DeSonia, MHPCC *
  • @version $Revision: 1.1 $ $Name: $
  • @date $Date: 2004/07/16 02:15:51 $ *
  • Copyright 2004 Maui High Performance Computing Center, University of Hawaii */

# ifndef PS_CCD_H
# define PS_CCD_H

#include "psType.h"
#include "psImage.h"
#include "psList.h"
#include "psArray.h"

typedef void psMetadata; not yet defined/implemented.
typedef void psPlaneTransform;
not yet defined/implemented.
typedef void psPlaneDistort; not yet defined/implemented.
typedef void psFixedPattern;
not yet defined/implemented.
typedef void psPhotSystem; not yet defined/implemented.

struct psCell;
struct psChip;
struct psFPA;
struct psExposure;

/ @addtogroup Image
/ @{

/ Readout data structure.

*

  • A readout is the result of a single read of a cell (or a portion thereof).
  • It contains a pointer to the pixel data, and additional pointers to the
  • objects found in the readout, and the readout metadata. It also contains
  • the offset from the lower-left corner of the chip, in the case that the
  • CCD was windowed. * */

typedef struct
{

const unsigned int colBins; /< Amount of binning in x-dimension
const unsigned int rowBins;
/< Amount of binning in y-dimension
const int col0; /< Offset from the left of chip.
const int row0;
/< Offset from the bottom of chip.

psImage* image; /< imaging area of Readout
psList* objects;
/< objects derived from Readout
psMetadata* metadata; /< readout-level metadata

}
psReadout;

/ Cell data structure

  • A cell consists of one or more readouts. It also contains a pointer to the
  • cell's metadata, and its parent chip. On the astrometry side, it also
  • contains coordinate transforms from the cell to chip, from the cell to
  • focal-plane, as well as a "quick and dirty" tranform from the cell to
  • sky coordinates. * */

typedef struct psCell
{

psArray* readouts; /< readouts from the cell
psMetadata* metadata;
/< cell-level metadata

psPlaneTransform* toChip; /< transformations from cell to chip coordinates
psPlaneTransform* toFPA;
/< transformations from cell to FPA coordinates
psPlaneTransform* toSky; /< transformations from cell to sky coordinates

struct psChip* parent; /< chip in which contains this cell

}
psCell;

/ Chip data structure

*

  • A chip consists of one or more cells (according to the number of amplifiers
  • on the CCD). It contains a pointer to the chip's metadata, and a pointer
  • to the parent focal plane. For astrometry, ot contains a coordinate
  • transform from the chip to the focal plane, and vis-versa. * */

typedef struct psChip
{

psArray* cells; /< cells in the chip
psMetadata* metadata;
/< chip-level metadata

psPlaneTransform* toFPA; /< transformation from chip to FPA coordinates
psPlaneTransform* fromFPA;
/< transformation from FPA to chip coordinates

struct psFPA* parent; /< FPA which contains this chip

}
psChip;

/ A Focal-Plane

*

  • A focal plane consists of one or more chips (according to the number of
  • contiguous silicon). It contains pointers to the focal-plane's metadata
  • and the exposure information. For astrometry, it contains a transformation
  • from the focal plane to the tangent plane and the fixed pattern residuals.
  • Since colors are involved in the transformation, it is necessary to specify
  • the color the transformation is defined. We also include some values to
  • characterize the quality of the transformation: the root square deviation
  • for the x and y transformation fits, and the chi-squared for the
  • transformation fit. * */

typedef struct psFPA
{

psArray* chips; /< chips in the focal plane array
psMetadata* metadata;
/< focal-plane's metadata

psPlaneDistort* fromTangentPlane; /< transformation from tangent plane to focal plane
psPlaneDistort* toTangentPlane;
/< transformation from focal plane to tangent plane
psFixedPattern* pattern; /< fixed pattern residual offsets

const struct psExposure* exposure; /< information about this exposure

psPhotSystem* colorPlus; /< Color reference
psPhotSystem* colorMinus;
/< Color reference

float rmsX; /< RMS for x transformation fits
float rmsY;
/< RMS for y transformation fits
float chi2; /< chi2 of astrometric solution

}
psFPA;

/ Exposure Information

*

  • Several quantities from the telescope in order to make a first guess at
  • the astrometric solution. From these quantities, further quantities can
  • be derivedand stored for later use. * */

typedef struct psExposure
{

const double ra; /< Telescope boresight, right ascention
const double dec;
/< Telescope boresight, declination
const double hourAngle; /< Hour angle
const double zenith;
/< Zenith distance
const double azimuth; /< Azimuth
const double localTime;
/< Local Sidereal Time
const float date; /< Modified Jullian Date of observation
const float rotAngle;
/< Rotator position angle
const float temperature; /< Air temperature, for estimating refraction
const float pressure;
/< Air pressure, for calculating refraction
const float humidity; /< Relative humidity, for refraction
const float exposureTime;
/< Exposure time

/* Derived quantities */
const float positionAngle; /< Position angle
const float parallacticAngle;
/< Parallactic angle
const float airmass; /< Airmass, calculated from zenith distance
const float parallacticFactor;
/< Parallactic factor
const char *cameraName; /< name of camera which provided exposure
const char *telescopeName;
/< name of telescope which provided exposure

}
psExposure;

psExposure* psExposureAlloc(

double ra, /< Telescope boresight, right ascention
double dec,
/< Telescope boresight, declination
double hourAngle, /< Hour angle
double zenith,
/< Zenith distance
double azimuth, /< Azimuth
double localTime,
/< Local Sidereal Time
float date, /< MJD
float rotAngle,
/< Rotator position angle
float temperature, /< Temperature
float pressure,
/< Pressure
float humidity, /< Relative humidity
float exposureTime
/< Exposure time

);

#endif

comment:2 by eugene, 22 years ago

Resolution: fixed
Status: newclosed

thanks for catching that; that was a complete oversight on my part. Your
implementation below looks fine to me. I am happy with the member name
modifications you've made. I'll update the documents to reflect this.

comment:3 by Eric.VanAlst@…, 22 years ago

Resolution: fixed
Status: closedreopened

The resolution involves using psArray within the structs to contain multiple
objects such as chips, cells. The data structures in SDR-06 sections 5.4.3,
5.4.4, and 5.4.5 do not specify this resolution.

comment:4 by eugene, 22 years ago

Owner: changed from eugene to Paul Price
Status: reopenednew

comment:5 by Paul Price, 22 years ago

Cc: george.gusciora@… added
Resolution: fixed
Status: newclosed

George and I agreed that we needed a psGrommit in the psFPA, and there were some
changes to psExposure in the last release (we also added a psObservatory). But,
apart from that, I've applied your changes to the SDRS.

typedef struct {

psArray* chips; /< chips in the focal plane array
psMetadata* metadata;
/< focal-plane's metadata
psPlaneDistort* fromTangentPlane; /< transformation from tangent plane to

focal plane

psPlaneDistort* toTangentPlane; /< transformation from focal plane to

tangent plane

psFixedPattern* pattern; /< fixed pattern residual offsets
const struct psExposure* exposure;
/< information about this exposure
const psGrommit* grommit; /< grommit allows conversion from tangent

plane to sky

psPhotSystem* colorPlus; /< Color reference
psPhotSystem* colorMinus;
/< Color reference
float rmsX; /< RMS for x transformation fits
float rmsY;
/< RMS for y transformation fits
float chi2; /< chi2 of astrometric solution

} psFPA;

comment:6 by Paul Price, 22 years ago

* Bug 75 has been marked as a duplicate of this bug. *

comment:7 by Paul Price, 22 years ago

Keywords: VERIFIED added

Should be fixed in SDRS-07 and ADD-06 (7 September 2004).

comment:8 by Paul Price, 22 years ago

Keywords: VERIFIED removed
Note: See TracTickets for help on using tickets.