const action_t *agent_start(const observation_t *this_observation) { zeroify(); return this_action; }
const action_t *agent_step(double reward, const observation_t *this_observation) { zeroify(); return this_action; }
int asf_phase_unwrap(char *algorithm, char *interferogram, char *metaFile, char *demFile, char *baseline, double filter_strength, int flattening, char *mask, char *unwrapped_phase) { int ii; char tmp[255]; char **inFiles = (char **) MALLOC(sizeof(char *)*2); for (ii=0; ii<2; ii++) inFiles[ii] = (char *) MALLOC(sizeof(char)*50); // Simulated phase image from DEM asfPrintStatus("\n Simulating a phase image from DEM ...\n\n"); check_return(dem2phase(demFile, baseline, "dem_phase.img"), "creating simulated phase (dem2phase)"); // Deramping and multilooking interferogram asfPrintStatus(" Deramping interferogram ...\n\n"); check_return(deramp(interferogram, baseline, "igramd", 0), "deramping interferogram (deramp)"); asfPrintStatus("\n Multilooking the interferogram ...\n\n"); check_return(multilook("igramd", "ml", "a_cpx.meta", NULL), "multilooking interferogram (multilook)"); // Remove known topographic phase asfPrintStatus("\n Removing known topographic phase ...\n"); if (flattening == 1) { sprintf(inFiles[0], "ml_phase.img"); sprintf(inFiles[1], "dem_phase.img"); check_return(raster_calc("ml_dem_phase.img", "\'(a-b)%6.2831853-3.14159265\' ", 2, inFiles), "subtracting terrain induced phase (raster_calc)"); } // Get rolling on the phase unwrapping if (strncmp(algorithm, "escher", 6)==0) { if (flattening == 1) sprintf(tmp, "ml_dem_phase.img"); else sprintf(tmp, "ml_phase.img"); if (filter_strength < 0.0 || filter_strength > 3.0) { asfPrintWarning("phase filter value out of range - set to value " "of 1.6\n"); filter_strength = 1.6; } if (filter_strength > 0.0) { asfPrintStatus("\n Filtering the phase ...\n\n"); check_return(phase_filter(tmp, filter_strength, "filtered_phase"), "phase filtering (phase_filter)"); sprintf(tmp, "filtered_phase"); } if (strcmp(tmp, "ml_phase.img") != 0) { asfPrintStatus("\n Cleaning up filtering result ...\n"); check_return(zeroify(tmp, "ml_phase.img", "escher_in_phase.img"), "phase value cosmetics (zeroify)"); sprintf(tmp, "escher_in_phase.img"); } if (flattening == 1) { asfPrintStatus(" Performing phase unwrapping ...\n"); check_return(escher(tmp,"unwrap_dem"), "phase unwrapping (escher)"); asfPrintStatus(" Adding known topographic phase again ...\n"); sprintf(inFiles[0], "unwrap_dem.img"); sprintf(inFiles[1], "dem_phase.img"); check_return(raster_calc("unwrap_phase.img", "\'(a+b)*(a/a)*(b/b)\' ", 2, inFiles), "adding terrain induced phase back (raster_calc)"); } else check_return(escher(tmp,"unwrap"), "phase unwrapping (escher)"); asfPrintStatus(" Reramping unwrapped phase ...\n"); check_return(deramp("unwrap", baseline, "unwrap_nod", 1), "reramping unwrapped phase (deramp)"); meta_parameters *m2 = meta_read("unwrap_phase.meta"); m2->general->data_type = BYTE; meta_write(m2, "unwrap_dem_mask.meta"); meta_free(m2); /* char inFile[256]; char outFile[256]; strcpy(inFile, "unwrap_dem_mask"); strcpy(outFile, "unwrap_mask"); asfPrintStatus("Writing unwrapping mask to file ...\n"); check_return(asf_export_with_lut(TIF, TRUNCATE, "unwrapping_mask.lut", inFile, outFile), "colorized phase unwrapping mask (asf_export)"); */ } else if (strncmp(algorithm, "snaphu", 6)==0) { asfPrintError("function still needs to be connected again\n"); /* sprintf(cmd, "make_snaphu_conf %s.phase unwrap.phase", interferogram); asfSystem(cmd); if (cfg->unwrap->tiles_azimuth == 0 || cfg->unwrap->tiles_range == 0) { meta = meta_init("a.meta"); meta_get_latLon(meta, cfg->coreg->master_offset, 1, 0, &lat1, &lon1); meta_get_latLon(meta, cfg->coreg->master_offset, 1, 0, &lat2, &lon1); cfg->unwrap->tiles_azimuth = (int) (fabs(lat1-lat2)*cfg->unwrap->tiles_per_degree); cfg->unwrap->tiles_range = (int) (fabs(cfg->unwrap->tiles_per_degree*0.8)); } if (cfg->unwrap->flattening==1) check_return(snaphu(cfg->unwrap->algorithm, "ml_phase.img", "ml_amp.img", cfg->coreg->master_power, cfg->coreg->slave_power, "snaphu.conf", "unwrap_phase.img", cfg->unwrap->tiles_azimuth, cfg->unwrap->tiles_range, cfg->unwrap->overlap_azimuth, cfg->unwrap->overlap_range, cfg->unwrap->procs, 1), "phase unwrapping (snaphu)"); else check_return(snaphu(cfg->unwrap->algorithm, "ml_phase.img", "ml_amp.img", cfg->coreg->master_power, cfg->coreg->slave_power, "snaphu.conf", "unwrap_phase.img", cfg->unwrap->tiles_azimuth, cfg->unwrap->tiles_range, cfg->unwrap->overlap_azimuth, cfg->unwrap->overlap_range, cfg->unwrap->procs, 0), "phase unwrapping (snaphu)"); link("ml_phase.meta", "unwrap_phase.meta"); */ } for (ii=0; ii<2; ii++) FREE(inFiles[ii]); FREE(inFiles); return(0); }