void calc_minmax_polsarpro(const char *inFile, double *min, double *max) { int ii,jj; *min = 999999; *max = -999999; char *enviName = (char *) MALLOC(sizeof(char)*(strlen(inFile) + 10)); sprintf(enviName, "%s.hdr", inFile); envi_header *envi = read_envi(enviName); meta_parameters *meta = envi2meta(envi); float *data = MALLOC(sizeof(float) * meta->general->sample_count); FILE *fp = FOPEN(inFile, "rb"); asfPrintStatus("\nCalculating min and max ...\n"); for (ii=0; ii<meta->general->line_count; ++ii) { asfPercentMeter(((double)ii/(double)meta->general->line_count)); get_float_line(fp, meta, ii, data); for (jj=0; jj<meta->general->sample_count; ++jj) { ieee_big32(data[jj]); if (data[jj] < *min) *min = data[jj]; if (data[jj] > *max) *max = data[jj]; } } asfPercentMeter(1.0); FCLOSE(fp); FREE(data); meta_free(meta); FREE(envi); FREE(enviName); }
int main(int argc, char **argv) { char meta_name[255]; char envi_name[255]; meta_parameters *meta=NULL; envi_header *envi=NULL; extern int currArg; /* from cla.h in asf.h... initialized to 1 */ logflag = 0; if (argc > 1) { check_for_help(argc, argv); handle_license_and_version_args(argc, argv, TOOL_NAME); } if (argc < 3) { asfPrintStatus("\nNot enough arguments.\n"); usage(); return 1; } /* Parse command line args */ while (currArg < (argc-2)) { char *key=argv[currArg++]; if (strmatch(key,"-log")) { sprintf(logFile, "%s", argv[currArg]); logflag = 1; } else { printf("\n ***Invalid option: %s\n\n", argv[currArg-1]); usage(argv[0]); } } if ((argc-currArg) < 2) { printf("Insufficient arguments.\n"); usage(argv[0]); } create_name(envi_name, argv[currArg], ".hdr"); create_name(meta_name, argv[currArg+1], ".meta"); asfSplashScreen(argc, argv); // Read ENVI header envi = read_envi(envi_name); // Fill metadata structure with valid data meta = envi2meta(envi); // Write metadata file meta_write(meta, meta_name); // Clean and report meta_free(meta); asfPrintStatus(" Converted ENVI header (%s) to metadata file (%s)\n\n", envi_name, meta_name); return 0; }
int isGeocoded(const char *dataFile) { char enviName[1024]; envi_header *envi; int ret = FALSE; sprintf(enviName, "%s.hdr", dataFile); envi = read_envi(enviName); if (strcmp_case(envi->projection, "not map projected") != 0) ret = TRUE; FREE(envi); return ret; }