Elaboradar  0.1
 Tutto Classi Namespace File Funzioni Variabili Tipi enumerati (enum) Gruppi
void classifier::HCA_Park_2009 ( )

Compute Echo Classes Park et al. (2009) HCA algorithm.

Definizione alla linea 539 del file classifier.cpp.

Referenzia class_designation(), melting_layer_classification(), radarelab::volume::Scans< T >::scan(), vol_Ai, vol_grad_phi_phi, vol_grad_phi_theta, vol_grad_z_phi, vol_grad_z_theta, vol_grad_zdr_phi, vol_grad_zdr_theta, vol_lkdp_2km, vol_lkdp_6km, vol_phidp, vol_rhohv, vol_rhohv_2km, vol_sdphidp, vol_sdz, vol_snr, vol_vrad, vol_z, vol_z_1km, vol_zdr, e vol_zdr_2km.

540 {
541  vector< vector< HCA_Park > > SCAN;
542  vector< HCA_Park > BEAM;
543  printf("inizio HCA\n");
544  vol_Ai.resize(vol_z.size());
545  double Z,Zdr,rhohv,lkdp,sdz,sdphidp,vrad;
546  double phidp,snr,gradphitheta,gradphiphi,gradZtheta,gradZphi,gradZdrtheta,gradZdrphi;
547  for(unsigned el=0;el<vol_z.size();el++)
548  {
549  cout<<"\tHCA el "<<el<<endl;
550  SCAN.resize(vol_z.scan(el).beam_count);
551  for(unsigned az=0;az<vol_z.scan(el).beam_count;az++)
552  {
553  BEAM.resize(vol_z.scan(el).beam_size);
554  for(unsigned rg=0;rg<vol_z.scan(el).beam_size;rg++)
555  {
556  Z=vol_z_1km.scan(el).get(az,rg);
557  Zdr=vol_zdr_2km.scan(el).get(az,rg);
558  rhohv=vol_rhohv_2km.scan(el).get(az,rg);
559  lkdp=Z>40?vol_lkdp_2km[el].get(az,rg):vol_lkdp_6km[el].get(az,rg);
560  sdz=vol_sdz.scan(el).get(az,rg);
561  sdphidp=vol_sdphidp.scan(el).get(az,rg);
562  vrad=vol_vrad.scan(el).get(az,rg);
563  phidp=vol_phidp[el](az,rg);
564  snr=vol_snr[el](az,rg);
565  gradphitheta=vol_grad_phi_theta[el](az,rg);
566  gradphiphi=vol_grad_phi_phi[el](az,rg);
567  gradZtheta=vol_grad_z_theta[el](az,rg);
568  gradZphi=vol_grad_z_phi[el](az,rg);
569  gradZdrtheta=vol_grad_zdr_theta[el](az,rg);
570  gradZdrphi=vol_grad_zdr_phi[el](az,rg);
571 
572  HCA_Park hca(Z,Zdr,rhohv,lkdp,sdz,sdphidp,vrad,phidp,snr,gradphitheta,gradphiphi,gradZtheta,gradZphi,gradZdrtheta,gradZdrphi);
573  BEAM[rg]=hca;
574  }
575  SCAN[az]=BEAM;
576  }
577  vol_Ai[el]=SCAN;
578  }
579  // Dopo aver calcolato i valori di aggregazione cerco il melting layer
581  cout<<"applico ML criteria ad HCA"<<endl;
583  class_designation(1,1);
584 /* unsigned elev=1;
585  unsigned azim=140;
586  cout<<"GC\tBS\tDS\tWS\tCR\tGR\tBD\tRA\tHR\tRH"<<endl;
587  for(unsigned rg=0;rg<vol_Ai[elev][azim].size();rg++)
588  {
589  cout.precision(5);
590  cout<<fixed<<vol_Ai[elev][azim][rg].Ai[GC_AP]<<"\t"<<vol_Ai[elev][azim][rg].Ai[BS]<<"\t"<<
591  vol_Ai[elev][azim][rg].Ai[DS]<<"\t"<<vol_Ai[elev][azim][rg].Ai[WS]<<"\t"<<
592  vol_Ai[elev][azim][rg].Ai[CR]<<"\t"<<vol_Ai[elev][azim][rg].Ai[GR]<<"\t"<<
593  vol_Ai[elev][azim][rg].Ai[BD]<<"\t"<<vol_Ai[elev][azim][rg].Ai[RA]<<"\t"<<
594  vol_Ai[elev][azim][rg].Ai[HR]<<"\t"<<vol_Ai[elev][azim][rg].Ai[RH]<<"\t"<<
595  vol_hca[elev](azim,rg)<<endl;
596  }
597 */
598 }
Volume< double > vol_lkdp_6km
Definition: classifier.h:416
PolarScan< T > & scan(unsigned idx)
Access a polar scan.
Definition: volume.h:298
Volume< double > vol_phidp
Definition: classifier.h:380
Volume< double > vol_snr
Definition: classifier.h:388
MeltingLayer Melting Layer Detection Algorithm MLDA Giangrande et al. 2008.
Definition: classifier.h:316
void class_designation(unsigned win_rg=1, unsigned win_az=1)
Designate class echo Find the maximum of aggregation values.
Definition: classifier.cpp:440
Volume< double > vol_rhohv_2km
Definition: classifier.h:400
Volume< double > vol_sdphidp
Definition: classifier.h:424
Volume< double > vol_grad_phi_phi
Definition: classifier.h:444
Volume< double > vol_zdr_2km
Definition: classifier.h:396
void melting_layer_classification(MeltingLayer &ML)
Check consistency respect to Melting Layer height.
Definition: classifier.cpp:363
Volume< double > vol_grad_zdr_theta
Definition: classifier.h:440
Volume< double > vol_grad_z_phi
Definition: classifier.h:428
Volume< double > vol_sdz
Definition: classifier.h:420
std::vector< std::vector< std::vector< HCA_Park > > > vol_Ai
Definition: classifier.h:360
Volume< double > vol_grad_zdr_phi
Definition: classifier.h:436
Volume< double > vol_grad_phi_theta
Definition: classifier.h:448
Volume< double > vol_zdr
Definition: classifier.h:372
Volume< double > vol_z_1km
Definition: classifier.h:392
Volume< double > vol_lkdp_2km
Definition: classifier.h:412
Volume< double > vol_grad_z_theta
Definition: classifier.h:432
Volume< double > vol_vrad
Definition: classifier.h:384
Volume< double > vol_rhohv
Definition: classifier.h:376