/*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*} * Name: * Desc: * {*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{**/ void soiltemp_initprofile (REAL rr_wi[], REAL rr_ti[]) { int i; Copy_Array ( rr_w, rr_wi); Copy_Array ( rr_wn, rr_wi); Copy_Array ( rr_t, rr_ti); Copy_Array ( rr_tn, rr_ti); for ( i = 0; i <= e_mplus1; i++ ) { rr_p[i] = -exp ( 13.82 * ( 1 - rr_w[i] / r_xo ) ); rr_w[i] = watercontent ( rr_p[i], r_xo, &rr_dwdp[i]); rr_h[i] = humidity ( rr_p[i], rr_t[i], &rr_dhdp[i] ); rr_kev[i] = 0; rr_u[i] = 0; rr_enh[i] = 0; } }
Array * Filtering_Confidence (RasterizedImage & img, ParaSet & imgPara, Array * original, int filterRadii [], double threshold, Array * confidence) { Array * median = Copy_Array(original); // iterate through the list of radii and filter the image for (int i=0; i < sizeof(filterRadii)/sizeof(*filterRadii); i++) { Free_Array(median); median = LocalMedianFilter_Confidence(img, imgPara, original, filterRadii[i], threshold, confidence); Free_Array(original); original = Copy_Array(median); } #ifdef DEVELOP ShowArray(img, imgPara, "median.tif",median); #endif if (imgPara.verbose){ std::cout << "Planes filtered" << std::endl; } return median; }
/*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*} * Name: * Desc: {*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{**/ void soiltemp_getdepths ( REAL rr_zi[]) { Copy_Array (rr_zi,rr_z); }
/*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*} * Name: * Desc: {*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{**/ void soiltemp_gettemps ( REAL rr_ti[]) { Copy_Array (rr_ti,rr_tn); }
/*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*} * Name: * Desc: {*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{**/ void soiltemp_getwater ( REAL rr_wi[]) { Copy_Array (rr_wi,rr_wn); }
/* Method that presents the image arr with a grid overlap @param image: input image stack @param imgPara: input parameter @param name: name of the output file @param arr: image which should be plotted */ void ShowArray(RasterizedImage & img, ParaSet & imgPara, char * name, Array * arr) { Dimn_Type x, y, z; Array * a, * b; if (imgPara.grid == false){ Write_Image((char *) name, arr, DONT_PRESS); return; } // Conversion of the image arr into an RGB-Kind image if (arr->type != UINT8_TYPE){ b = Copy_Array(arr); Scale_Array_To_Range(b,ValU(0),ValU(255)); Convert_Array_Inplace(b,b->kind,UINT8_TYPE,8,0); } else { b = arr; } if (b->kind != RGB_KIND){ if (b == arr){ a = Convert_Array(b,RGB_KIND,b->type,b->scale,0); } else { a = Convert_Array_Inplace(b,RGB_KIND,b->type,b->scale,0); } } else { a = b; } // Plotting of the image grid if (a->ndims == 4) for (z = 0; z < img.GetDepth(); z++){ for (y = 0; y < img.GetGridY(); y++) { if (y % 50 == 0 && y != 0){ Draw_Line(a,&YELLOW,Coord3(z,y*imgPara.radius,0),Coord3(z,y*imgPara.radius,img.GetGridX()*imgPara.radius-1)); } else if (y % 10 == 0 && y != 0){ Draw_Line(a,&PURPLE,Coord3(z,y*imgPara.radius,0),Coord3(z,y*imgPara.radius,img.GetGridX()*imgPara.radius-1)); } else { Draw_Line(a,&CYAN,Coord3(z,y*imgPara.radius,0),Coord3(z,y*imgPara.radius,img.GetGridX()*imgPara.radius-1)); } for (x = 0; x < img.GetGridX(); x++){ if (x % 50 == 0 && x != 0){ Draw_Line(a,&YELLOW,Coord3(z,0,x*imgPara.radius),Coord3(z,img.GetGridY()*imgPara.radius-1,x*imgPara.radius)); } else if (x % 10 == 0 && x != 0){ Draw_Line(a,&PURPLE,Coord3(z,0,x*imgPara.radius),Coord3(z,img.GetGridY()*imgPara.radius-1,x*imgPara.radius)); } else { Draw_Line(a,&CYAN,Coord3(z,0,x*imgPara.radius),Coord3(z,img.GetGridY()*imgPara.radius-1,x*imgPara.radius)); } } } } else{ for (y = 0; y < img.GetGridY(); y++){ if (y % 50 == 0 && y != 0){ Draw_Line(a,&YELLOW,Coord2(y*imgPara.radius,0),Coord2(y*imgPara.radius,img.GetGridX()*imgPara.radius-1)); } else if (y % 10 == 0 && y != 0){ Draw_Line(a,&PURPLE,Coord2(y*imgPara.radius,0),Coord2(y*imgPara.radius,img.GetGridX()*imgPara.radius-1)); } else{ Draw_Line(a,&CYAN,Coord2(y*imgPara.radius,0),Coord2(y*imgPara.radius,img.GetGridX()*imgPara.radius-1)); } for (x = 0; x < img.GetGridX(); x++){ if (x % 50 == 0 && x != 0){ Draw_Line(a,&YELLOW,Coord2(0,x*imgPara.radius),Coord2(img.GetGridY()*imgPara.radius-1,x*imgPara.radius)); } else if (x % 10 == 0 && x != 0){ Draw_Line(a,&PURPLE,Coord2(0,x*imgPara.radius),Coord2(img.GetGridY()*imgPara.radius-1,x*imgPara.radius)); } else{ Draw_Line(a,&CYAN,Coord2(0,x*imgPara.radius),Coord2(img.GetGridY()*imgPara.radius-1,x*imgPara.radius)); } } } } Write_Image(name, a, DONT_PRESS); if (arr != a) Free_Array(a); }