Main Page | Class List | Directories | File List | Class Members | File Members

ObitFArray.c File Reference

ObitFArray class function definitions. More...

#include "ObitFArray.h"
#include "ObitMem.h"

Defines

#define MAXSYMINVSIZE   50

Functions

void ObitFArrayInit (gpointer in)
 Private: Initialize newly instantiated object.
void ObitFArrayClear (gpointer in)
 Private: Deallocate members.
ObitFArraynewObitFArray (gchar *name)
 Public: Default Constructor.
gconstpointer ObitFArrayGetClass (void)
 Public: ClassInfo pointer.
ObitFArrayObitFArrayCopy (ObitFArray *in, ObitFArray *out, ObitErr *err)
 Public: Copy (deep) constructor.
void ObitFArrayClone (ObitFArray *in, ObitFArray *out, ObitErr *err)
 Public: Copy structure.
gboolean ObitFArrayIsCompatable (ObitFArray *in1, ObitFArray *in2)
 Public: Are two FArrays of compatable geometry.
ObitFArrayObitFArrayCreate (gchar *name, glong ndim, glong *naxis)
 Public: Create/initialize ObitFArray structures.
ObitFArrayObitFArraySubArr (ObitFArray *in, glong *blc, glong *trc, ObitErr *err)
 Public: Copy Subarray constructor.
ObitFArrayObitFArrayTranspose (ObitFArray *in, glong *order, ObitErr *err)
 Public: Transpose constructor.
ObitFArrayObitFArrayRealloc (ObitFArray *in, glong ndim, glong *naxis)
 Public: Reallocate/initialize ObitFArray structures.
gfloat * ObitFArrayIndex (ObitFArray *in, glong *pos)
 Public: return pointer to a specified element.
gfloat ObitFArrayMax (ObitFArray *in, glong *pos)
 Public: Find Maximum value in an ObitFArray.
gfloat ObitFArrayMaxAbs (ObitFArray *in, glong *pos)
 Public: Find Maximum abs value in an ObitFArray.
gfloat ObitFArrayMin (ObitFArray *in, glong *pos)
 Public: Find Minimum value in an ObitFArray.
void ObitFArrayDeblank (ObitFArray *in, gfloat scalar)
 Public: Replace blanks in an ObitFArray.
gfloat ObitFArrayRMS (ObitFArray *in)
 Public: RMS of pixel distribution from histogram.
gfloat ObitFArrayRawRMS (ObitFArray *in)
 Public: RMS of pixel distribution.
gfloat ObitFArrayRMS0 (ObitFArray *in)
 Public: RMS of pixel about zero.
gfloat ObitFArrayRMSQuant (ObitFArray *in)
 Public: RMS of pixel in potentially quantized image.
void ObitFArrayQuant (ObitFArray *in, gfloat *quant, gfloat *zero)
 Public: Determine quantization and offset in an image.
gfloat ObitFArrayMode (ObitFArray *in)
 Public: Mode of pixel distribution.
gfloat ObitFArrayMean (ObitFArray *in)
 Public: Mean of pixel distribution.
void ObitFArrayFill (ObitFArray *in, gfloat scalar)
 Public: fill elements of an FArray.
void ObitFArrayNeg (ObitFArray *in)
 Public: negate elements of an FArray.
void ObitFArraySin (ObitFArray *in)
 Public: sine of elements of an FArray.
void ObitFArrayCos (ObitFArray *in)
 Public: cosine of elements of an FArray.
gfloat ObitFArraySum (ObitFArray *in)
 Public: sum elements of an FArray.
glong ObitFArrayCount (ObitFArray *in)
 Public: number of valid elements in an FArray.
void ObitFArraySAdd (ObitFArray *in, gfloat scalar)
 Public: Add a scalar to elements of an FArray.
void ObitFArraySMul (ObitFArray *in, gfloat scalar)
 Public: Multiply elements of an FArray by a scalar.
void ObitFArraySDiv (ObitFArray *in, gfloat scalar)
 Public: Divide elements of an FArray into a scalar.
void ObitFArrayClip (ObitFArray *in, gfloat minVal, gfloat maxVal, gfloat newVal)
 Public: Clip elements of an FArray outside of a given range.
void ObitFArrayInClip (ObitFArray *in, gfloat minVal, gfloat maxVal, gfloat newVal)
 Public: Clip elements of an FArray inside of a given range.
void ObitFArrayBlank (ObitFArray *in1, ObitFArray *in2, ObitFArray *out)
 Public: Blank elements of an array where another is blanked.
void ObitFArrayMaxArr (ObitFArray *in1, ObitFArray *in2, ObitFArray *out)
 Public: Get larger elements of two FArrays.
void ObitFArrayMinArr (ObitFArray *in1, ObitFArray *in2, ObitFArray *out)
 Public: Get lesser elements of two FArrays.
void ObitFArraySumArr (ObitFArray *in1, ObitFArray *in2, ObitFArray *out)
 Public: Sum nonblanked elements of two FArrays.
void ObitFArrayAvgArr (ObitFArray *in1, ObitFArray *in2, ObitFArray *out)
 Public: Average nonblanked elements of two FArrays.
void ObitFArrayAdd (ObitFArray *in1, ObitFArray *in2, ObitFArray *out)
 Public: Add elements of two FArrays.
void ObitFArraySub (ObitFArray *in1, ObitFArray *in2, ObitFArray *out)
 Public: Subtract elements of two FArrays.
void ObitFArrayMul (ObitFArray *in1, ObitFArray *in2, ObitFArray *out)
 Public: Multiply elements of two FArrays.
void ObitFArrayDiv (ObitFArray *in1, ObitFArray *in2, ObitFArray *out)
 Public: Divide elements of two FArrays.
void ObitFArrayDivClip (ObitFArray *in1, ObitFArray *in2, gfloat minVal, ObitFArray *out)
 Public: Divide elements of two FArrays with clipping.
gfloat ObitFArrayDot (ObitFArray *in1, ObitFArray *in2)
 Public: "Dot" product to two arrays.
void ObitFArrayMulColRow (ObitFArray *in, ObitFArray *row, ObitFArray *col, ObitFArray *out)
 Public: Multiply a 2D array by a Col vector * Row vector.
void ObitFArray1DCenter (ObitFArray *in)
 Public: Convert a 1D "center at edges" array to proper order.
void ObitFArray2DCenter (ObitFArray *in)
 Public: Convert a 2D "center at edges" array to proper order.
void ObitFArray2DSymInv (ObitFArray *in, gint *ierr)
 Public: inplace invert a symmetric 2D array.
void ObitFArray2DCGauss (ObitFArray *array, glong Cen[2], gfloat FWHM)
 Public: Make 2-D Circular Gaussian in FArray.
void ObitFArray2DEGauss (ObitFArray *array, gfloat amp, gfloat Cen[2], gfloat GauMod[3])
 Public: Make 2-D Eliptical Gaussian in FArray.
void ObitFArrayShiftAdd (ObitFArray *in1, glong *pos1, ObitFArray *in2, glong *pos2, gfloat scalar, ObitFArray *out)
 Public: Shift and Add scaled array.
void ObitFArrayPad (ObitFArray *in, ObitFArray *out, gfloat factor)
 Public: Zero pad an array.
void ObitFArrayConvGaus (ObitFArray *in, ObitFArray *list, glong ncomp, gfloat gauss[3])
 Public: Convolve a list of Gaussians onto an FArray.
void ObitFArraySelInc (ObitFArray *in, ObitFArray *out, glong *blc, glong *trc, glong *inc, ObitErr *err)
 Public: Select elements in an FArray by increment.
void ObitFArrayClassInit (void)
 Public: Class initializer.


Detailed Description

ObitFArray class function definitions.

This class is derived from the Obit base class.


Define Documentation

#define MAXSYMINVSIZE   50
 


Function Documentation

ObitFArray* newObitFArray gchar *  name  ) 
 

Public: Default Constructor.

Initializes class if needed on first call.

Parameters:
name An optional name for the object.
Returns:
the new object.

void ObitFArray1DCenter ObitFArray in  ) 
 

Public: Convert a 1D "center at edges" array to proper order.

This is needed for the peculiar order of FFTs. FFTs don't like blanked values.

Parameters:
in 1D array to reorder

void ObitFArray2DCenter ObitFArray in  ) 
 

Public: Convert a 2D "center at edges" array to proper order.

This is needed for the peculiar order of FFTs. FFTs don't like blanked values.

Parameters:
in 2D array to reorder

void ObitFArray2DCGauss ObitFArray array,
glong  Cen[2],
gfloat  FWHM
 

Public: Make 2-D Circular Gaussian in FArray.

Parameters:
array Array to fill in
Cen 0-rel center pixel
Size FWHM of Gaussian in pixels.

void ObitFArray2DEGauss ObitFArray array,
gfloat  amp,
gfloat  Cen[2],
gfloat  GauMod[3]
 

Public: Make 2-D Eliptical Gaussian in FArray.

Parameters:
array Array to fill in
amp Peak value of Gaussian
Cen 0-rel center pixel
GauMod Gaussian parameters, Major axis, FWHM, minor axis FWHM (both in pixels) and rotation angle wrt "X" axis (deg).

void ObitFArray2DSymInv ObitFArray in,
gint *  ierr
 

Public: inplace invert a symmetric 2D array.

Parameters:
in 2D array to invers (max dim 50x50)
ierr return code, 0=>OK, else could not invert.

void ObitFArrayAdd ObitFArray in1,
ObitFArray in2,
ObitFArray out
 

Public: Add elements of two FArrays.

out = in1 + in2, if either is blanked the result is blanked

Parameters:
in1 Input object with data
in2 Input object with data
out Output array (may be an input array).

void ObitFArrayAvgArr ObitFArray in1,
ObitFArray in2,
ObitFArray out
 

Public: Average nonblanked elements of two FArrays.

out = (in1 + in2)/2 or whichever is not blanked

Parameters:
in1 Input object with data
in2 Input object with data
out Output array (may be an input array).

void ObitFArrayBlank ObitFArray in1,
ObitFArray in2,
ObitFArray out
 

Public: Blank elements of an array where another is blanked.

Parameters:
in1 Input object with data
in2 Input object with blanking
out Output array (may be an input array).

void ObitFArrayClassInit void   ) 
 

Public: Class initializer.

void ObitFArrayClear gpointer  inn  ) 
 

Private: Deallocate members.

Does (recursive) deallocation of parent class members. For some reason this wasn't build into the GType class.

Parameters:
inn Pointer to the object to deallocate. Actually it should be an ObitFArray* cast to an Obit*.

void ObitFArrayClip ObitFArray in,
gfloat  minVal,
gfloat  maxVal,
gfloat  newVal
 

Public: Clip elements of an FArray outside of a given range.

Parameters:
in Input object with data
minVal Minimum allowed value
maxVal Maximum allowed value
newVal Value to use if out of range.

void ObitFArrayClone ObitFArray in,
ObitFArray out,
ObitErr err
 

Public: Copy structure.

Parameters:
in The object to copy
out An existing object pointer for output, must be defined.
err Obit error stack object.

void ObitFArrayConvGaus ObitFArray in,
ObitFArray list,
glong  ncomp,
gfloat  gauss[3]
 

Public: Convolve a list of Gaussians onto an FArray.

Parameters:
in 2-D array to add Gaussians to.
list List of positions and fluxes of the Gaussians (x pixel, y pixel, flux)
ncomp Number of components in list (generally less than size of FArray).
gauss Gaussian coefficients for (d_x*d_x, d_y*d_y, d_x*d_y) Gaussian maj = major axis FWHM, min=minor, pa = posn. angle cr=cos(pa+rotation), sr=sin(pa+rotation), cell_x, cell_y x, y cell spacing is same units as maj, min [0] = {(cr/min)^2 + ((sr/maj)^2)}*(cell_x^2)*4*log(2) [1] = {(sr/min)^2 + ((cr/maj)^2)}*(cell_y^2)*4*log(2) [2] = {(1/min)^2 - ((1/maj)^2)}*sr*cr*abs(cell_x*cell_y)*8*log(2)

ObitFArray* ObitFArrayCopy ObitFArray in,
ObitFArray out,
ObitErr err
 

Public: Copy (deep) constructor.

Parameters:
in The object to copy
out An existing object pointer for output or NULL if none exists.
err Obit error stack object.
Returns:
pointer to the new object.

void ObitFArrayCos ObitFArray in  ) 
 

Public: cosine of elements of an FArray.

in = cos(in).

Parameters:
in Input object with data

glong ObitFArrayCount ObitFArray in  ) 
 

Public: number of valid elements in an FArray.

Parameters:
in Input object with data
Returns:
count of valid elements

ObitFArray* ObitFArrayCreate gchar *  name,
glong  ndim,
glong *  naxis
 

Public: Create/initialize ObitFArray structures.

Parameters:
name An optional name for the object.
ndim Number of dimensions desired, if <=0 data array not created. maximum value = MAXFARRAYDIM.
naxis Dimensionality along each axis. NULL => don't create array.
Returns:
the new object.

void ObitFArrayDeblank ObitFArray in,
gfloat  scalar
 

Public: Replace blanks in an ObitFArray.

Parameters:
in Object with data to deblank
scalar Value to replace blanks.

void ObitFArrayDiv ObitFArray in1,
ObitFArray in2,
ObitFArray out
 

Public: Divide elements of two FArrays.

out = in1 / in2

Parameters:
in1 Input object with data
in2 Input object with data
out Output array (may be an input array).

void ObitFArrayDivClip ObitFArray in1,
ObitFArray in2,
gfloat  minVal,
ObitFArray out
 

Public: Divide elements of two FArrays with clipping.

out = in1 / in2 where in2>minVal, else blanked

Parameters:
in1 Input object with data
in2 Input object with data
minVal minimum allowed value for in2
out Output array (may be an input array).

gfloat ObitFArrayDot ObitFArray in1,
ObitFArray in2
 

Public: "Dot" product to two arrays.

Parameters:
in1 Input object with data
in2 Input object with data
Returns:
sum of product of elements

void ObitFArrayFill ObitFArray in,
gfloat  scalar
 

Public: fill elements of an FArray.

in = scalar.

Parameters:
in Input object with data
scalar Scalar value

gconstpointer ObitFArrayGetClass void   ) 
 

Public: ClassInfo pointer.

Returns:
pointer to the class structure.

void ObitFArrayInClip ObitFArray in,
gfloat  minVal,
gfloat  maxVal,
gfloat  newVal
 

Public: Clip elements of an FArray inside of a given range.

Parameters:
in Input object with data
minVal Minimum allowed value
maxVal Maximum allowed value
newVal Value to use if out of range.

gfloat* ObitFArrayIndex ObitFArray in,
glong *  pos
 

Public: return pointer to a specified element.

Subsequent data are stored in order of increasing dimension (rows, then columns...).

Parameters:
in Object with data
pos array of 0-rel pixel numbers on each axis
Returns:
pointer to specified cell; NULL if illegal pixel.

void ObitFArrayInit gpointer  inn  ) 
 

Private: Initialize newly instantiated object.

Parent classes portions are (recursively) initialized first

Parameters:
inn Pointer to the object to initialize.

gboolean ObitFArrayIsCompatable ObitFArray in1,
ObitFArray in2
 

Public: Are two FArrays of compatable geometry.

Must have same number of non degenerate dimensions and each dimension must be the same size.

Parameters:
in1 First object to test.
in2 Second object to test.
Returns:
TRUE if compatable, else FALSE.

gfloat ObitFArrayMax ObitFArray in,
glong *  pos
 

Public: Find Maximum value in an ObitFArray.

Return value and location in pos.

Parameters:
in Object with data
pos (out) array of 0-rel pixel numbers on each axis
Returns:
maximum value.

gfloat ObitFArrayMaxAbs ObitFArray in,
glong *  pos
 

Public: Find Maximum abs value in an ObitFArray.

Return value and location in pos.

Parameters:
in Object with data
pos (out) array of 0-rel pixel numbers on each axis
Returns:
maximum absolute (signed) value.

void ObitFArrayMaxArr ObitFArray in1,
ObitFArray in2,
ObitFArray out
 

Public: Get larger elements of two FArrays.

out = MAX (in1, in2) or whichever is not blanked

Parameters:
in1 Input object with data
in2 Input object with data
out Output array (may be an input array).

gfloat ObitFArrayMean ObitFArray in  ) 
 

Public: Mean of pixel distribution.

Parameters:
in Input object with data
Returns:
mean of distribution

gfloat ObitFArrayMin ObitFArray in,
glong *  pos
 

Public: Find Minimum value in an ObitFArray.

Return value and location in pos.

Parameters:
in Object with data
pos (out) array of 0-rel pixel numbers on each axis
Returns:
minimum value.

void ObitFArrayMinArr ObitFArray in1,
ObitFArray in2,
ObitFArray out
 

Public: Get lesser elements of two FArrays.

out = MIN (in1, in2) or whichever is not blanked

Parameters:
in1 Input object with data
in2 Input object with data
out Output array (may be an input array).

gfloat ObitFArrayMode ObitFArray in  ) 
 

Public: Mode of pixel distribution.

Value is based on a histogram analysis and is determined from the peak in the distribution.. out = Mode (in.)

Parameters:
in Input object with data
Returns:
mode of distribution

void ObitFArrayMul ObitFArray in1,
ObitFArray in2,
ObitFArray out
 

Public: Multiply elements of two FArrays.

out = in1 * in2

Parameters:
in1 Input object with data
in2 Input object with data
out Output array (may be an input array).

void ObitFArrayMulColRow ObitFArray in,
ObitFArray row,
ObitFArray col,
ObitFArray out
 

Public: Multiply a 2D array by a Col vector * Row vector.

NOTE: this does not check for magic value blanking, this was causing trouble in its major application - image formation - which should not produce blanks. out[i,j] = in[i,j] * row[j] * col[i].

Parameters:
in Input 2D array
row Input row vector
col Input column
out Output array (may be an input array).

void ObitFArrayNeg ObitFArray in  ) 
 

Public: negate elements of an FArray.

in = -in.

Parameters:
in Input object with data

void ObitFArrayPad ObitFArray in,
ObitFArray out,
gfloat  factor
 

Public: Zero pad an array.

Any blanks in in are replaced with zero. This routine is intended for zero padding images before an FFT to increase the resolution in the uv plane.

Parameters:
in Object with structures to zero pad
out Output object
factor scaling factor for in

void ObitFArrayQuant ObitFArray in,
gfloat *  quant,
gfloat *  zero
 

Public: Determine quantization and offset in an image.

Parameters:
in Input object with data
quant [out] quantization level
zero [out] closest level to zero

gfloat ObitFArrayRawRMS ObitFArray in  ) 
 

Public: RMS of pixel distribution.

Parameters:
in Input object with data
Returns:
rms of element distribution (-1 on error)

ObitFArray* ObitFArrayRealloc ObitFArray in,
glong  ndim,
glong *  naxis
 

Public: Reallocate/initialize ObitFArray structures.

Parameters:
in Object with structures to reallocate.
ndim Number of dimensions desired, if <=0 data array not created. maximum value = MAXFARRAYDIM.
naxis Dimensionality along each axis. NULL => don't create array.
Returns:
the resized object.

gfloat ObitFArrayRMS ObitFArray in  ) 
 

Public: RMS of pixel distribution from histogram.

Value is based on a histogram analysis and is determined from the width of the peak around the mode. out = RMS (in.)

Parameters:
in Input object with data
Returns:
rms of element distribution (-1 on error)

gfloat ObitFArrayRMS0 ObitFArray in  ) 
 

Public: RMS of pixel about zero.

Parameters:
in Input object with data
Returns:
rms of element distribution (-1 on error)

gfloat ObitFArrayRMSQuant ObitFArray in  ) 
 

Public: RMS of pixel in potentially quantized image.

Parameters:
in Input object with data
Returns:
rms of element distribution (-1 on error)

void ObitFArraySAdd ObitFArray in,
gfloat  scalar
 

Public: Add a scalar to elements of an FArray.

in = in + scalar

Parameters:
in Input object with data
scalar Scalar value

void ObitFArraySDiv ObitFArray in,
gfloat  scalar
 

Public: Divide elements of an FArray into a scalar.

No check for zeroes is made . in = scalar / in

Parameters:
in Input object with data
scalar Scalar value

void ObitFArraySelInc ObitFArray in,
ObitFArray out,
glong *  blc,
glong *  trc,
glong *  inc,
ObitErr err
 

Public: Select elements in an FArray by increment.

Parameters:
in Input Object
out Output Object
blc (0-rel) lower index of first pixel to copy
trc (0-rel) lower index of highest pixel to copy
inc increment on each axis
err Obit error stack object.

void ObitFArrayShiftAdd ObitFArray in1,
glong *  pos1,
ObitFArray in2,
glong *  pos2,
gfloat  scalar,
ObitFArray out
 

Public: Shift and Add scaled array.

Only handles to 3 dimensions. If in1/out are 3D and in2 is 2D then the same plane in in2 is used for all planes in in1/out. NB: this works better if the alignment point is near the center of in2 out = in1 + scalar x in2 in overlap, else in1

Parameters:
in1 First input object with data, may be blanked
pos1 Alignment pixel in in1
in2 Second input object with data, blanked pixels ignored
pos2 Alignment pixel in in2
scalar factor to be multiplied times in2
out Output array, may be an input array and MUST have the same the same geometry.

void ObitFArraySin ObitFArray in  ) 
 

Public: sine of elements of an FArray.

in = sin(in).

Parameters:
in Input object with data

void ObitFArraySMul ObitFArray in,
gfloat  scalar
 

Public: Multiply elements of an FArray by a scalar.

in = in * scalar

Parameters:
in Input object with data
scalar Scalar value

void ObitFArraySub ObitFArray in1,
ObitFArray in2,
ObitFArray out
 

Public: Subtract elements of two FArrays.

out = in1 - in2, if either is blanked the result is blanked

Parameters:
in1 Input object with data
in2 Input object with data
out Output array (may be an input array).

ObitFArray* ObitFArraySubArr ObitFArray in,
glong *  blc,
glong *  trc,
ObitErr err
 

Public: Copy Subarray constructor.

Parameters:
in Object with structures to subarray.
blc (0-rel) lower index of first pixel to copy
trc (0-rel) lower index of highest pixel to copy
err Obit error stack object.
Returns:
the new object.

gfloat ObitFArraySum ObitFArray in  ) 
 

Public: sum elements of an FArray.

out = Sum (in.)

Parameters:
in Input object with data
Returns:
sum of elements

void ObitFArraySumArr ObitFArray in1,
ObitFArray in2,
ObitFArray out
 

Public: Sum nonblanked elements of two FArrays.

out = (in1 + in2) or whichever is not blanked

Parameters:
in1 Input object with data
in2 Input object with data
out Output array (may be an input array).

ObitFArray* ObitFArrayTranspose ObitFArray in,
glong *  order,
ObitErr err
 

Public: Transpose constructor.

Parameters:
in Object with structures to transpose
order output 1-rel order of the transposed axes, in storage order negative value = reverse order, e,g, [2,1] = transpose 2D array
err Obit error stack object.
Returns:
the new object.


Generated on Fri Aug 31 22:13:05 2007 for Obit by  doxygen 1.3.9.1