60 void OpenFile(
const wxString fname);
61 bool IsOk()
const {
return ok; }
62 long GetFileSize()
const {
return fileSize; }
63 wxString GetFileName()
const {
return fileName; }
65 int GetNumberOfGribRecords(
int dataType,
int levelType,
int levelValue);
66 int GetTotalNumberOfGribRecords();
68 GribRecord *GetGribRecord(
int dataType,
int levelType,
int levelValue,
72 GribRecord *GetFirstGribRecord(
int dataType,
int levelType,
int levelValue);
74 std::vector<GribRecord *> *getListOfGribRecords(
int dataType,
int levelType,
79 std::set<time_t> GetListDates() {
return SetAllDates; }
80 int GetNumberOfDates() {
return SetAllDates.size(); }
82 return !SetAllDates.empty() > 0 ? *SetAllDates.begin() : 0;
86 double GetTimeInterpolatedValue(
int dataType,
int levelType,
int levelValue,
87 double px,
double py, time_t date);
90 GribRecord *GetTimeInterpolatedGribRecord(
int dataType,
int levelType,
91 int levelValue, time_t date);
93 double ComputeDewPoint(
double lon,
double lat, time_t date);
95 int GetDewpointDataStatus(
int levelType,
int levelValue);
97 enum GribFileDataStatus { DATA_IN_FILE, NO_DATA_IN_FILE, COMPUTED_DATA };
122 void ComputeAccumulationRecords(
int dataType,
int levelType,
int levelValue);
124 std::map<std::string, std::vector<GribRecord *> *> *GetGribMap() {
125 return &mapGribRecords;
134 int dewpointDataStatus;
136 std::map<std::string, std::vector<GribRecord *> *> mapGribRecords;
140 void ReadGribFileContent();
141 void ReadAllGribRecords();
142 void CreateListDates();
143 double ComputeHoursBeetweenGribRecords();
144 std::set<time_t> SetAllDates;
146 void CleanVector(std::vector<GribRecord *> &ls);
147 void CleanAllVectors();
148 std::vector<GribRecord *> *GetFirstNonEmptyList();
151 double Get2GribsInterpolatedValueByDate(
double px,
double py, time_t date,
156 void FindGribsAroundDate(
int dataType,
int levelType,
int levelValue,