/******************************************************************** 3A25 data check Listing 3A25 metadata and rainfall (mm/hr) for grid1 Usage: c_3a25rd '3A25_File_Name' 98/06/24 Original program by M.Kachi@EORC Modified to C-program by S.Shimizu@EORC This program is FREEWARE, so there is NO SUPPORT *********************************************************************/ #include #include #include #include #include #include #include #define IDIM 16 #define JDIM 72 #define KDIM 6 #define N100 100 int main(int argc, char *argv[]){ /* ----- Variables related to toolkit ------- */ IO_HANDLE granuleHandle3A25; L3A_25_GRID L3A25Grid; DATE_STR beginDate; TIME_STR beginTime; DATE_STR endDate; TIME_STR endTime; /* Variables */ int status; float mean[IDIM][JDIM][KDIM]; char granuleID_L3A25[N100]; if(argc != 2){ fprintf(stderr,"USAGE: " "c_3a25rd '2A25_Input_File_Name'\n"); return; } strcpy(granuleID_L3A25, argv[1]); /* ------ Open input file ----- */ status = TKopen(granuleID_L3A25, TK_L3A_25, TK_READ_ONLY, &granuleHandle3A25); if(status != TK_SUCCESS){ printf("*** ERROR -> stop -----" "Failed to open 3A25 input file:%s\n", granuleID_L3A25); return; } /* ------ Check metadeta ----- */ status = TKreadMetadataInt(&granuleHandle3A25, TK_BEGIN_DATE, &beginDate); status = TKreadMetadataInt(&granuleHandle3A25, TK_BEGIN_TIME, &beginTime); status = TKreadMetadataInt(&granuleHandle3A25, TK_END_DATE, &endDate); status = TKreadMetadataInt(&granuleHandle3A25, TK_END_TIME, &endTime); printf( " beginDate = %d/%d/%d \n", beginDate.tkyear, beginDate.tkmonth, beginDate.tkday ); printf( " beginTime = %d:%d:%d\n", beginTime.tkhour, beginTime.tkminute, beginTime.tksecond ); printf( " endDate = %d/%d/%d\n", endDate.tkyear, endDate.tkmonth, endDate.tkday ); printf( " endTime = %d:%d:%d\n", endTime.tkhour, endTime.tkminute, endTime.tksecond ); /* ------- Read grid data -------- */ status = TKreadGrid(&granuleHandle3A25, &L3A25Grid); if( status != TK_SUCCESS ) printf(" TK read error!\n"); /* ------- Write hourly rainfall ------ */ printf("Lat=16 Lon=72 lev=1 rain=%f\n",L3A25Grid.grid1.rainMean1[0][71][15]); /* ------- Close ------- */ status = TKclose(&granuleHandle3A25); return status; }