Elaboradar 0.1
Caricamento in corso...
Ricerca in corso...
Nessun risultato
Q_components.cpp
1
2/*
3 omstart Q_components.c
4 idx libreria componenti qualita'
5 contiene funzioni di qualita' relative a ciascun fattore di errore
6 rispetto a calcolaqual.c sostituisco il file bb_par.h con qual_par.h.
7
8 q= 1.-(1.-qd)*(1.-qc)
9
10 qd= qualita dato
11 qc=qualita' correzione
12
13 se errore non corretto qc=0
14
15 omend
16*/
17
18#include <Q_components.h>
20#include <stdlib.h>
21#include <math.h> //file di sistema definisce costanti matematiche e richiama funzioni mat
22#include <qual_par.h> //file creato da me, parametri qualita'
23
24
25/*--------------------------------------*/
26 /* funzione qualita' da BB */
27/*--------------------------------------*/
28/*
29 omstart qBB
30 idx funzione qualita' relativa a beam blocking
31
32 qd=1.-(pow((float)(bb)/(float)(BBMAX),1/1.5))
33 qc=fcBB*fcDt*fcDr*fcErrpt
34
35 float qd; qual. dato non corretto
36 float qc; qual. correzione
37 float fcBB; comp. qual. corr. da BB
38 float fcDt; comp. qual. corr. da distanza temporale radiosondaggio
39 float fcDr; comp. qual. corr. da distanza spaziale radiosondaggio
40 float fcErrpt; comp. qual. corr. da errore puntamento antenna
41 omend
42*/
43
44 float qBB(unsigned char bbc,float dr,float dt)
45
46 //unsigned char bbc;
47 //float dr,dt; /* distanza spaziale radiosondaggio*/
48
49{
50
51float qd; /* qual. dato non corretto*/
52float qc; /* qual. correzione*/
53float fcBB; /* comp. qual. corr. da BB*/
54float fcDt; /* comp. qual. corr. da distanza temporale radiosondaggio */
55float fcDr; /* comp. qual. corr. da distanza spaziale radiosondaggio */
56float fcErrpt; /* comp. qual. corr. da errore puntamento antenna*/
57
58 if (bbc > BBMAX) bbc=BBMAX;
59 qd=1.-(pow((float)(bbc)/(float)(BBMAX),1/1.5));
60
61 fcBB=1.-(pow((float)(bbc)/(float)(BBMAX),1/1.5));
62 if (dt > DTMAX) dt=DTMAX;
63 fcDt=exp(-(double)(dt)/DTLIM);
64 fcDr=exp(-(double)(dr)/DRLIM);
65 fcErrpt=1.-pow(ERRPT,1/1.5);
66
67 qc=fcBB*fcDt*fcDr*fcErrpt;
68
69 return (1.-(1.-qd)*(1.-qc));
70 // return (qd); // caso non corretto;
71}
72
73/*--------------------------------------*/
74 /* funzione qualita' da Clutter */
75/*--------------------------------------*/
76
77/*
78 omstart qCl
79 idx funzione qualita' relativa a clutter
80 funzione qualita' relativa a clutter
81 dipende dal valore di ritorno del controllo anaprop
82
83 0 = dato ok qCl=1
84 1 = anaprop qCl=0.5
85 2= no data qCl=0
86 3= no control qCl=0.8
87 omend
88*/
89
90float qCl( unsigned char clc)
91{
92 using namespace radarelab::algo;
93 switch(clc)
94 {
95 case ANAP_OK:
96 return (1.); // ok
97 case ANAP_YES:
98 return (0.5); // anaprop
99 case ANAP_NODAT:
100 return (0.); // no data
101 case ANAP_NOCONTROL:
102 return (0.8); // no control
103 }
104
105 }
106/*--------------------------------------*/
107 /* funzione qualita' da Distanza (per ora ricavata da Koistinen e Puhakka con parametri Robby) */
108/*--------------------------------------*/
109/*
110 omstart qDist
111 idx funzione qualita' relativa a distanza
112 qd=(exp(-(float)(BETA*dr/1000.)))
113 omend
114*/
115
116 float qDist( float dr)
117 // float dr;
118
119{
120
121 return (exp(-(float)(BETA*dr/1000.)));
122
123}
124
125/*--------------------------------------*/
126 /* funzione qualita' da errore volumetrico in anaprop */
127/*--------------------------------------*/
128/*
129 omstart qVol
130 idx funzione qualita' da errore volumetrico
131 funzione qualita' da errore volumetrico, approcio geometrico-ottico
132 qd=1.-sqrt(pow((1.-pow(dh/dhst,1/1.5)),2.))
133 omend
134*/
135
136float qVol( float dh, float dhst)
137
138// float dh,dhst;
139
140{
141
142
143
144 return (1.-sqrt(pow((1.-pow(dh/dhst,1/1.5)),2.)));
145
146}
147
148/*--------------------------------------*/
149 /* funzione qualita' da attenuazione */
150/*--------------------------------------*/
151/*
152 omstart qAtt
153 idx funzione qualita' da attenuazione
154 funzione qualita' da attenuazione
155 qd=pow(10,-PIA/15.)
156 omend
157*/
158
159 float qAtt(float PIA)
160
161 //float PIA;
162
163{
164
165 return (pow(10,-PIA/15.));
166
167}
168/*--------------------------------------*/
169 /* funzione qualita' da errore vpr*/
170/*--------------------------------------*/
171/*
172 omstart qVpr
173 idx funzione qualita' da errore Vpr
174 funzione qualita' da errore Vpr
175
176 qd=pow(10.,-(abs(dZ)+sdevZ)/15.0)
177 qc= 1.-pow(10.,-(abs(dZ)-2.0*sdevZ));
178 if (qc < 0) qc=0.0;
179
180 float dZ correzione su Z
181 float sdevZ deviazione standard della correzione su Z
182 omend
183*/
184
185
186/*
187 * @brief funzione componente qualita' da VPR
188 * @param dZ correzione
189 * @param stdev standard deviation della correzione
190*/
191 float qVpr(float dZ,float sdevZ)
192
193 //float dZ,sdevZ;
194
195{
196 float qd,qc,eps;
197 eps=0.001;
198 qd= pow(10.,-(abs(dZ)+sdevZ)/15.0) ;
199 if (abs(dZ) < eps) qd=1.0;
200
201 qc= 1.-pow(10.,-(abs(dZ)-2.0*sdevZ));
202 if (qc < 0) qc=0.0;
203
204 return (1.- (1.-qd)*(1.-qc));
205}
206
float qCl(unsigned char clc)
funzione componente qualita' clutter
float qVol(float dh, float dhst)
funzione componente qualita' focalizzazione fascio
float qBB(unsigned char bbc, float dr, float dt)
funzione componente qualita' beam blocking
float qAtt(float PIA)
funzione componente qualita' da path integrated attenuation
float qDist(float dr)
funzione componente qualita' distanza
funzioni componenti di qualita' radar semplici