Elaboradar  0.1
 Tutto Classi Namespace File Funzioni Variabili Tipi enumerati (enum) Gruppi
void elaboradar::CalcoloVPR::classifica_rain ( )

funzione che classifica la precipitazione se stratiforme o convettiva

esegue anche il ricampionamento cilindrico al suo interno

Definizione alla linea 667 del file cum_bac.cpp.

Referenzia elaboradar::CUM_BAC::cil, e radarelab::CylindricalVolume::slices.

Referenziato da elaboradar::CUM_BAC::vpr_class().

668 {
669  LOG_CATEGORY("radar.class");
670  int hmax=-9999;
671 
672  /* ;---------------------------------- */
673  /* ; FASE 0 : */
674  /* ;---------------------------------- */
675  // DEFINISCO QUOTE DELLA BASE E DEL TOP DELLA BRIGHT BAND USANDO IL DATO quota del picco DEL PRECEDENTE RUN O, SE NON PRESENTE LA QUOTA DELLO ZERO DA MODELLO
676 
677  // Lettura quota massimo da VPR calcolo base e top bright band
678  LOG_INFO("data= %s",cum_bac.date);
679  // calcolo il gap
681  //-- se gap < memory leggo hmax da VPR
682  if (gap<=MEMORY){
683  hmax = cum_bac.assets.read_vpr_hmax();
684  //---suppongo una semiampiezza massima della bright band di 600 m e definisco htopbb e hbasebb come hmassimo +600 m (che da clima ci sta) e hmassimo -600 m
685  }
686 
687  if (hmax >= 0)
688  {
689  hbbb=(hmax-600.)/1000.;
690  htbb=(hmax+600.)/1000.;
691  } else {
692  //-- se gap > memory o se non ho trovato il file
693  // Lettura 0 termico da modello, e calcolo base e top bright band
694  LOG_INFO("leggo 0termico per class da file %s",getenv("FILE_ZERO_TERMICO"));
695  // leggo informazioni di temperatura da modello*/
696  float zeroterm;//zerotermico
697  if (cum_bac.assets.read_0term(zeroterm))
698  {
699  //-- considerato che lo shift medio tra il picco e lo zero è tra 200 e 300 m, che il modello può avere un errore, definisco cautelativamente htbb come quota zero + 400 m e hbbb come quota zero -700 m .
700  htbb=zeroterm/1000. + 0.4; // se non ho trovato il vpr allora uso un range più ristretto, potrebbe essere caso convettivo
701  hbbb=zeroterm/1000. - 1.0;
702  } else {
703  LOG_ERROR("non ho trovato il file dello zero termico");
704  LOG_INFO("attenzione, non ho trovat zero termico ne da vpr ne da radiosondaggio");
705  htbb=0.; // discutibile così faccio tutto con VIZ
706  hbbb=0.;
707  }
708  }
709 
710  // se hbasebb è <0 metto 0
711  if (hbbb<0.) hbbb=0.;
712 
713  LOG_INFO("calcolati livelli sopra e sotto bright band hbbb=%f htbb=%f",hbbb,htbb);
714 
715  const CylindricalVolume& cil = cum_bac.cil;
716 
717  // ricampionamento del volume in coordinate cilindriche
718  LOG_DEBUG ("Matrice cilindrica Naz %3d Nrange %4d Nheight %4d", cil.slices.size(), cil.x_size, cil.z_size);
719  //-------------------------------------------------------------------------------------------------------------------------
720  // faccio la classificazione col metodo Vertical Integrated Reflectivity
721  algo::CalcoloVIZ viz(cil, htbb, hbbb, t_ground);
722  viz.classifico_VIZ();
723 
724  //classificazione con STEINER
725  // if (hmax > 2000.) {// per evitare contaminazioni della bright band, si puo' tunare
726  // if (hbbb > 500.) {// per evitare contaminazioni della bright band, si puo' tunare
727 
728  algo::CalcoloSteiner steiner(cum_bac.volume, cum_bac.anaprop.elev_fin, cil.x_size);
729  steiner.calcolo_background();
730  steiner.classifico_STEINER();
731  // }
732  merge_metodi(steiner, viz);
733  return ;
734 }
Assets assets
others
Definition: cum_bac.h:88
double htbb
altezza top brightband
Definition: cum_bac.h:241
CUM_BAC & cum_bac
oggeto CUM_BAC di riferimento
Definition: cum_bac.h:227
long int gap
distanza temporale dall&#39;ultimo file vpr [numero acquisizioni intercorse dall&#39;ultimo vpr ...
Definition: cum_bac.h:229
float t_ground
2m temperature
Definition: cum_bac.h:230
char date[20]
Acquisition date.
Definition: cum_bac.h:117
double hbbb
altezza bottom brightband
Definition: cum_bac.h:242
radarelab::Volume< double > & volume
Polar volume of Reflectivity.
Definition: cum_bac.h:103
bool read_0term(float &zeroterm)
Read $FILE_ZERO_TERMICO.
Definition: assets.cpp:276
radarelab::CylindricalVolume cil
Volume resampled as a cylindrical volume.
Definition: cum_bac.h:105
int read_vpr_hmax()
Read in $VPR_HMAX the vpr peak&#39;s height.
Definition: assets.cpp:303
std::vector< Matrix2D< double > * > slices
Vertical rectangular x,z semi-slices of the cylinder, with one side resting on the cylinder axis...
Definition: cylindrical.h:26
Radar volume mapped to cylindrical coordinates.
Definition: cylindrical.h:16
void merge_metodi(const radarelab::algo::CalcoloSteiner &steiner, const radarelab::algo::CalcoloVIZ &viz)
fa il merge dei metodi
Definition: cum_bac.cpp:736
long int read_profile_gap() const
Read the gap between the time in $LAST_VPR and the current acquisition time.
Definition: assets.cpp:229
radarelab::algo::Anaprop< double > anaprop
Oggetto per correzione ANAPRO.
Definition: cum_bac.h:126