MeteoTools::LoadDataField
BOOL LoadDataField(time_t date, int
hour,int count,BMSDataList &datafeld);
Return Value
Nonzero if successful; otherwise 0.
Parameters
date
the meteo basis time reference
as type time_t (see
CTime)
hour
the hour step, will be added to
the date (hour * 3600)
count
the field size, the size of datafeld.
datafeld
The BMSDataList is a array for your own data resolution.
This contains later the data values of the feld what you want...
You must choose a size for the symbol grid, and then set the coorditates lon, lat
typedef struct
{ //BMSD_LST = Bonito Meteo Server List = a Array of calculated Data
short lat; //Lat in Minutes of the position to get and calculate the data
short lon; //Lon in Minutes of tho position to get and calculate the data
BMSDATA_SET data;
}BMSD_LST;
typedef CArray<BMSD_LST,BMSD_LST&> BMSDataList;
Remarks
Load a data field with meteo
data, for own data analysis.
Note:
This initiates the internal data
structures for all the next data accesses.
Example
// center point of Screen
// sx = mySreenSize.cx / 2; sy = mySreenSize.cy / 2;
// xoff,yoff,xscale,yscale --> see
DrawSeaData
// You yourself should put hour and date
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Bonito counted from
left/top to bottom/right
// all the transfomations see the refence point on the center of the screen
// the world cordinates system that Bonito use:
//
// in minutes = 180W to 180E --> -10800 to 10800
//
90N to 90S --> -5400 to 5400
BMSDDataList bmsd_data;
int
grid_yy=mySreenSize.cy/GRIDWIDTH+1; //screen-Y /
gridwidth
int
grid_xx=mySreenSize.cx/GRIDWIDTH+1; //screen-X /
gridwidth
int Y,X;
int count=grid_yy*grid_xx;
bmsd_data.SetSize(count);
for(z=0; z<count; z++)
{
Y=((z/grid_xx)*GRIDWIDTH)+GRIDMIDDLE;
X=((z%grid_xx)*GRIDWIDTH)+GRIDMIDDLE;
bmsd_data[z].lon= -(int)(xoff +
((double)(sx - X) *xscale));
bmsd_data[z].lat= -(int)(lmapyoff +
((double)(sy - Y) * yscale));
}
if(!LoadDataField(date,hour,count,bmsd_data))
See Also DrawSeaData ,
DrawSfcData ,
DrawSynData ,
LoadScreenField
|