00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef MUSE_PROCESSING_H
00023 #define MUSE_PROCESSING_H
00024
00025 #include <cpl.h>
00026 #include "muse_image.h"
00027 #include "muse_mask.h"
00028
00029
00030
00031
00036 typedef struct {
00037 const char *tag;
00038 int ifu;
00039 int counter;
00040 } muse_processing_framecounter;
00041
00043 typedef struct {
00044 const char *name;
00045 cpl_array *intags;
00046 cpl_recipe *recipe;
00047 cpl_frameset *inframes;
00048 cpl_frameset *usedframes;
00049 cpl_frameset *outframes;
00050 cpl_parameterlist *parameters;
00051 muse_processing_framecounter *counter;
00052 } muse_processing;
00053
00055 typedef enum {
00056 MUSE_FRAME_MODE_ALL = 0,
00057 MUSE_FRAME_MODE_MASTER = 1,
00058 MUSE_FRAME_MODE_DATEOBS = 2,
00060 MUSE_FRAME_MODE_SUBSET = 3,
00062 MUSE_FRAME_MODE_SEQUENCE = 4
00064 } muse_frame_mode;
00065
00067 typedef enum {
00068 MUSE_TABLE_TYPE_CPL = 0,
00069 MUSE_TABLE_TYPE_PIXTABLE
00070 } muse_table_type;
00071
00073 typedef enum {
00074 MUSE_CUBE_TYPE_EURO3D = 0,
00075 MUSE_CUBE_TYPE_FITS,
00076 MUSE_CUBE_TYPE_EURO3D_X,
00078 MUSE_CUBE_TYPE_FITS_X,
00080 MUSE_CUBE_TYPE_LSF,
00081 MUSE_CUBE_TYPE_SDP
00082 } muse_cube_type;
00083
00086
00087
00088
00089
00090
00091
00092
00093 muse_processing *muse_processing_new(const char *, cpl_recipe *);
00094 void muse_processing_delete(muse_processing *);
00095
00096 void muse_processing_append_used(muse_processing *, cpl_frame *, cpl_frame_group, int);
00097
00098 cpl_frame *muse_processing_new_frame(muse_processing *, int, cpl_propertylist *, const char *, cpl_frame_type);
00099 int muse_processing_save_image(muse_processing *, int, muse_image *, const char *);
00100 cpl_error_code muse_processing_save_cube(muse_processing *, int, void *, const char *, muse_cube_type);
00101 int muse_processing_save_cimage(muse_processing *, int, cpl_image *, cpl_propertylist *, const char *);
00102 cpl_error_code muse_processing_save_table(muse_processing *, int, void *, cpl_propertylist *, const char *, muse_table_type);
00103 int muse_processing_save_mask(muse_processing *, int, muse_mask *, const char *);
00104 cpl_error_code muse_processing_save_header(muse_processing *, int, cpl_propertylist *, const char *);
00105
00106 cpl_boolean muse_processing_check_intags(muse_processing *, const char *, int);
00107 cpl_error_code muse_processing_check_input(muse_processing *, unsigned char);
00108
00109 cpl_table *muse_processing_sort_exposures(muse_processing *);
00110
00111 muse_mask *muse_processing_mask_load(muse_processing *, const char *);
00112
00113
00114
00115
00116
00117
00118
00119
00120 typedef cpl_error_code
00121 muse_processing_prepare_header_func(const char *, cpl_propertylist *);
00122
00123 typedef cpl_frame_level
00124 muse_processing_get_frame_level_func(const char *);
00125
00126 typedef muse_frame_mode
00127 muse_processing_get_frame_mode_func(const char *);
00128
00129 void muse_processinginfo_register(cpl_recipe *, cpl_recipeconfig *, muse_processing_prepare_header_func *, muse_processing_get_frame_level_func *, muse_processing_get_frame_mode_func *);
00130
00131 cpl_error_code muse_processing_prepare_header(const cpl_recipe *, const char *, cpl_propertylist *);
00132 cpl_error_code muse_processing_prepare_property(cpl_propertylist *, const char *, cpl_type, const char *);
00133
00134 cpl_frame_level muse_processing_get_frame_level(const cpl_recipe *, const char *);
00135 int muse_processing_get_frame_mode(const cpl_recipe *, const char *);
00136 cpl_recipeconfig *muse_processing_get_recipeconfig(cpl_recipe *);
00137 void muse_processinginfo_delete(cpl_recipe *);
00138
00139 void muse_processing_recipeinfo(cpl_plugin *);
00140
00141 #endif