00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef OBITIMAGEUTIL_H
00029 #define OBITIMAGEUTIL_H
00030
00031 #include "Obit.h"
00032 #include "ObitErr.h"
00033 #include "ObitInfoList.h"
00034 #include "ObitUV.h"
00035 #include "ObitImage.h"
00036 #include "ObitImageDesc.h"
00037 #include "ObitUVDesc.h"
00038 #include "ObitFArray.h"
00039 #include "ObitUVGrid.h"
00040
00041
00050
00051
00074 #define ObitImageUtilSet(in,nVisPIO,nChAvg,rotate,nfield,nx,nxBeam,ny,nyBeam,xCells,yCells,xShift,yShift,err) G_STMT_START{ \
00075 in->info->dim[0]=1; in->info->dim[1]=1; in->info->dim[2]=1; \
00076 in->info->dim[3]=1; in->info->dim[4]=1; \
00077 in->info->work[0]= nChAvg; in->info->work[1]= nVisPIO; \
00078 in->info->fwork[0]= rotate; \
00079 ObitInfoListPut (in->info, "nVisPIO", OBIT_int, \
00080 in->info->dim, (gpointer)&in->info->work[1], err);\
00081 ObitInfoListPut (in->info, "nChAvg", OBIT_int, \
00082 in->info->dim, (gpointer)&in->info->work[0], err);\
00083 ObitInfoListPut (in->info, "rotate", OBIT_float, \
00084 in->info->dim, (gpointer)&in->info->fwork[0],err);\
00085 in->info->dim[0] = nfield; \
00086 ObitInfoListPut (in->info, "nx", OBIT_int, in->info->dim, \
00087 (gpointer)&nx, err); \
00088 ObitInfoListPut (in->info, "nxBeam", OBIT_int, in->info->dim,\
00089 (gpointer)&nxBeam, err); \
00090 ObitInfoListPut (in->info, "ny", OBIT_int, in->info->dim, \
00091 (gpointer)&ny, err); \
00092 ObitInfoListPut (in->info, "nyBeam", OBIT_int, in->info->dim,\
00093 (gpointer)&nyBeam, err); \
00094 ObitInfoListPut (in->info, "xCells",OBIT_float,in->info->dim,\
00095 (gpointer)xCells, err); \
00096 ObitInfoListPut (in->info, "yCells",OBIT_float,in->info->dim,\
00097 (gpointer)yCells, err); \
00098 ObitInfoListPut (in->info, "xShift",OBIT_float,in->info->dim,\
00099 (gpointer)xShift, err); \
00100 ObitInfoListPut (in->info, "yShift",OBIT_float,in->info->dim,\
00101 (gpointer)yShift, err); \
00102 }G_STMT_END
00103
00104
00106 ObitImage* ObitImageUtilCreateImage (ObitUV *inUV, glong fieldNo,
00107 gboolean doBeam, ObitErr *err);
00108
00110 void ObitImageUtilMakeImage (ObitUV *inUV, ObitImage *outImage,
00111 glong channel, gboolean doBeam,
00112 gboolean doWeight, ObitErr *err);
00113
00115 void
00116 ObitImageUtilUV2ImageDesc(ObitUVDesc *UVDesc, ObitImageDesc *imageDesc,
00117 gint nchavg);
00118
00120 void ObitImageUtilInterpolateImage (ObitImage *inImage, ObitImage *outImage,
00121 gint *inPlane, gint *outPlane,
00122 glong hwidth, ObitErr *err);
00123
00125 void
00126 ObitImageUtilInterpolateImageZern (ObitImage *inImage, ObitImage *outImage,
00127 gint *inPlane, gint *outPlane,
00128 glong hwidth, gint nZern, gfloat *ZCoef,
00129 ObitErr *err);
00130
00132 void ObitImageUtilInterpolateWeight (ObitImage *inImage, ObitImage *outImage,
00133 ObitImage *outWeight, gboolean memOnly,
00134 gint radius, gint *inPlane, gint *outPlane,
00135 glong hwidth, ObitErr *err);
00136
00138 void ObitImageUtilPBCorr (ObitImage *inImage, ObitImage *pntImage, ObitImage *outImage,
00139 gint *inPlane, gint *outPlane, gfloat antSize, ObitErr *err);
00140
00142 void ObitImageUtilPBApply (ObitImage *inImage, ObitImage *pntImage, ObitImage *outImage,
00143 gint *inPlane, gint *outPlane, gfloat antSize, ObitErr *err);
00144
00146 void ObitImageUtilPBImage (ObitImage *pntImage, ObitImage *outImage,
00147 gint *outPlane, gfloat antSize, gfloat minGain,
00148 ObitErr *err);
00149
00151 void ObitImageUtilImagParm (gfloat MaxBL, gfloat MaxW,
00152 gfloat *Cells, gfloat *Radius);
00153
00155 ObitImage* ObitImageUtilArray2Image (gchar *fileName, gint disk,
00156 ObitFArray *inArray, ObitErr *err);
00157
00159 ObitImage* ObitImageUtilQuanFITS (ObitImage *inImage, gchar *fileName,
00160 gint disk, ObitErr *err);
00161
00163 void ObitImageUtilMakeCube (ObitImageDesc *inDesc, ObitUVDesc *uvDesc,
00164 ObitImageDesc *outDesc,
00165 gchar *Stokes, gint bchan, gint echan, gint incr, ObitErr *err);
00166
00168 void ObitImageUtilInsertPlane (ObitImage *in, ObitImage *out, glong *plane,
00169 ObitErr *err);
00170
00172 void ObitImageUtilVel (ObitImage *inImage, ObitImage *outImage, ObitErr *err);
00173
00175 void ObitImageUtilSelCopy (ObitImage *inImage, ObitImage *outImage, ObitErr *err);
00176
00177 #endif