Elaboradar 0.1
Caricamento in corso...
Ricerca in corso...
Nessun risultato
assets.h
Vai alla documentazione di questo file.
1
6#ifndef ARCHIVIATORE_ASSETS_H
7#define ARCHIVIATORE_ASSETS_H
8
9#include <string>
10#include <ctime>
11#include <cstdio>
12#include <radarelab/logging.h>
13#include <functional>
14#include <vector>
15#include <H5Cpp.h>
16#include <radarelab/RadarSite.h>
17
18namespace radarelab {
19template<typename T> struct Matrix2D;
20
21namespace algo {
22class DBZ;
23class VPR;
24}
25
26}
27
28namespace elaboradar {
29
30struct Config;
31
32struct Site;
33
37class Assets
38{
39 // Una volta che abbiamo spostato tutta la ricerca dei file di dati in
40 // questa classe, dovremmo avere un modo per sapere esattamente di cosa ha
41 // bisogno il programma, e per cambiarlo in caso cambino le esigenze
42 // operative.
43
44protected:
45 log4c_category_t* logging_category;
46 const Config& cfg;
47 const Site* conf_site;
48 time_t conf_acq_time;
49 int conf_year;
50 int conf_month;
51 int conf_day;
52 int conf_hour;
53 int conf_minute;
54 mutable H5::H5File* outfile_devel_data;
55
56public:
63 Assets(const Config& cfg);
64 ~Assets();
65
72 void configure(const Site& site, time_t acq_time);
73
80 void configure(const char* site, time_t acq_time);
81
89 bool save_acq_time(time_t acq_time=0);
90
101
109
117
125
131 double read_file_hray(std::function<void (unsigned el, unsigned bin, double value)> on_sample);
132
138 double read_file_hray_inf(std::function<void (unsigned el, unsigned bin, double value)> on_sample);
139
148 float read_t_ground() const;
149 //* @param[out] t_gr temperatura al suolo
150 //* @return ierr codice di uscita (0=ok 1=fallito)
151
158 long int read_profile_gap() const;
159 //** param[in] nomefile nome del file LAST_VPR dove c'e' la data cui si riferisce l'ultimo profilo prodotto in n0 di secondi a partire da istante di riferimento
160
167 int read_vpr_heating() const;
168
173 void write_vpr_heating(int value) const;
174
181 bool read_0term(float& zeroterm);
182
185 void write_last_vpr();
186
190 int read_vpr_hmax();
191
195 void write_vpr_hmax(int hvprmax);
196
203 bool read_vpr0(radarelab::algo::VPR& vpr0);
204
210 bool read_archived_vpr(const radarelab::algo::DBZ& dbz, time_t time, radarelab::algo::VPR& vpr);
211
215 bool find_vpr0(const radarelab::algo::DBZ& dbz, radarelab::algo::VPR& vpr0, long int& gap);
216
221 void write_vpr0(const radarelab::algo::VPR& vpr);
222
227
233 H5::H5File get_devel_data_output() const;
234
245 void write_image(const radarelab::Matrix2D<unsigned char>& image, const char* dir_env_var, const char* ext, const char* desc);
246
258 void write_subimage(const radarelab::Matrix2D<unsigned char>& image, unsigned image_side, const char* dir_env_var, const char* ext, const char* desc);
271 void write_subimage(const radarelab::Matrix2D<unsigned char>& image, unsigned image_side, std::string algos, const char* dir_env_var, const char* ext, const char* desc);
272
281 template<typename T>
282 void write_gdal_image(const radarelab::Matrix2D<T>& image, const char* dir_env_var, const char* name, const char* format);
283
286 std::string fname_from_acq_time() const;
287
288 time_t getAcqTime();
289 RadarSite getRadarSite();
290
291
292protected:
293
295 std::string fname_out_pp_bloc(const char* suffix) const;
296
298 template<typename T>
299 void load_raw(const std::string& fname, const char* desc, radarelab::Matrix2D<T>& matrix);
300
302 void load_ascii(const std::string& fname, const char* desc, radarelab::Matrix2D<float>& matrix);
303};
304
305}
306
307#endif
Radar Site description.
double read_file_hray_inf(std::function< void(unsigned el, unsigned bin, double value)> on_sample)
Read the hray file, calling a callback on each parsed value.
Definition assets.cpp:181
Assets(const Config &cfg)
Constructor.
Definition assets.cpp:22
void load_first_level_bb_bloc(radarelab::Matrix2D< unsigned char > &matrix)
Open the first level elevation BB bloc file.
Definition assets.cpp:135
std::string fname_from_acq_time() const
Build a basename (without extension) for a file given the current acquisition time.
Definition assets.cpp:531
void write_vpr0(const radarelab::algo::VPR &vpr)
Write in $VPR0_FILE the vpr calculated.
Definition assets.cpp:437
bool read_0term(float &zeroterm)
Read $FILE_ZERO_TERMICO.
Definition assets.cpp:278
void write_subimage(const radarelab::Matrix2D< unsigned char > &image, unsigned image_side, const char *dir_env_var, const char *ext, const char *desc)
Write an image in a raw file in ${dir_env_var}, with the acquisition date as file name and the given ...
Definition assets.cpp:569
bool save_acq_time(time_t acq_time=0)
Save acq_time in $LAST_FILE, comparing it with the previous value.
Definition assets.cpp:53
double read_file_hray(std::function< void(unsigned el, unsigned bin, double value)> on_sample)
Read the hray file, calling a callback on each parsed value.
Definition assets.cpp:173
void write_vpr_hmax(int hvprmax)
write in $VPR_HMAX the vpr peak's height.
Definition assets.cpp:322
void load_dem(radarelab::Matrix2D< float > &matrix)
Open the dem file.
Definition assets.cpp:115
H5::H5File get_devel_data_output() const
Return an open HDF5 File ( $DIR_QUALITY/devel-data.h5) to which we can write datasets used to debug r...
Definition assets.cpp:468
void load_raw(const std::string &fname, const char *desc, radarelab::Matrix2D< T > &matrix)
Load a Matrix2D, from packed row-major binary data.
Definition assets.cpp:482
void load_ascii(const std::string &fname, const char *desc, radarelab::Matrix2D< float > &matrix)
Load a Matrix2D, from space-separated column-major ascii floats.
Definition assets.cpp:515
bool read_archived_vpr(const radarelab::algo::DBZ &dbz, time_t time, radarelab::algo::VPR &vpr)
Try to read the archived VPR at time time.
Definition assets.cpp:347
bool read_vpr0(radarelab::algo::VPR &vpr0)
Read in $VPR0_FILE the last vpr available.
Definition assets.cpp:331
void write_image(const radarelab::Matrix2D< unsigned char > &image, const char *dir_env_var, const char *ext, const char *desc)
Write an image in a raw file in ${dir_env_var}, with the acquisition date as file name and the given ...
Definition assets.cpp:540
void configure(const Site &site, time_t acq_time)
Configure asset lookup with the given details.
Definition assets.cpp:41
float read_t_ground() const
fornisce temperatura al suolo, da lettura file esterno
Definition assets.cpp:201
void write_vpr_heating(int value) const
Write a new value to $VPR_HEATING (counter of consecutive vpr calculated, see scientific documentatio...
Definition assets.cpp:267
void write_gdal_image(const radarelab::Matrix2D< T > &image, const char *dir_env_var, const char *name, const char *format)
Write a graphic image with gdal.
Definition assets.cpp:635
long int read_profile_gap() const
Read the gap between the time in $LAST_VPR and the current acquisition time.
Definition assets.cpp:231
void write_dbz_coefficients(const radarelab::algo::DBZ &dbz)
Write in $OUTPUT_Z_LOWRIS_DIR/MP_coeff the MP coefficients.
Definition assets.cpp:452
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:391
void write_subimage(const radarelab::Matrix2D< unsigned char > &image, unsigned image_side, std::string algos, const char *dir_env_var, const char *ext, const char *desc)
Write an image in a raw file in ${dir_env_var}, with the acquisition date as file name and the given ...
void load_first_level(radarelab::Matrix2D< unsigned char > &matrix)
Open the first level file.
Definition assets.cpp:120
void load_first_level_bb_el(radarelab::Matrix2D< unsigned char > &matrix)
Open the first level elevation BB el file.
Definition assets.cpp:130
int read_vpr_heating() const
Read the value of $VPR_HEATING (counter of consecutive vpr calculated, see scientific documentation)
Definition assets.cpp:250
std::string fname_out_pp_bloc(const char *suffix) const
Compute the file name of a date/time based file in $DIR_OUT_PP_BLOC.
Definition assets.cpp:189
int read_vpr_hmax()
Read in $VPR_HMAX the vpr peak's height.
Definition assets.cpp:305
void write_last_vpr()
Write the acquisition time in $LAST_VPR file.
Definition assets.cpp:294
Finds resources, like data files, used by the program.
Definition assets.h:38
Class to manage reflectivity functions (simply attenuation correction, conversion between Z,...
Definition dbz.h:23
name space generale del programma
Definition assets.h:28
String functions.
Definition cart.cpp:4
Radar site information.
Definition site.h:24
Base for all matrices we use, since we rely on row-major data.
Definition matrix.h:37