Elaboradar 0.1
|
◆ attenuation()
funzione che calcola l'attenuazione totale Ricevuto in ingresso il dato di Z in byte e l'attenuazione complessiva sul raggio fino al punto in considerazione, calcola l'attenuazione totale ingresso:dbz in quel punto e attenuazione fin lì Doviak,Zrnic,1984 for rain as reported in cost 717 final document
Definizione alla linea 51 del file dbz.cpp. 52{
53 double Zhh,att_rate,R;/* PIA diventa att_tot devo decidere infatti se PIA sarà 3d percio' temp. uso nomi diversi*/
54 double att_tot;
55
56 //---ricevo in ingresso il dato e l'attenuazione fino quel punto
57 //---la formula recita che l'attenuazione è pari una funzione di Z reale (quindi corretta dell'attenuazione precedente). ovviamente devo avere un segnale per correggere.
58 //--------- CALCOL
59 att_tot=PIA;
60 Zhh= (BYTEtoZ(DBZbyte));
61 if (10*log10(Zhh) > THRES_ATT )
62 {
63 Zhh=pow(10., (log10(Zhh)+ 0.1*att_tot));
64 R=pow((Zhh/aMP),(1.0/bMP));
65 att_rate=0.0018*pow(R,1.05);
66 // TODO: to compute scan by scan?
67 att_tot=att_tot+2.*att_rate*0.001 * base_cell_size;
69 }
70 return att_tot;
71}
static constexpr double BYTEtoDB(unsigned char DBZbyte, double gain=80./255., double offset=-20.) funzione che converte Z unsigned char in DBZ Definition dbz.h:82 Referenzia base_cell_size, BYTEtoDB(), e BYTEtoZ(). |