2extern void findWindGrib (
double lat,
double lon,
double t,
double *u,
double *v,
double *gust,
double *w,
double *twd,
double *tws );
5extern void findCurrentGrib (
double lat,
double lon,
double t,
double *uCurr,
double *vCurr,
double *tcd,
double *tcs);
9extern bool checkGribToStr (
bool hasCurrentGrib,
char *buffer,
size_t maxLen);
10extern char *
gribToStrJson (
const char *fileName,
char *out,
size_t maxLen);
double findRainGrib(double lat, double lon, double t)
bool uvPresentGrib(const Zone *zone)
true if u and v (or uCurr, vCurr) are in zone
void findCurrentGrib(double lat, double lon, double t, double *uCurr, double *vCurr, double *tcd, double *tcs)
use findflow to get current
char * gribToStr(const Zone *zone, char *str, size_t maxLen)
write Grib information in string
void printGrib(const Zone *zone, const FlowP *gribData)
print Grib u v ... for all lat lon time information
bool isPresentGrib(const Zone *zone, const char *name)
true if shortname in zone
bool checkGribToStr(bool hasCurrentGrib, char *buffer, size_t maxLen)
check Grib information and write report in the buffer return false if something wrong
char * gribToStrJson(const char *fileName, char *out, size_t maxLen)
write grib meta information in string
double zoneTimeDiff(const Zone *zone1, const Zone *zone0)
return difference in hours between two zones (current zone and Wind zone)
bool checkGribInfoToStr(int type, Zone *zone, char *buffer, size_t maxLen)
check Grib information and write (add) report in the buffer return false if something wrong
float * buildUVGWarray(const Zone *zone, const char *initialOfNames, const FlowP *gribData, size_t *outNValues)
return array of outNvalues floats n = nTimeStamp * nbLat * nbLon * nShortNames values = [u1,...
void findWindGrib(double lat, double lon, double t, double *u, double *v, double *gust, double *w, double *twd, double *tws)
use findflow to get wind and waves
double findPressureGrib(double lat, double lon, double t)
Zone zone
geographic zone covered by grib file