59 void openFile(
const wxString fname);
60 bool isOk() {
return ok; }
61 long getFileSize() {
return fileSize; }
62 wxString getFileName() {
return fileName; }
64 int getNumberOfGribRecords(
int dataType,
int levelType,
int levelValue);
65 int getTotalNumberOfGribRecords();
67 GribRecord *getGribRecord(
int dataType,
int levelType,
int levelValue,
71 GribRecord *getFirstGribRecord(
int dataType,
int levelType,
int levelValue);
73 std::vector<GribRecord *> *getListOfGribRecords(
int dataType,
int levelType,
78 std::set<time_t> getListDates() {
return setAllDates; }
79 int getNumberOfDates() {
return setAllDates.size(); }
81 return setAllDates.size() > 0 ? *setAllDates.begin() : 0;
85 double getTimeInterpolatedValue(
int dataType,
int levelType,
int levelValue,
86 double px,
double py, time_t date);
89 GribRecord *getTimeInterpolatedGribRecord(
int dataType,
int levelType,
90 int levelValue, time_t date);
92 double computeDewPoint(
double lon,
double lat, time_t date);
94 int getDewpointDataStatus(
int levelType,
int levelValue);
96 enum GribFileDataStatus { DATA_IN_FILE, NO_DATA_IN_FILE, COMPUTED_DATA };
121 void computeAccumulationRecords(
int dataType,
int levelType,
int levelValue);
123 std::map<std::string, std::vector<GribRecord *> *> *getGribMap() {
124 return &mapGribRecords;
133 int dewpointDataStatus;
135 std::map<std::string, std::vector<GribRecord *> *> mapGribRecords;
139 void readGribFileContent();
140 void readAllGribRecords();
141 void createListDates();
142 double computeHoursBeetweenGribRecords();
143 std::set<time_t> setAllDates;
145 void clean_vector(std::vector<GribRecord *> &ls);
146 void clean_all_vectors();
147 std::vector<GribRecord *> *getFirstNonEmptyList();
150 double get2GribsInterpolatedValueByDate(
double px,
double py, time_t date,
155 void findGribsAroundDate(
int dataType,
int levelType,
int levelValue,