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 OBITSKYMODEL_H
00029 #define OBITSKYMODEL_H
00030
00031 #include "Obit.h"
00032 #include "ObitErr.h"
00033 #include "ObitFArray.h"
00034 #include "ObitCArray.h"
00035 #include "ObitCInterpolate.h"
00036 #include "ObitImageMosaic.h"
00037 #include "ObitUV.h"
00038 #include "ObitTableCC.h"
00039
00040
00090
00095 enum obitSkyModelType {
00097 OBIT_SkyModel_Comps=0,
00099 OBIT_SkyModel_Image,
00101 OBIT_SkyModel_Point
00102 };
00104 typedef enum obitSkyModelType ObitSkyModelType;
00105
00110 enum obitSkyModelMode {
00112 OBIT_SkyModel_Fastest=0,
00114 OBIT_SkyModel_DFT,
00116 OBIT_SkyModel_Grid,
00118 OBIT_SkyModel_Mixed
00119 };
00121 typedef enum obitSkyModelMode ObitSkyModelMode;
00122
00127 enum obitSkyModelCompType {
00129 OBIT_SkyModel_PointMod,
00131 OBIT_SkyModel_GaussMod,
00133 OBIT_SkyModel_CGaussMod,
00135 OBIT_SkyModel_USphereMod,
00137 OBIT_SkyModel_Unknown
00138 };
00140 typedef enum obitSkyModelCompType ObitSkyModelCompType;
00141
00142
00144 typedef struct {
00145 #include "ObitSkyModelDef.h"
00146 } ObitSkyModel;
00147
00148
00154 #define ObitSkyModelUnref(in) ObitUnref (in)
00155
00161 #define ObitSkyModelRef(in) ObitRef (in)
00162
00169 #define ObitSkyModelIsA(in) ObitIsA (in, ObitSkyModelGetClass())
00170
00171
00173 void ObitSkyModelClassInit (void);
00174
00176 ObitSkyModel* newObitSkyModel (gchar* name);
00177
00179 ObitSkyModel* ObitSkyModelCreate (gchar* name, ObitImageMosaic* mosaic);
00181 typedef ObitSkyModel* (*ObitSkyModelCreateFP) (gchar* name, ObitImageMosaic* mosaic);
00182
00184 void ObitSkyModelInitMod (ObitSkyModel* in, ObitUV *uvdata, ObitErr *err);
00186 typedef void (*ObitSkyModelInitModFP) (ObitSkyModel* in, ObitUV *uvdata,
00187 ObitErr *err);
00188
00190 void ObitSkyModelShutDownMod (ObitSkyModel* in, ObitUV *uvdata, ObitErr *err);
00192 typedef void (*ObitSkyModelShutDownModFP) (ObitSkyModel* in, ObitUV *uvdata,
00193 ObitErr *err);
00194
00196 void ObitSkyModelInitModel (ObitSkyModel* in, ObitErr *err);
00198 typedef void (*ObitSkyModelInitModelFP) (ObitSkyModel* in, ObitErr *err);
00199
00201 gconstpointer ObitSkyModelGetClass (void);
00202
00204 ObitSkyModel* ObitSkyModelCopy (ObitSkyModel *in, ObitSkyModel *out, ObitErr *err);
00205
00207 void ObitSkyModelClone (ObitSkyModel *in, ObitSkyModel *out, ObitErr *err);
00208
00210 ObitIOCode ObitSkyModelSubUV (ObitSkyModel *in, ObitUV *indata, ObitUV *outdata,
00211 ObitErr *err);
00212 typedef ObitIOCode (*ObitSkyModelSubUVFP) (ObitSkyModel *in, ObitUV *indata,
00213 ObitUV *outdata, ObitErr *err);
00214
00216 ObitIOCode ObitSkyModelDivUV (ObitSkyModel *in, ObitUV *indata, ObitUV *outdata,
00217 ObitErr *err);
00218 typedef ObitIOCode (*ObitSkyModelDivUVFP) (ObitSkyModel *in, ObitUV *indata,
00219 ObitUV *outdata, ObitErr *err);
00220
00222 gboolean ObitSkyModelLoad (ObitSkyModel *in, gint image, ObitUV *uvdata,
00223 ObitErr *err);
00224 typedef gboolean (*ObitSkyModelLoadFP) (ObitSkyModel *in, gint field,
00225 ObitUV *uvdata, ObitErr *err);
00226
00228 void ObitSkyModelFT (ObitSkyModel *in, gint field,ObitUV *uvdata, ObitErr *err);
00229 typedef void (*ObitSkyModelFTFP) (ObitSkyModel *in, gint field,ObitUV *uvdata,
00230 ObitErr *err);
00231
00233 gboolean ObitSkyModelLoadPoint (ObitSkyModel *in, ObitUV *uvdata, ObitErr *err);
00234 typedef gboolean (*ObitSkyModelLoadPointFP) (ObitSkyModel *in, ObitUV *uvdata,
00235 ObitErr *err);
00236
00238 gboolean ObitSkyModelLoadComps (ObitSkyModel *in, gint n, ObitUV *uvdata,
00239 ObitErr *err);
00240 typedef gboolean (*ObitSkyModelLoadCompsFP) (ObitSkyModel *in, gint n,
00241 ObitUV *uvdata, ObitErr *err);
00242
00244 gboolean ObitSkyModelGridComps (ObitSkyModel *in, gint n, ObitUV *uvdata,
00245 ObitErr *err);
00246 typedef gboolean (*ObitSkyModelGridCompsFP) (ObitSkyModel *in, gint n,
00247 ObitUV *uvdata, ObitErr *err);
00248
00250 gboolean ObitSkyModelLoadImage (ObitSkyModel *in, gint n, ObitUV *uvdata,
00251 ObitErr *err);
00252 typedef gboolean (*ObitSkyModelLoadImageFP) (ObitSkyModel *in, gint n,
00253 ObitUV *uvdata, ObitErr *err);
00254
00256 void ObitSkyModelFTDFT (ObitSkyModel *in, gint field, ObitUV *uvdata, ObitErr *err);
00257 typedef void (*ObitSkyModelFTDFTFP) (ObitSkyModel *in, gint field, ObitUV *uvdata,
00258 ObitErr *err);
00259
00261 void ObitSkyModelFTGrid (ObitSkyModel *in, gint field, ObitUV *uvdata, ObitErr *err);
00262 typedef void (*ObitSkyModelFTGridFP) (ObitSkyModel *in, gint field, ObitUV *uvdata,
00263 ObitErr *err);
00264
00266 gfloat ObitSkyModelSum (ObitSkyModel *in, ObitErr *err);
00267 typedef gfloat (*ObitSkyModelSumFP) (ObitSkyModel *in, ObitErr *err);
00268
00270 void ObitSkyModelCompressCC (ObitSkyModel *in, ObitErr *err);
00271 typedef void (*ObitSkyModelCompressCCFP) (ObitSkyModel *in, ObitErr *err);
00272
00274 void ObitSkyModelGetInput (ObitSkyModel* in, ObitErr *err);
00275 typedef void (*ObitSkyModelGetInputFP) (ObitSkyModel* in, ObitErr *err);
00276
00278 void ObitSkyModelChose (ObitSkyModel* in, ObitUV* uvdata);
00279 typedef void (*ObitSkyModelChoseFP) (ObitSkyModel* in, ObitUV* uvdata);
00280
00282 void ObitSkyModelSetSelect (ObitSkyModel* in, ObitUV* uvdata, ObitErr *err);
00283 typedef void (*ObitSkyModelSetSelectFP) (ObitSkyModel* in, ObitUV* uvdata, ObitErr *err);
00284
00286 gboolean ObitSkyModelsetPBChans(ObitSkyModel* in, ObitUV* uvdata, ObitErr *err);
00287 typedef gboolean (*ObitSkyModelsetPBChansFP) (ObitSkyModel* in, ObitUV* uvdata, ObitErr *err);
00288
00290 ObitTableCC* ObitSkyModelgetPBCCTab (ObitSkyModel* in, ObitUV* uvdata,
00291 gint field, glong *inCCVer, glong *outCCver,
00292 glong *startCC, glong *endCC, gfloat range[2],
00293 ObitErr *err);
00294 typedef ObitTableCC*
00295 (*ObitSkyModelgetPBCCTabFP) (ObitSkyModel* in, ObitUV* uvdata,
00296 gint field, glong *inCCVer, glong *outCCver,
00297 glong *startCC, glong *endCC, ObitErr *err);
00298
00300 void ObitSkyModelgetPBImage (ObitSkyModel* in, ObitUV* uvdata, gint field,
00301 ObitErr *err);
00302 typedef void (*ObitSkyModelgetPBImageFP) (ObitSkyModel* in, ObitUV* uvdata, gint field,
00303 ObitErr *err);
00304
00306 gboolean ObitSkyModelGridFTComps (ObitSkyModel* in, gint field, ObitUV* uvdata,
00307 ObitErr *err);
00308 typedef gboolean (*ObitSkyModelGridFTCompsFP) (ObitSkyModel* in, gint field, ObitUV* uvdata,
00309 ObitErr *err);
00310
00312 void ObitSkyModelLoadGridComps (ObitSkyModel* in, gint field, ObitUV* uvdata,
00313 gfloat gparm[3], glong *ncomp, ObitErr *err);
00314 typedef void (*ObitSkyModelLoadGridCompsFP) (ObitSkyModel* in, gint field, ObitUV* uvdata,
00315 gfloat gparm[3], glong *ncomp, ObitErr *err);
00316
00318 void ObitSkyModelFTImage (ObitSkyModel* in, ObitFArray *inArray,
00319 ObitCArray *outArray);
00320 typedef void (*ObitSkyModelFTImageFP) (ObitSkyModel* in, ObitFArray *inArray,
00321 ObitCArray *outArray);
00322
00324 void ObitSkyModelAddField (ObitSkyModel *in, ObitErr *err);
00325 typedef void (*ObitSkyModelAddFieldFP) (ObitSkyModel* in, ObitErr *err);
00326
00332 typedef struct {
00333 #include "ObitSkyModelClassDef.h"
00334 } ObitSkyModelClassInfo;
00335
00336 #endif