Elaboradar 0.1
Caricamento in corso...
Ricerca in corso...
Nessun risultato

◆ HCA_Park_2009()

void classifier::HCA_Park_2009 ( float Ht,
float Hb )

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

Definizione alla linea 545 del file classifier.cpp.

546{
547 vector< vector< HCA_Park > > SCAN;
548 vector< HCA_Park > BEAM;
549 printf("inizio HCA\n");
550 vol_Ai.resize(vol_z.size());
551 double Z,Zdr,rhohv,lkdp,sdz,sdphidp,vrad;
552 double phidp,snr,gradphitheta,gradphiphi,gradZtheta,gradZphi,gradZdrtheta,gradZdrphi;
553 for(unsigned el=0;el<vol_z.size();el++)
554 {
555 cout<<"\tHCA el "<<el<<endl;
556 SCAN.resize(vol_z.scan(el).beam_count);
557 for(unsigned az=0;az<vol_z.scan(el).beam_count;az++)
558 {
559 BEAM.resize(vol_z.scan(el).beam_size);
560 for(unsigned rg=0;rg<vol_z.scan(el).beam_size;rg++)
561 {
562 Z=vol_z_1km.scan(el).get(az,rg);
563 Zdr=vol_zdr_2km.scan(el).get(az,rg);
564 rhohv=vol_rhohv_2km.scan(el).get(az,rg);
565 lkdp=Z>40?vol_lkdp_2km[el].get(az,rg):vol_lkdp_6km[el].get(az,rg);
566 sdz=vol_sdz.scan(el).get(az,rg);
567 sdphidp=vol_sdphidp.scan(el).get(az,rg);
568 vrad=vol_vrad.scan(el).get(az,rg);
569 phidp=vol_phidp[el](az,rg);
570 snr=vol_snr[el](az,rg);
571 gradphitheta=vol_grad_phi_theta[el](az,rg);
572 gradphiphi=vol_grad_phi_phi[el](az,rg);
573 gradZtheta=vol_grad_z_theta[el](az,rg);
574 gradZphi=vol_grad_z_phi[el](az,rg);
575 gradZdrtheta=vol_grad_zdr_theta[el](az,rg);
576 gradZdrphi=vol_grad_zdr_phi[el](az,rg);
577
578 HCA_Park hca(Z,Zdr,rhohv,lkdp,sdz,sdphidp,vrad,phidp,snr,gradphitheta,gradphiphi,gradZtheta,gradZphi,gradZdrtheta,gradZdrphi);
579 BEAM[rg]=hca;
580 }
581 SCAN[az]=BEAM;
582 }
583 vol_Ai[el]=SCAN;
584 }
585 // Dopo aver calcolato i valori di aggregazione cerco il melting layer
586 MeltingLayer ML(vol_z,vol_zdr,vol_rhohv,vol_Ai);
587 cout<<"applico ML criteria ad HCA"<<endl;
590/* unsigned elev=1;
591 unsigned azim=140;
592 cout<<"GC\tBS\tDS\tWS\tCR\tGR\tBD\tRA\tHR\tRH"<<endl;
593 for(unsigned rg=0;rg<vol_Ai[elev][azim].size();rg++)
594 {
595 cout.precision(5);
596 cout<<fixed<<vol_Ai[elev][azim][rg].Ai[GC_AP]<<"\t"<<vol_Ai[elev][azim][rg].Ai[BS]<<"\t"<<
597 vol_Ai[elev][azim][rg].Ai[DS]<<"\t"<<vol_Ai[elev][azim][rg].Ai[WS]<<"\t"<<
598 vol_Ai[elev][azim][rg].Ai[CR]<<"\t"<<vol_Ai[elev][azim][rg].Ai[GR]<<"\t"<<
599 vol_Ai[elev][azim][rg].Ai[BD]<<"\t"<<vol_Ai[elev][azim][rg].Ai[RA]<<"\t"<<
600 vol_Ai[elev][azim][rg].Ai[HR]<<"\t"<<vol_Ai[elev][azim][rg].Ai[RH]<<"\t"<<
601 vol_hca[elev](azim,rg)<<endl;
602 }
603*/
604}
void class_designation(unsigned win_rg=1, unsigned win_az=1)
Designate class echo Find the maximum of aggregation values.
Volume< double > vol_lkdp_6km
Definition classifier.h:416
Volume< double > vol_zdr_2km
Definition classifier.h:396
Volume< double > vol_grad_z_phi
Definition classifier.h:428
Volume< double > vol_grad_z_theta
Definition classifier.h:432
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_lkdp_2km
Definition classifier.h:412
Volume< double > vol_grad_phi_phi
Definition classifier.h:444
Volume< double > vol_rhohv_2km
Definition classifier.h:400
Volume< double > vol_grad_zdr_theta
Definition classifier.h:440
Volume< double > vol_sdphidp
Definition classifier.h:424
Volume< double > vol_grad_phi_theta
Definition classifier.h:448
void melting_layer_classification(MeltingLayer &ML, float Ht, float Hb)
Check consistency respect to Melting Layer height.

Referenzia class_designation(), melting_layer_classification(), 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.