Elaboradar  0.1
 Tutto Classi Namespace File Funzioni Variabili Tipi enumerati (enum) Gruppi
int elaboradar::CalcoloVPR::combina_profili ( const radarelab::algo::InstantaneousVPR &  inst_vpr)

funzione che combina il profilo verticale corrente con quello precedente tramite il metodo di Germann

oltre a lanciare il calcolo del profilo istantaneo provvede alla combinazione del profilo calcolato con il precedente calcolato entro un limite massimo di distanza temporale pari a 10 quarti d'ora. restituisce un codice integer pari a 0 se ok 1 se fallisce

Restituisce
0 se combinazione ok 1 se fallisce

Definizione alla linea 766 del file cum_bac.cpp.

Referenziato da esegui_tutto().

767 {
768  LOG_CATEGORY("radar.vpr");
769 
770  LOG_DEBUG (" modalita %d", MOD_VPR);
771  VPR vpr0;
772  bool combinante; // combinante: variabile che contiene presenza vpr alternativo
773  if (MOD_VPR == 0)
774  {
775  /* MOD_VPR=0: VPR combinato */
776  combinante = cum_bac.assets.find_vpr0(cum_bac.dbz, vpr0, gap);
777 
778  for (unsigned i=0; i<vpr0.size(); i++)
779  LOG_DEBUG (" Profilo vecchio - livello %2d valore %6.2f",i,vpr0.val[i]);
780  //----a fine calcolo sul sito in esame stampo il valore del gap
781  LOG_INFO("gap %li",gap);
782  } else {
783  /* MOD_VPR=1: VPR istantaneo */
784  combinante = false;
785  }
786 
787  if (combinante)
788  {
789  if (inst_vpr.success)
790  {
791  vpr = combine_profiles(vpr0, inst_vpr.vpr, inst_vpr.cv, inst_vpr.ct);
792  } else {
793  // se il calcolo dell'istantaneo non è andato bene , ricopio l'altro vpr e la sua area
794  vpr = vpr0;
795  }
796  } else {
797  if (inst_vpr.success)
798  {
799  // se il calcolo dell'istantaneo è andato bene ricopio il profilo
800  vpr = inst_vpr.vpr;
801  } else {
802  //-----se è andata male la ricerca dell'altro e anche il calcolo dell'istantaneo esco
803  return 1;
804  }
805  }
806 
807  //------------- trovo livello minimo -------
808  Livmin livmin(vpr);
809  LOG_INFO(" livmin %i", livmin.livmin);
810 
811  if (livmin.idx >= vpr.size() - 1 || !livmin.found)
812  return (1);
813 
814  this->livmin = livmin.livmin;
815 
816 
817  //-----scrivo il profilo e la sua area-----
819  for (unsigned i=0; i<vpr.size(); i++) LOG_DEBUG (" Profilo nuovo - livello %2d valore %6.2f",i,vpr.val[i]);
820 
821  return(0);
822 }
Assets assets
others
Definition: cum_bac.h:88
radarelab::algo::DBZ dbz
????
Definition: cum_bac.h:107
void write_vpr0(const radarelab::algo::VPR &vpr)
Write in $VPR0_FILE the vpr calculated.
Definition: assets.cpp:435
bool find_vpr0(const radarelab::algo::DBZ &dbz, radarelab::algo::VPR &vpr0, long int &gap)
Read the gap and the vpr0, and if vpr0 is not found, look it up among the archived VPRs...
Definition: assets.cpp:389
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
radarelab::algo::VPR vpr
Informa se il pixel è convettivo.
Definition: cum_bac.h:233
int livmin
quota livello minimo calcolato
Definition: cum_bac.h:240