格点数据解析器
QEGridDataProvider
QE自定义四维二进制格点数据解析器
如果我们拿到的格点数据是QE标准化格点数据格式,则我们使用QEGridDataProvider
来构建provider
CimissGridDataProvider
天擎/CIMISS接口返回的单二维场的格点数据解析器
如果我们拿到的格点数据是CIMISS接口返回的单二维场的格点数据,或者和CIMISS接口返回的单二维场的格点数据类似(数据含以下示例中的字段)的数据,则我们使用CimissGridDataProvider
来构建provider。
下面是一个CIMISS接口返回的单二维场的格点数据示例
const jsonData = {
"startLat":53.0,
"startLon":73.5,
"endLat":4.0,
"endLon":135.0,
"latCount":99,
"lonCount":124,
"latStep":-0.5,
"lonStep":0.5,
"DS":[[12.523165,12.460665,12.710665,...],[11.523165,11.335665,11.648165,...]...],
...
}
我们需要展示的数据如果是类似上面示例的数据结构,则可以使用CimissGridDataProvider
,我们只需将格点数据传入即可,CimissGridDataProvider
会自动解析出里面的gridData和gridOptions。
const provider = new CimissGridDataProvider(jsonData);
完整示例
Array2DGridDataProvider
基于数组的单二维格点场的解析器
如果我们的数据是如下格式的二维数组:
const gridArr = [[12.523165,12.460665,12.710665,...],[11.523165,11.335665,11.648165,...]...]
或者一维数组
const gridArr = [12.523165,12.460665,12.710665,...,11.523165,11.335665,11.648165,...]
我们可以使用Array2DGridDataProvider
来构建provider,同时需要传入gridOptions,格点数据的属性
let gridOptions:IGridDataOptions = {
xStart: 117.834647, //开始经度
xEnd: 126.535819, //结束经度
yStart: 26.749225, //开始纬度
yEnd: 31.413367, //结束纬度
xDelta: 0.03, //经度间隔
yDelta: 0.03, //纬度间隔
zValues: [0],
tCount: 1
};
const provider = new Array2DGridDataProvider(gridArr, {gridOptions:gridOptions});
MemoryGridDataProvider
基于内存的格点数据解析器
如果我们的数据已经是一个二维格点场数据GridData(例如自己先解析了数据),或者多个GridData组成的格点数据序列,GridData
对象为框架中定义的格点数据对象,表示一个二维的格点场。则我们可以使用MemoryGridDataProvider来构建provider,同样需要传入gridOptions格点数据的属性。第一个参数是[t[z]]形式的格点场(GridData)数组,第二个参数是gridOptions。
const provider = new MemoryGridDataProvider(grids, {gridOptions:gridOptions});
完整示例
MemoryWindDataProvider
风场数据解析器
MemoryWindDataProvider专门用于构建风场数据,风场数据由UV或者风向风速构成,在QE中,使用两个格点数据访问器(使用U和V,或者使用风向和风速)可以构建一个风场数据访问器MemoryWindDataProvider,MemoryWindDataProvider中可以进行UV和风向风速的自动换算。
MemoryWindDataProvider构建参数有:
以下为构建MemoryWindDataProvider的示例
getRaw("public/demos/data/u500.dat").then(uBuffer => {
const uProvider = new QEGridDataProvider(uBuffer)
getRaw("public/demos/data/v500.dat").then(async vBuffer => {
const vProvider = new QEGridDataProvider(vBuffer);
const windProvider = new MemoryWindDataProvider(
uProvider, //第一个格点访问器,U分量
vProvider, //第二个格点访问器,V分量
{
lazyCalc: true, //延迟计算,即在构建的时候不计算风向风速
isUV: true //是uv分量
}
);
})
})
lazyCalc这个参数是指是否延迟计算,比如传入的uv(isUV为true),就表示是否马上就要计算风向风速。
完整示例
MicapsDiamond4GridDataProvider
Micaps4类格点数据解析器
GrayImageGridDataProvider
QE自定义的基于图像压缩的格点数据解析器
完整示例
No Comments