Doxygen Source Code Documentation
thd_opendset.c File Reference
#include "mrilib.h"#include "thd.h"Go to the source code of this file.
Defines | |
| #define | CHECK_FOR_DATA(fn) |
Functions | |
| THD_3dim_dataset * | THD_open_one_dataset (char *pathname) |
| int | THD_is_dataset (char *sname, char *pname, int vt) |
| char * | THD_dataset_headname (char *sname, char *pname, int vt) |
Define Documentation
|
|
Value: do{ if( fsize <= 0 ){ \ if( fsize == 0 ) \ fprintf(stderr,"** Can't read ANY data from file '%s'\n",(fn)); \ RETURN(NULL) ; \ }} while(0) Definition at line 11 of file thd_opendset.c. Referenced by THD_open_one_dataset(). |
Function Documentation
|
||||||||||||||||
|
Definition at line 199 of file thd_opendset.c. References ADN_directory_name, ADN_none, ADN_prefix, ADN_view_type, THD_3dim_dataset::dblk, THD_datablock::diskptr, EDIT_dset_items(), EDIT_empty_copy(), ENTRY, FIRST_VIEW_TYPE, THD_diskptr::header_name, LAST_VIEW_TYPE, malloc, RETURN, and THD_delete_3dim_dataset(). Referenced by THD_open_3dcalc().
00200 {
00201 THD_3dim_dataset *dset ;
00202 char *str ; int ll ;
00203
00204 ENTRY("THD_dataset_headname") ;
00205
00206 if( pname == NULL ) RETURN(NULL) ;
00207
00208 dset = EDIT_empty_copy(NULL) ;
00209 EDIT_dset_items( dset , ADN_prefix , pname , ADN_none ) ;
00210
00211 if( sname != NULL )
00212 EDIT_dset_items( dset , ADN_directory_name , sname , ADN_none ) ;
00213
00214 if( vt >= FIRST_VIEW_TYPE && vt <= LAST_VIEW_TYPE )
00215 EDIT_dset_items( dset , ADN_view_type , vt , ADN_none ) ;
00216
00217 ll = strlen(dset->dblk->diskptr->header_name) + 1 ;
00218 str = (char *) malloc(sizeof(char)*ll ) ;
00219 strcpy( str , dset->dblk->diskptr->header_name ) ;
00220
00221 THD_delete_3dim_dataset( dset , False ) ;
00222 RETURN(str) ;
00223 }
|
|
||||||||||||||||
|
Definition at line 164 of file thd_opendset.c. References ADN_directory_name, ADN_none, ADN_prefix, ADN_view_type, THD_3dim_dataset::dblk, THD_datablock::diskptr, EDIT_dset_items(), EDIT_empty_copy(), ENTRY, FIRST_VIEW_TYPE, THD_diskptr::header_name, LAST_VIEW_TYPE, RETURN, THD_delete_3dim_dataset(), and THD_is_file(). Referenced by THD_open_3dcalc().
00165 {
00166 THD_3dim_dataset *dset ;
00167 int ii , vv ;
00168
00169 ENTRY("THD_is_dataset") ;
00170
00171 if( pname == NULL ) RETURN(-1) ;
00172
00173 dset = EDIT_empty_copy(NULL) ;
00174 EDIT_dset_items( dset , ADN_prefix , pname , ADN_none ) ;
00175
00176 if( sname != NULL )
00177 EDIT_dset_items( dset , ADN_directory_name , sname , ADN_none ) ;
00178
00179 if( vt >= FIRST_VIEW_TYPE && vt <= LAST_VIEW_TYPE ){
00180 EDIT_dset_items( dset , ADN_view_type , vt , ADN_none ) ;
00181 ii = THD_is_file(dset->dblk->diskptr->header_name);
00182 THD_delete_3dim_dataset(dset,False) ;
00183 if( ii ) RETURN(vt) ;
00184 RETURN(-1) ;
00185 }
00186
00187 for( vv=FIRST_VIEW_TYPE ; vv <= LAST_VIEW_TYPE ; vv++ ){
00188 EDIT_dset_items( dset , ADN_view_type , vv , ADN_none ) ;
00189 ii = THD_is_file(dset->dblk->diskptr->header_name);
00190 if( ii ){ THD_delete_3dim_dataset(dset,False); RETURN(vv); }
00191 }
00192
00193 THD_delete_3dim_dataset( dset , False ) ;
00194 RETURN(-1) ;
00195 }
|
|
|
Definition at line 23 of file thd_opendset.c. References CHECK_FOR_DATA, DATASET_BRICK_SUFFIX, DATASET_HEADER_SUFFIX, ENTRY, getenv(), offset, RETURN, STRING_HAS_SUFFIX, THD_3dim_from_block(), THD_filesize(), THD_init_one_datablock(), THD_is_file(), THD_MAX_NAME, THD_open_1D(), THD_open_3D(), THD_open_analyze(), THD_open_ctfmri(), THD_open_ctfsam(), THD_open_dataset(), THD_open_minc(), THD_open_mpeg(), and THD_open_nifti(). Referenced by B2F_read_opts(), BUCK_read_opts(), CALC_read_opts(), check_output_files(), get_line_opt(), get_options(), IMREG_main(), main(), output_ts_array(), read_dataset(), read_input_data(), T3D_anatomy_parent_CB(), T3D_geometry_parent_CB(), TCAT_read_opts(), THD_fetch_dataset(), THD_open_3dcalc(), THD_open_dataset(), THD_read_dvecmat(), TT_load_atlas(), VL_command_line(), write_3dtime(), write_afni_data(), write_bucket_data(), and write_ts_array().
00024 {
00025 int ii , plen ;
00026 char dirname[THD_MAX_NAME] , fullname[THD_MAX_NAME] ;
00027 THD_3dim_dataset *dset ;
00028 THD_datablock *dblk ;
00029 char *sub ;
00030 char *fname ; /* to skip directory during HEAD/BRIK search in filename */
00031 int offset ; /* - [rickr 20 Sep 2002] */
00032 int fsize ; /* 06 Jan 2005 */
00033
00034 ENTRY("THD_open_one_dataset") ;
00035
00036 /*-- sanity check --*/
00037
00038 if( pathname == NULL ||
00039 (plen=strlen(pathname)) == 0 ||
00040 pathname[plen-1] == '/' ) RETURN(NULL) ;
00041
00042 /*-- perhaps open the new-fangled way [22 May 2000] --*/
00043
00044 if( getenv("AFNI_USE_THD_open_dataset") != NULL &&
00045 strstr(pathname,"[") != NULL ){
00046
00047 RETURN( THD_open_dataset(pathname) ) ;
00048 }
00049
00050 fsize = THD_filesize(pathname) ; /* 06 Jan 2005 */
00051 if( fsize == 0 && !THD_is_file(pathname) ) fsize = -1 ; /* 31 Mar 2005 */
00052
00053 /*-- perhaps the MINC way --*/
00054
00055 if( STRING_HAS_SUFFIX(pathname,".mnc") ){
00056 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */
00057 RETURN( THD_open_minc(pathname) ) ;
00058 }
00059
00060 /*-- perhaps the ANALYZE way --*/
00061
00062 if( STRING_HAS_SUFFIX(pathname,".hdr") ){
00063 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */
00064 RETURN( THD_open_analyze(pathname) ) ;
00065 }
00066
00067 /*-- perhaps the CTF way [04 Dec 2002] --*/
00068
00069 if( STRING_HAS_SUFFIX(pathname,".mri") ){
00070 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */
00071 RETURN( THD_open_ctfmri(pathname) ) ;
00072 } else if( STRING_HAS_SUFFIX(pathname,".svl") ){
00073 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */
00074 RETURN( THD_open_ctfsam(pathname) ) ;
00075 }
00076
00077 /*-- 04 Mar 2003: allow input of .1D files --*/
00078
00079 if( STRING_HAS_SUFFIX(pathname,".1D") ){
00080 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */
00081 RETURN( THD_open_1D(pathname) ) ;
00082 } else if( STRING_HAS_SUFFIX(pathname,".3D") ){ /* 21 Mar 2003 */
00083 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */
00084 RETURN( THD_open_3D(pathname) ) ;
00085 }
00086
00087 /*-- 28 Aug 2003: the NIFTI way! --*/
00088
00089 if( STRING_HAS_SUFFIX(pathname,".nii") ||
00090 STRING_HAS_SUFFIX(pathname,".nii.gz") ||
00091 STRING_HAS_SUFFIX(pathname,".nia") ){
00092
00093 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */
00094 RETURN( THD_open_nifti(pathname) ) ;
00095 }
00096
00097 /*-- 03 Dec 2003: the MPEG way! --*/
00098
00099 if( STRING_HAS_SUFFIX(pathname,".mpg") ||
00100 STRING_HAS_SUFFIX(pathname,".MPG") ||
00101 STRING_HAS_SUFFIX(pathname,".MPEG") ||
00102 STRING_HAS_SUFFIX(pathname,".mpeg") ){
00103
00104 CHECK_FOR_DATA(pathname) ; /* 06 Jan 2005 */
00105 RETURN( THD_open_mpeg(pathname) ) ;
00106 }
00107
00108 /*-- Must be an AFNI-formatted dataset! -------------*/
00109 /*-- find directory and last names in the pathname --*/
00110
00111 for( ii=plen-1 ; ii >= 0 ; ii-- ) if( pathname[ii] == '/' ) break ;
00112
00113 if( ii < 0 ){
00114 strcpy( dirname , "./" ) ; /* fake directory name */
00115 } else {
00116 strcpy( dirname , pathname ) ;
00117 dirname[ii+1] = '\0' ;
00118 }
00119 offset = ii + 1 ; /* offset of file within pathname - rickr [20 Sep 2002] */
00120
00121 /*-- perform surgery on the name to make it a valid .HEAD --*/
00122
00123 strcpy( fullname , pathname ) ;
00124 fname = fullname + offset ; /* trailing filename (past directory) - rickr */
00125
00126 /* (REPLACE) sub = strstr( fullname , DATASET_HEADER_SUFFIX ) ; * .HEAD ? */
00127 sub = strstr( fname , DATASET_HEADER_SUFFIX ) ; /* .HEAD ? r:fname */
00128
00129 if( sub == NULL ){ /* no! */
00130 sub = strstr( fname , DATASET_BRICK_SUFFIX ) ; /* .BRIK ? r:fname */
00131
00132 if( sub == NULL ){ /* no! */
00133 ii = strlen(fullname) ;
00134 if( fullname[ii-1] != '.' ) strcat( fullname , "." ) ; /* tack .HEAD */
00135 strcat( fullname , DATASET_HEADER_SUFFIX ) ; /* onto end */
00136
00137 } else { /* yes! */
00138 strcpy( sub , DATASET_HEADER_SUFFIX ) ; /* replace .BRIK with .HEAD */
00139 }
00140 }
00141
00142 /*-- open it up? --*/
00143
00144 fsize = THD_filesize(fullname) ; /* 06 Jan 2005 */
00145 if( fsize == 0 && !THD_is_file(pathname) ) fsize = -1 ; /* 31 Mar 2005 */
00146 CHECK_FOR_DATA(fullname) ;
00147
00148 dblk = THD_init_one_datablock( dirname , fullname ) ;
00149 if( dblk == NULL ) RETURN(NULL) ;
00150
00151 dset = THD_3dim_from_block( dblk ) ;
00152 RETURN(dset) ;
00153 }
|