Changeset 3037
- Timestamp:
- Jan 18, 2005, 9:36:26 AM (22 years ago)
- Location:
- trunk/psLib
- Files:
-
- 5 edited
-
src/dataIO/psFits.c (modified) (2 diffs)
-
src/fileUtils/psFits.c (modified) (2 diffs)
-
src/fits/psFits.c (modified) (2 diffs)
-
test/dataIO/tst_psFits.c (modified) (4 diffs)
-
test/fileUtils/tst_psFits.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataIO/psFits.c
r3028 r3037 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1.1 2$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-01-18 03:15:03$9 * @version $Revision: 1.13 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-01-18 19:36:26 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 1216 1216 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1217 1217 PS_TYPE_##TYPE, PS_META_PRIMITIVE, \ 1218 "", (ps##TYPE)value); \1218 "", value); \ 1219 1219 } \ 1220 1220 break; \ -
trunk/psLib/src/fileUtils/psFits.c
r3028 r3037 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1.1 2$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-01-18 03:15:03$9 * @version $Revision: 1.13 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-01-18 19:36:26 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 1216 1216 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1217 1217 PS_TYPE_##TYPE, PS_META_PRIMITIVE, \ 1218 "", (ps##TYPE)value); \1218 "", value); \ 1219 1219 } \ 1220 1220 break; \ -
trunk/psLib/src/fits/psFits.c
r3028 r3037 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1.1 2$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-01-18 03:15:03$9 * @version $Revision: 1.13 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-01-18 19:36:26 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 1216 1216 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1217 1217 PS_TYPE_##TYPE, PS_META_PRIMITIVE, \ 1218 "", (ps##TYPE)value); \1218 "", value); \ 1219 1219 } \ 1220 1220 break; \ -
trunk/psLib/test/dataIO/tst_psFits.c
r3035 r3037 6 6 * @author Robert DeSonia, MHPCC 7 7 * 8 * @version $Revision: 1.1 3$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-01-18 19: 14:04 $8 * @version $Revision: 1.14 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-01-18 19:35:24 $ 10 10 * 11 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 74 74 { 75 75 76 if (access(multiFilename, F_OK) != 0) { 77 psFits* fitsFile = psFitsAlloc(multiFilename); 78 79 if (fitsFile == NULL) { 80 psError(PS_ERR_UNKNOWN, false, 81 "Could not create 'multi' FITS file."); 76 remove 77 (multiFilename); 78 79 psFits* fitsFile = psFitsAlloc(multiFilename); 80 81 if (fitsFile == NULL) { 82 psError(PS_ERR_UNKNOWN, false, 83 "Could not create 'multi' FITS file."); 84 return false; 85 } 86 87 psImage* image = psImageAlloc(16,16,PS_TYPE_F32); 88 89 char extname[80]; 90 for (int lcv = 0; lcv < 8; lcv++) { 91 snprintf(extname,80,"ext-%d", lcv); 92 93 psMetadata* header = psMetadataAlloc(); 94 95 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 96 PS_TYPE_S32, PS_META_PRIMITIVE, 97 "psS32 Item", (psS32)lcv); 98 99 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 100 PS_TYPE_F32, PS_META_PRIMITIVE, 101 "psF32 Item", (float)(1.0f/(float)(1+lcv))); 102 103 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 104 PS_TYPE_F64, PS_META_PRIMITIVE, 105 "psF64 Item", (double)(1.0/(double)(1+lcv))); 106 107 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 108 PS_TYPE_BOOL, PS_META_PRIMITIVE, 109 "psBool Item", 110 (lcv%2 == 0)); 111 112 psMetadataAdd(header,PS_LIST_TAIL, "MYSTR", 113 PS_TYPE_PTR, PS_META_STR, 114 "String Item", 115 extname); 116 117 // set the pixels in the image 118 psBinaryOp(image,image,"=",psScalarAlloc(lcv,PS_TYPE_F32)); 119 if (! psFitsWriteImage(fitsFile,header,image,1, extname) ) { 120 psError(PS_ERR_UNKNOWN, false, 121 "Could not write image."); 82 122 return false; 83 123 } 84 124 85 psImage* image = psImageAlloc(16,16,PS_TYPE_F32); 86 87 char extname[80]; 88 for (int lcv = 0; lcv < 8; lcv++) { 89 snprintf(extname,80,"ext-%d", lcv); 90 91 psMetadata* header = psMetadataAlloc(); 92 93 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 94 PS_TYPE_S32, PS_META_PRIMITIVE, 95 "psS32 Item", (psS32)lcv); 96 97 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 98 PS_TYPE_F32, PS_META_PRIMITIVE, 99 "psF32 Item", (float)(1.0f/(float)(1+lcv))); 100 101 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 102 PS_TYPE_F64, PS_META_PRIMITIVE, 103 "psF64 Item", (double)(1.0/(double)(1+lcv))); 104 105 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 106 PS_TYPE_BOOL, PS_META_PRIMITIVE, 107 "psBool Item", 108 (lcv%2 == 0)); 109 110 psMetadataAdd(header,PS_LIST_TAIL, "MYSTR", 111 PS_TYPE_PTR, PS_META_STR, 112 "String Item", 113 extname); 114 115 // set the pixels in the image 116 psBinaryOp(image,image,"=",psScalarAlloc(lcv,PS_TYPE_F32)); 117 if (! psFitsWriteImage(fitsFile,header,image,1, extname) ) { 118 psError(PS_ERR_UNKNOWN, false, 119 "Could not write image."); 120 return false; 121 } 122 123 psFree(header); 124 } 125 psFree(image); 126 psFree(fitsFile); 127 } 125 psFree(header); 126 } 127 psFree(image); 128 psFree(fitsFile); 128 129 129 130 return true; … … 133 134 { 134 135 135 if (access(tableFilename, F_OK) != 0) { 136 psFits* fitsFile = psFitsAlloc(tableFilename); 137 138 if (fitsFile == NULL) { 139 psError(PS_ERR_UNKNOWN, false, 140 "Could not create 'table' FITS file."); 141 return false; 142 } 143 144 // make the PHU an image (per FITS standard, it must be) 145 psImage* image = psImageAlloc(16,16,PS_TYPE_F32); 146 147 if (! psFitsWriteImage(fitsFile,NULL,image,1,"primary") ) { 148 psError(PS_ERR_UNKNOWN, false, 149 "Could not write PHU image."); 150 return false; 151 } 152 153 psFree(image); 154 155 // build a table structure 156 psArray* table = psArrayAlloc(tableNumRows); 157 table->n = 0; 158 for (int row = 0; row < tableNumRows; row++) { 159 psMetadata* header = psMetadataAlloc(); 160 161 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 162 PS_TYPE_S32, PS_META_PRIMITIVE, 163 "psS32 Item", (psS32)row); 164 165 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 166 PS_TYPE_F32, PS_META_PRIMITIVE, 167 "psF32 Item", (float)(1.0f/(float)(1+row))); 168 169 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 170 PS_TYPE_F64, PS_META_PRIMITIVE, 171 "psF64 Item", (double)(1.0/(double)(1+row))); 172 173 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 174 PS_TYPE_BOOL, PS_META_PRIMITIVE, 175 "psBool Item", 176 (row%2 == 0)); 177 178 psArrayAdd(table,0,header); 179 } 180 181 psFitsWriteTable(fitsFile, NULL, table, "table-1"); 182 183 psFree(table); 184 psFree(fitsFile); 185 } 136 remove 137 (tableFilename); 138 139 psFits* fitsFile = psFitsAlloc(tableFilename); 140 141 if (fitsFile == NULL) { 142 psError(PS_ERR_UNKNOWN, false, 143 "Could not create 'table' FITS file."); 144 return false; 145 } 146 147 // make the PHU an image (per FITS standard, it must be) 148 psImage* image = psImageAlloc(16,16,PS_TYPE_F32); 149 150 if (! psFitsWriteImage(fitsFile,NULL,image,1,"primary") ) { 151 psError(PS_ERR_UNKNOWN, false, 152 "Could not write PHU image."); 153 return false; 154 } 155 156 psFree(image); 157 158 // build a table structure 159 psArray* table = psArrayAlloc(tableNumRows); 160 table->n = 0; 161 for (int row = 0; row < tableNumRows; row++) { 162 psMetadata* header = psMetadataAlloc(); 163 164 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 165 PS_TYPE_S32, PS_META_PRIMITIVE, 166 "psS32 Item", (psS32)row); 167 168 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 169 PS_TYPE_F32, PS_META_PRIMITIVE, 170 "psF32 Item", (float)(1.0f/(float)(1+row))); 171 172 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 173 PS_TYPE_F64, PS_META_PRIMITIVE, 174 "psF64 Item", (double)(1.0/(double)(1+row))); 175 176 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 177 PS_TYPE_BOOL, PS_META_PRIMITIVE, 178 "psBool Item", 179 (row%2 == 0)); 180 181 psArrayAdd(table,0,header); 182 } 183 184 psFitsWriteTable(fitsFile, NULL, table, "table-1"); 185 186 psFree(table); 187 psFree(fitsFile); 186 188 187 189 return true; … … 867 869 } 868 870 869 if ( (boolItem && !((row&0x01) == 0)) || 870 (!boolItem && ((row&0x01) == 0))) { 871 if ( boolItem != ((row&0x01) == 0)) { 871 872 psError(PS_ERR_UNKNOWN, true, 872 873 "Failed to retrieve psBool metadata item from file (row=%d). Got %d vs %d", -
trunk/psLib/test/fileUtils/tst_psFits.c
r3036 r3037 6 6 * @author Robert DeSonia, MHPCC 7 7 * 8 * @version $Revision: 1.1 3$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-01-18 19: 14:04 $8 * @version $Revision: 1.14 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-01-18 19:35:24 $ 10 10 * 11 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 74 74 { 75 75 76 if (access(multiFilename, F_OK) != 0) { 77 psFits* fitsFile = psFitsAlloc(multiFilename); 78 79 if (fitsFile == NULL) { 80 psError(PS_ERR_UNKNOWN, false, 81 "Could not create 'multi' FITS file."); 76 remove 77 (multiFilename); 78 79 psFits* fitsFile = psFitsAlloc(multiFilename); 80 81 if (fitsFile == NULL) { 82 psError(PS_ERR_UNKNOWN, false, 83 "Could not create 'multi' FITS file."); 84 return false; 85 } 86 87 psImage* image = psImageAlloc(16,16,PS_TYPE_F32); 88 89 char extname[80]; 90 for (int lcv = 0; lcv < 8; lcv++) { 91 snprintf(extname,80,"ext-%d", lcv); 92 93 psMetadata* header = psMetadataAlloc(); 94 95 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 96 PS_TYPE_S32, PS_META_PRIMITIVE, 97 "psS32 Item", (psS32)lcv); 98 99 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 100 PS_TYPE_F32, PS_META_PRIMITIVE, 101 "psF32 Item", (float)(1.0f/(float)(1+lcv))); 102 103 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 104 PS_TYPE_F64, PS_META_PRIMITIVE, 105 "psF64 Item", (double)(1.0/(double)(1+lcv))); 106 107 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 108 PS_TYPE_BOOL, PS_META_PRIMITIVE, 109 "psBool Item", 110 (lcv%2 == 0)); 111 112 psMetadataAdd(header,PS_LIST_TAIL, "MYSTR", 113 PS_TYPE_PTR, PS_META_STR, 114 "String Item", 115 extname); 116 117 // set the pixels in the image 118 psBinaryOp(image,image,"=",psScalarAlloc(lcv,PS_TYPE_F32)); 119 if (! psFitsWriteImage(fitsFile,header,image,1, extname) ) { 120 psError(PS_ERR_UNKNOWN, false, 121 "Could not write image."); 82 122 return false; 83 123 } 84 124 85 psImage* image = psImageAlloc(16,16,PS_TYPE_F32); 86 87 char extname[80]; 88 for (int lcv = 0; lcv < 8; lcv++) { 89 snprintf(extname,80,"ext-%d", lcv); 90 91 psMetadata* header = psMetadataAlloc(); 92 93 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 94 PS_TYPE_S32, PS_META_PRIMITIVE, 95 "psS32 Item", (psS32)lcv); 96 97 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 98 PS_TYPE_F32, PS_META_PRIMITIVE, 99 "psF32 Item", (float)(1.0f/(float)(1+lcv))); 100 101 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 102 PS_TYPE_F64, PS_META_PRIMITIVE, 103 "psF64 Item", (double)(1.0/(double)(1+lcv))); 104 105 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 106 PS_TYPE_BOOL, PS_META_PRIMITIVE, 107 "psBool Item", 108 (lcv%2 == 0)); 109 110 psMetadataAdd(header,PS_LIST_TAIL, "MYSTR", 111 PS_TYPE_PTR, PS_META_STR, 112 "String Item", 113 extname); 114 115 // set the pixels in the image 116 psBinaryOp(image,image,"=",psScalarAlloc(lcv,PS_TYPE_F32)); 117 if (! psFitsWriteImage(fitsFile,header,image,1, extname) ) { 118 psError(PS_ERR_UNKNOWN, false, 119 "Could not write image."); 120 return false; 121 } 122 123 psFree(header); 124 } 125 psFree(image); 126 psFree(fitsFile); 127 } 125 psFree(header); 126 } 127 psFree(image); 128 psFree(fitsFile); 128 129 129 130 return true; … … 133 134 { 134 135 135 if (access(tableFilename, F_OK) != 0) { 136 psFits* fitsFile = psFitsAlloc(tableFilename); 137 138 if (fitsFile == NULL) { 139 psError(PS_ERR_UNKNOWN, false, 140 "Could not create 'table' FITS file."); 141 return false; 142 } 143 144 // make the PHU an image (per FITS standard, it must be) 145 psImage* image = psImageAlloc(16,16,PS_TYPE_F32); 146 147 if (! psFitsWriteImage(fitsFile,NULL,image,1,"primary") ) { 148 psError(PS_ERR_UNKNOWN, false, 149 "Could not write PHU image."); 150 return false; 151 } 152 153 psFree(image); 154 155 // build a table structure 156 psArray* table = psArrayAlloc(tableNumRows); 157 table->n = 0; 158 for (int row = 0; row < tableNumRows; row++) { 159 psMetadata* header = psMetadataAlloc(); 160 161 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 162 PS_TYPE_S32, PS_META_PRIMITIVE, 163 "psS32 Item", (psS32)row); 164 165 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 166 PS_TYPE_F32, PS_META_PRIMITIVE, 167 "psF32 Item", (float)(1.0f/(float)(1+row))); 168 169 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 170 PS_TYPE_F64, PS_META_PRIMITIVE, 171 "psF64 Item", (double)(1.0/(double)(1+row))); 172 173 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 174 PS_TYPE_BOOL, PS_META_PRIMITIVE, 175 "psBool Item", 176 (row%2 == 0)); 177 178 psArrayAdd(table,0,header); 179 } 180 181 psFitsWriteTable(fitsFile, NULL, table, "table-1"); 182 183 psFree(table); 184 psFree(fitsFile); 185 } 136 remove 137 (tableFilename); 138 139 psFits* fitsFile = psFitsAlloc(tableFilename); 140 141 if (fitsFile == NULL) { 142 psError(PS_ERR_UNKNOWN, false, 143 "Could not create 'table' FITS file."); 144 return false; 145 } 146 147 // make the PHU an image (per FITS standard, it must be) 148 psImage* image = psImageAlloc(16,16,PS_TYPE_F32); 149 150 if (! psFitsWriteImage(fitsFile,NULL,image,1,"primary") ) { 151 psError(PS_ERR_UNKNOWN, false, 152 "Could not write PHU image."); 153 return false; 154 } 155 156 psFree(image); 157 158 // build a table structure 159 psArray* table = psArrayAlloc(tableNumRows); 160 table->n = 0; 161 for (int row = 0; row < tableNumRows; row++) { 162 psMetadata* header = psMetadataAlloc(); 163 164 psMetadataAdd(header,PS_LIST_TAIL, "MYINT", 165 PS_TYPE_S32, PS_META_PRIMITIVE, 166 "psS32 Item", (psS32)row); 167 168 psMetadataAdd(header,PS_LIST_TAIL, "MYFLT", 169 PS_TYPE_F32, PS_META_PRIMITIVE, 170 "psF32 Item", (float)(1.0f/(float)(1+row))); 171 172 psMetadataAdd(header,PS_LIST_TAIL, "MYDBL", 173 PS_TYPE_F64, PS_META_PRIMITIVE, 174 "psF64 Item", (double)(1.0/(double)(1+row))); 175 176 psMetadataAdd(header,PS_LIST_TAIL, "MYBOOL", 177 PS_TYPE_BOOL, PS_META_PRIMITIVE, 178 "psBool Item", 179 (row%2 == 0)); 180 181 psArrayAdd(table,0,header); 182 } 183 184 psFitsWriteTable(fitsFile, NULL, table, "table-1"); 185 186 psFree(table); 187 psFree(fitsFile); 186 188 187 189 return true; … … 867 869 } 868 870 869 if ( (boolItem && !((row&0x01) == 0)) || 870 (!boolItem && ((row&0x01) == 0))) { 871 if ( boolItem != ((row&0x01) == 0)) { 871 872 psError(PS_ERR_UNKNOWN, true, 872 873 "Failed to retrieve psBool metadata item from file (row=%d). Got %d vs %d",
Note:
See TracChangeset
for help on using the changeset viewer.
