00001
00002
00003 #ifndef _LIBPROJECTION_H
00004 #define _LIBPROJECTION_H
00005
00006 typedef enum
00007 {
00008 kLIBPROJECTION_InterBilinear = 0,
00009 kLIBPROJECTION_InterCubic = 1,
00010 } LIBPROJECTION_Interpolation_t;
00011
00012 typedef enum
00013 {
00014 kLIBPROJECTION_Success = 0,
00015 kLIBPROJECTION_BadDimensionality,
00016 kLIBPROJECTION_BadData,
00017 kLIBPROJECTION_CouldntCreateData,
00018 kLIBPROJECTION_DimensionMismatch,
00019 kLIBPROJECTION_CantDoOddNumLats,
00020 kLIBPROJECTION_UnsupportedInterp,
00021 kLIBPROJECTION_UnsupportedMCOR,
00022 kLIBPROJECTION_UnsupportedVCOR,
00023 kLIBPROJECTION_InconsistentConstraints,
00024 kLIBPROJECTION_InvalidArgs,
00025 kLIBPROJECTION_Interpolation,
00026 kLIBPROJECTION_InsufficientData
00027 } LIBPROJECTION_Error_t;
00028
00029 typedef enum
00030 {
00031 kLIBPROJECTION_MCORLevel0,
00032 kLIBPROJECTION_MCORLevel1,
00033 kLIBPROJECTION_MCORLevel2
00034 } LIBPROJECTION_MCOR_t;
00035
00036 typedef enum
00037 {
00038 kLIBPROJECTION_VCORSignOnly,
00039 kLIBPROJECTION_VCORLevel1,
00040 kLIBPROJECTION_VCORLevel2
00041 } LIBPROJECTION_VCOR_t;
00042
00043 typedef struct LIBPROJECTION_Dist_Struct
00044 {
00045 int disttype;
00046 double scale;
00047 double xc, yc;
00048 double cdist;
00049 double feff, alpha, cosbeta, sinbeta;
00050 } LIBPROJECTION_Dist_t;
00051
00052 typedef struct LIBPROJECTION_RotRate_struct
00053 {
00054 float lat;
00055 float r;
00056 } LIBPROJECTION_RotRate_t;
00057
00058 int SetDistort(int dist, double cubic, double alpha, double beta, double feff, LIBPROJECTION_Dist_t *dOut);
00059
00060 int obs2helio(
00061 float *V,
00062
00063 float *U,
00064 int xpixels,
00065 int ypixels,
00066 double x0,
00067 double y0,
00068 double BZero,
00069 double P,
00070
00071 double S,
00072 double rsun,
00073 double Rmax,
00074
00075 int interpolation,
00076 int cols,
00077 int rows,
00078 double Lmin,
00079 double Ldelta,
00080 double Ladjust,
00081 double sinBdelta,
00082
00083 double smajor,
00084 double sminor,
00085 double sangle,
00086 double xscale,
00087 double yscale,
00088 const char *orientation,
00089
00090 int mag_correction,
00091 int velocity_correction,
00092 double obs_vr,
00093 double obs_vw,
00094 double obs_vn,
00095 double vsign,
00096 int NaN_beyond_rmax,
00097 int carrStretch,
00098 const LIBPROJECTION_Dist_t *distpars,
00099 float diffrotA,
00100 float diffrotB,
00101 float diffrotC,
00102 LIBPROJECTION_RotRate_t *rRates,
00103 int size);
00104
00105 int apodize(float *data,
00106 double b0,
00107 int cols, int rows,
00108 double Lmin,
00109 double Ldelta,
00110 double sinBdelta,
00111 int apodlevel,
00112
00113
00114
00115 double apinner,
00116 double apwidth,
00117 int apel,
00118
00119 double apx,
00120
00121 double apy);
00122
00123
00124
00125 extern int setplm2(int lmin,int lmax,int m,long nx,int *indx,double *x,long nplm,double *plm,double *dplm);
00126
00127 #endif // _DRMS_LIBPROJECTION_H