Elaboradar 0.1
Caricamento in corso...
Ricerca in corso...
Nessun risultato
cum_bac.h
Vai alla documentazione di questo file.
1#ifndef ARCHIVIATORE_CUM_BAC_CLASS_H
2#define ARCHIVIATORE_CUM_BAC_CLASS_H
3
11
12#include <radarelab/logging.h>
13#include <radarelab/volume.h>
14#include <radarelab/elev_fin.h>
16#include <radarelab/algo/dbz.h>
17#include <radarelab/algo/vpr.h>
19#include "assets.h"
20#include <stdexcept>
21#include <cmath>
22
23//algoritmo
24#include <radarelab/vpr_par.h>
25
26// TODO: prima o poi arriviamo a far senza di questi define
27#define NUM_AZ_X_PPI 400
28
29#define MAX_BIN 512
30
31#define RES_VERT_CIL 0.25
32#define RES_HOR_CIL 0.25
33
37namespace radarelab {
38
39namespace algo {
40struct CalcoloSteiner;
41struct CalcoloVIZ;
42}
43
44}
45
49namespace elaboradar {
50
51struct Site;
52
53struct CalcoloVPR;
54struct Cart;
55struct CartLowris;
56struct CartProducts;
57
62{
63public:
72 static void read_sp20_volume(radarelab::Volume<double>& volume, const Site& site, const char* nome_file, bool do_clean=false, bool do_medium=false);
81 static void read_odim_volume(radarelab::Volume<double>& volume, const Site& site, const char* nome_file, char* fuzzypath, bool do_clean=false, bool do_medium=false, bool set_undetect=false);
82
83 log4c_category_t* logging_category;
84
85 unsigned MyMAX_BIN;
86 const Config& cfg;
87 const Site& site;
89
90 bool do_medium;
91
93 bool do_quality = false;
94 bool do_beamblocking = false;
95 bool do_bloccorr = false;
96 bool do_declutter = false;
97 bool do_class = false;
98 bool do_zlr_media = false;
99 bool do_devel = false;
100 bool do_readStaticMap = false;
101 bool do_anaprop=false;
102
103 // add set_undetect
104 bool set_undetect=false;
105
109
112
114
115 /*-----------------------------------------------------------
116 Variabili globali
117 ------------------------------------------------------------*/
118
119 // Data del volume che abbiamo letto
120 char date[20];
121
122 //matrici first_level e first level da beam blocking e valore beam blocking
125
128
129 radarelab::algo::Anaprop<double> anaprop;
130
131 //variabili legate a propagazione e beam blocking, da prog_bb
133
134 // metrici qualita' come sopra
136 // top, come sopra
138
139 /* variabili tolte perchè non presenti nel codice cum_bac... controllare che non richiamino qualcosa nelle funzioni
140 struct tm *time_dbp;
141 T_time, T_data, T_ora..*/
142
151 CUM_BAC(radarelab::Volume<double>& volume, const Config& cfg, const Site& site, bool medium=false, unsigned max_bin=512);
152 ~CUM_BAC();
153
158 void want_vpr();
159
171 void declutter_anaprop();
172
174 void vpr_class();
175
182 void caratterizzo_volume();
183
188 void ScrivoStatistica(const radarelab::algo::anaprop::GridStats&);
189
195 void leggo_first_level();
196
205
208 void generate_maps(CartProducts& products);
209// added function to calculate beamblocking correction
210
220 time_t NormalizzoData(time_t time);
221};
222
227{
228 log4c_category_t* logging_category;
229
231 radarelab::algo::InstantaneousVPR inst_vpr;
232 long int gap;
233 float t_ground;
234 //matrici che dicono se pixel convettivo secondo VIZ, STEINER, riassuntiva mette +50
236 radarelab::algo::VPR vpr;
238 //elab classificazione: lista punti convettivi, iaz e ira, le dimensioni sono le massime possibili, in realtà i punti sono molti meno
239 //int lista_conv[NUM_AZ_X_PPI*MAX_BIN][2];
240
241 float resol[2];
243 int livmin = 0;
244 double htbb;
245 double hbbb;
250
251 unsigned MyMAX_BIN;
252
258 ~CalcoloVPR();
259
268 int analyse_VPR(float *vpr_liq,int *snow,float *hliq);
269
279 int profile_heating(bool has_inst_vpr);
280
288 int trovo_hvprmax(int *hmax);
289
295 int combina_profili(const radarelab::algo::InstantaneousVPR& inst_vpr);
296
301 void classifica_rain();
302
312 int corr_vpr();
313
320 void merge_metodi(const radarelab::algo::CalcoloSteiner& steiner, const radarelab::algo::CalcoloVIZ& viz);
321
324 int stampa_vpr();
325
329 void esegui_tutto();
330};
331
336{
337 const unsigned max_bin;
338
340 radarelab::Image<unsigned char> cart;
345 SingleCart(unsigned max_bin);
346
356 void creo_cart(const radarelab::Volume <double> & volume, unsigned int el_index);
357
364 void write_out(Assets& assets, const std::string tagname, const std::string format="PNG");
365};
366
367
368// Utility functions
369
381float comp_levels(float v0, float v1, float nodata, float peso);
382
383}
384
385#endif
Gestisce risorse usate dal programma.
Finds resources, like data files, used by the program.
Definition assets.h:38
bool do_declutter
use only static declutter map
Definition cum_bac.h:96
bool do_devel
Produce additional output.
Definition cum_bac.h:99
void declutter_anaprop()
funzione che elabora il dato radar rimuovendo anaprop e beam blocking
Definition cum_bac.cpp:389
bool do_readStaticMap
Read Static clutter map.
Definition cum_bac.h:100
radarelab::algo::Anaprop< double > anaprop
Oggetto per correzione ANAPRO.
Definition cum_bac.h:129
radarelab::PolarScan< float > dem
dem in coordinate azimut range
Definition cum_bac.h:132
CalcoloVPR * calcolo_vpr
Oggetto per calcolare e correggere con VPR.
Definition cum_bac.h:113
time_t NormalizzoData(time_t time)
funzione che a partire dal tempo in secondi arrotonda al NMIN-esimo minuto precedente o successivo
radarelab::Volume< unsigned char > qual
qualita volume polare
Definition cum_bac.h:135
void want_vpr()
Call this just after creating the CUM_BAC object, to signal that VPR should also be computed.
Definition cum_bac.cpp:147
radarelab::PolarScan< unsigned char > first_level_static
mappa statica
Definition cum_bac.h:124
void leggo_first_level()
funzione che legge la mappa statica e la mappa di elevazioni da beam blocking e le condensa in un uni...
Definition cum_bac.cpp:503
log4c_category_t * logging_category
logging category
Definition cum_bac.h:83
bool do_class
Convective-stratiform classification.
Definition cum_bac.h:97
radarelab::Volume< double > & volume
Set to Z undetect value the Zpixels classified as non-meteo echoes.
Definition cum_bac.h:106
radarelab::PolarScan< unsigned char > bb_first_level
mappa di elevazioni da beam blocking (input)
Definition cum_bac.h:126
static void read_sp20_volume(radarelab::Volume< double > &volume, const Site &site, const char *nome_file, bool do_clean=false, bool do_medium=false)
Read from SP20 data file.
Definition cum_bac.cpp:152
const Site & site
site information object
Definition cum_bac.h:87
radarelab::PolarScan< unsigned char > first_level
mappa dinamica complessiva
Definition cum_bac.h:123
char date[20]
Acquisition date.
Definition cum_bac.h:120
radarelab::Volume< double > SD_Z6
Polar volume of standard deviation of reflectivity over 6 km length.
Definition cum_bac.h:107
CUM_BAC(radarelab::Volume< double > &volume, const Config &cfg, const Site &site, bool medium=false, unsigned max_bin=512)
Constructor.
Definition cum_bac.cpp:119
bool do_anaprop
anaprop correction
Definition cum_bac.h:101
bool do_bloccorr
bloccorrection
Definition cum_bac.h:95
static void read_odim_volume(radarelab::Volume< double > &volume, const Site &site, const char *nome_file, char *fuzzypath, bool do_clean=false, bool do_medium=false, bool set_undetect=false)
Read from ODIM data file.
Definition cum_bac.cpp:190
void vpr_class()
Esegue tutta la catena vpr (e classificazione) se richiesta.
Definition cum_bac.cpp:1383
Assets assets
others
Definition cum_bac.h:88
bool do_medium
medium processing flag
Definition cum_bac.h:90
radarelab::algo::DBZ dbz
????
Definition cum_bac.h:110
bool do_quality
Feature set required for this run.
Definition cum_bac.h:93
radarelab::CylindricalVolume cil
Volume resampled as a cylindrical volume.
Definition cum_bac.h:108
const Config & cfg
Configuration object.
Definition cum_bac.h:86
radarelab::PolarScan< unsigned char > top
Echo top a ???? dBZ [hm].
Definition cum_bac.h:137
bool do_beamblocking
beamblocking corretion
Definition cum_bac.h:94
void ScrivoStatistica(const radarelab::algo::anaprop::GridStats &)
funzione scrittura matrici statistica
Definition cum_bac.cpp:570
radarelab::PolarScan< unsigned char > beam_blocking
mappa di beam blocking (input)
Definition cum_bac.h:127
bool do_zlr_media
Compute ZLR map using averaging.
Definition cum_bac.h:98
void caratterizzo_volume()
funzione che caratterizza i volumi polari tramite la qualita'
Definition cum_bac.cpp:636
unsigned MyMAX_BIN
maximum number of beam size
Definition cum_bac.h:85
void creo_matrice_conv()
funzioni di conversione cartesiana:associa a pixel matrice alta ris azimut e range,...
void conversione_convettiva()
Nei punti convettivi ricalcola la Z come MP classica, partendo dalla stima di R (convettiva)
Definition cum_bac.cpp:1375
Classe principale del programma.
Definition cum_bac.h:62
PolarScan - structure to describe a polarScan containing a matrix of data and conversion factors.
Definition volume.h:113
Homogeneous volume with a common beam count for all PolarScans.
Definition volume.h:431
Class to manage reflectivity functions (simply attenuation correction, conversion between Z,...
Definition dbz.h:23
float comp_levels(float v0, float v1, float nodata, float peso)
combina livelli
name space generale del programma
Definition assets.h:28
String functions.
Definition cart.cpp:4
void classifica_rain()
funzione che classifica la precipitazione se stratiforme o convettiva
Definition cum_bac.cpp:748
void esegui_tutto()
Metodo che lancia tutte le operazioni per il calcolo e la correzione del vpr.
Definition cum_bac.cpp:1538
int ier_stampa_vpr
flag d'errore su stampa profilo
Definition cum_bac.h:249
radarelab::PolarScan< unsigned char > neve
matrice az-range che memorizza punti di neve
Definition cum_bac.h:247
unsigned MyMAX_BIN
LUNGHEZZA MASSIMA.
Definition cum_bac.h:251
int heating
variabile di riscaldamento
Definition cum_bac.h:242
int ier_max
flag d'errore su calcolo quota max
Definition cum_bac.h:248
int corr_vpr()
correzione vpr
Definition cum_bac.cpp:975
int combina_profili(const radarelab::algo::InstantaneousVPR &inst_vpr)
funzione che combina il profilo verticale corrente con quello precedente tramite il metodo di Germann
Definition cum_bac.cpp:847
long int gap
distanza temporale dall'ultimo file vpr [numero acquisizioni intercorse dall'ultimo vpr ?...
Definition cum_bac.h:232
void merge_metodi(const radarelab::algo::CalcoloSteiner &steiner, const radarelab::algo::CalcoloVIZ &viz)
fa il merge dei metodi
Definition cum_bac.cpp:817
int stampa_vpr()
stampa profilo combinato
Definition cum_bac.cpp:935
int livmin
quota livello minimo calcolato
Definition cum_bac.h:243
radarelab::algo::VPR vpr
Informa se il pixel è convettivo.
Definition cum_bac.h:236
float resol[2]
array di parametri, fisso , RES_HOR_CIL E RES_VERT_CIL
Definition cum_bac.h:241
int analyse_VPR(float *vpr_liq, int *snow, float *hliq)
funzione che analizza il profilo
Definition cum_bac.cpp:1180
int hvprmax
quota picco vpr
Definition cum_bac.h:237
double hbbb
altezza bottom brightband
Definition cum_bac.h:245
int trovo_hvprmax(int *hmax)
trova il massimo del profilo
Definition cum_bac.cpp:1100
CUM_BAC & cum_bac
oggeto CUM_BAC di riferimento
Definition cum_bac.h:230
float t_ground
2m temperature
Definition cum_bac.h:233
int profile_heating(bool has_inst_vpr)
calcola riscaldamento in quarti d'ora
Definition cum_bac.cpp:905
double htbb
altezza top brightband
Definition cum_bac.h:244
CalcoloVPR(CUM_BAC &cum_bac)
Constructor.
Definition cum_bac.cpp:1512
radarelab::PolarScan< unsigned char > corr_polar
correzione vpr in byte 0-128 negativa 128-256 positiva, in coord az-ra
Definition cum_bac.h:246
Struttara per il calcolo del VPR.
Definition cum_bac.h:227
const unsigned max_bin
dimensione matrice
Definition cum_bac.h:337
radarelab::Image< unsigned char > cart
vol_pol interpolated in a cartesian map
Definition cum_bac.h:340
void write_out(Assets &assets, const std::string tagname, const std::string format="PNG")
Produce in output le immagini PNG dei campi in $DIR_DEBUG.
Definition cum_bac.cpp:1676
SingleCart(unsigned max_bin)
Constructor.
Definition cum_bac.cpp:1604
void creo_cart(const radarelab::Volume< double > &volume, unsigned int el_index)
conversione da polare a cartesiano alta risoluzione
Definition cum_bac.cpp:1610
Radar site information.
Definition site.h:24
Radar volume mapped to cylindrical coordinates.
Definition cylindrical.h:17
Definisce le principali strutture che contengono i dati.