1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
These notes are with respect to the AFNI GIFTI C API.
- This API is built on top of expat, and is released into the public domain.
- The main functions are:
gifti_read_image, gifti_write_image, gifti_free_image
- The exported functions in gifti_io.h are intended for users of this
API, particularly those prototypes listed first.
- The gifti_xml functions are not intended for external use.
- Taking pointers from the gifti_image structure should be okay (providing
they are then set to NULL), but it may be less confusing to copy data out.
- To save memory, it is suggested to steal the darray[k]->data pointers, and
set them to NULL.
----------------------------------------------------------------------
Speeds: (last checked in version 0.7)
Since I/O speed was a question when deciding whether to use XML for
GIFTI, read times (in seconds) from a mac G5 are provided.
(no b64 error checking) (with b64 error counting and skipping)
ascii base64 base64gz base64 base64gz surface name
----- ------ -------- ------ -------- ------------
0.05 0.00 0.00 0.01 0.00 aoantonym
0.37 0.08 0.12 0.10 0.13 pial
7.20 0.95 0.75 1.14 0.79 time_series
----------------------------------------------------------------------
todo:
- on alloc failure, propogate error up and return NULL
- accessor functions
- indexed reading
- test doxygen comments
- #ifdef __cplusplus
- select node list
- display all valid attributes? DTD? valid attribute values given the name?
known metadata?
- gifti_remove_gim_metadata()
- gifti_remove_DA_metadata()
- gifti_remove_all_metadata()
- gifti_MD_delete(name)
- post XML read: validate gifti structure
- check for UNKNOWN attributes
- done?? "invalid darray XX"
- check that MD names are unique
|