Beispiel #1
0
/*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}
* 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; }
}
Beispiel #2
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;
  }
Beispiel #3
0
/*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}
* Name:
* Desc:
{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{**/
void soiltemp_getdepths ( REAL rr_zi[])
{
 Copy_Array (rr_zi,rr_z);
}
Beispiel #4
0
/*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}
* Name:
* Desc:
{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{**/
void soiltemp_gettemps ( REAL rr_ti[])
{
   Copy_Array (rr_ti,rr_tn);
}
Beispiel #5
0
/*{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}
* Name:
* Desc:
{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{**/
void soiltemp_getwater ( REAL rr_wi[])
{
   Copy_Array (rr_wi,rr_wn);
}
Beispiel #6
0
 /*
  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);
 }