#include "mfhdf.h"
#define FILE_NAME "SDS.hdf"
main( )
{
/************************* Variable declaration **************************/
int32 sd_id, sds_id, sds_index;
intn status;
int32 rank, data_type, dim_sizes[MAX_VAR_DIMS];
int32 n_datasets, n_file_attr, n_attrs;
char sds_name[MAX_NC_NAME];
/********************* End of variable declaration ***********************/
/*
* Open the file and initialize the SD interface.
*/
sd_id = SDstart(FILE_NAME, DFACC_READ);
/*
* Obtain information about the file.
*/
status = SDfileinfo(sd_id, &n_datasets, &n_file_attr);
/* Get information about each SDS in the file.
* Check whether it is a coordinate variable, then display retrieved
* information.
* Output displayed:
*
* SDS array with the name SDStemplate
* Coordinate variable with the name Y_Axis
* Coordinate variable with the name X_Axis
*
*/
for (sds_index=0; sds_index< n_datasets; sds_index++)
{
sds_id = SDselect (sd_id, sds_index);
status = SDgetinfo(sds_id, sds_name, &rank, dim_sizes, &data_type, &n_attrs);
if (SDiscoordvar(sds_id))
printf(" Coordinate variable with the name %s\n", sds_name);
else
printf(" SDS array with the name %s\n", sds_name);
/*
* Terminate access to the selected data set.
*/
status = SDendaccess(sds_id);
}
/*
* Terminate access to the SD interface and close the file.
*/
status = SDend(sd_id);
}