/************************************************************** TK_read.c DISCLAIMER: This software is provided for users of TRMM data. TSDIS DOES NOT PROVIDE SUPPORT FOR THIS SOFTWARE. The following program (TK_read.c) demonstrates how TSDIS 2A25 data can be read via the TSDIS toolkit. Sample compilation: cc -c -I$HDF_INC -I$TSDIS_INC TK_read.c cc TK_read.o -L$HDF_LIB $TSDIS_LIB/libtsdistk.a -lmfhdf -ldf -lz -lm -o TK_read Sample executions: TK_read 2A25_CSI.980812.4067.FLOR.3.HDF It is assumed that a good 2A25 TRMM data file is being read. ***************************************************************/ #include "IO_PR.h" int status,nscan,scan,i; void main(int argc, char **argv) { IO_HANDLE rHandle; L2A_25_SWATHDATA dataScan; printf("\n****OUTPUT for %s **** \n",argv[1]); status = TKopen ( argv[1], TKgetAlgorithmID ( argv[1] ), TK_READ_ONLY, &rHandle ); printf("\nStatus from TKopen: %d \n", status); status = TKreadMetadataInt (&rHandle, TK_ORBIT_SIZE, &nscan); printf("\nStatus and number of scans: %d %d\n", status,nscan); if (nscan == 0) printf("EMPTY GRANULE!!\n"); for (scan = 0; scan < nscan; scan++) { status = TKreadScan(&rHandle, &dataScan); if (scan == 0) { printf("\nStatus from TKreadScan: %d \n", status); printf("\n\nRainfall rate in mm/hr, profile for first scan, first ray(anglebin)\n"); printf("\nbin num value\t bin num value\t bin num value\n"); for (i=0; i< 80; i++) { printf("(%d)\t ",i); printf("%7.2f \t ", dataScan.rain[0][i]); if (((i+1)%3 == 0)&&(i!=0)) printf("\n"); } printf("\n\nGeolocation for first 10 rays of first scan\n"); printf("Lat.\t\t Lon.\n"); for (i=0; i< 10; i++) { printf("%f \t ", dataScan.geolocation[i][0]); printf("%f \t \n", dataScan.geolocation[i][1]); } printf("\nFractional Orbit Number, first 10 scans\n"); printf("Scan Number Fractional Orbit Number\n"); printf("-------------------------------------\n"); } if (scan < 10) /* for scans 0 to 9 */ { printf (" %i\t\t%f\n", i, dataScan.scanStatus.fractOrbitN); } } status = TKclose(&rHandle); printf("\nStatus from TKclose: %d \n", status); printf("\n\t the end :-) \n\n"); }