You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
806 B
29 lines
806 B
export default function (data, dimX, dimY) {
|
|
var xExtent = data.getDataExtent(dimX);
|
|
var yExtent = data.getDataExtent(dimY); // TODO Handle one data situation
|
|
|
|
var xSpan = xExtent[1] - xExtent[0] || xExtent[0];
|
|
var ySpan = yExtent[1] - yExtent[0] || yExtent[0];
|
|
var dimSize = 50;
|
|
var tmp = new Uint8Array(dimSize * dimSize);
|
|
|
|
for (var i = 0; i < data.count(); i++) {
|
|
var x = data.get(dimX, i);
|
|
var y = data.get(dimY, i);
|
|
var xIdx = Math.floor((x - xExtent[0]) / xSpan * (dimSize - 1));
|
|
var yIdx = Math.floor((y - yExtent[0]) / ySpan * (dimSize - 1));
|
|
var idx = yIdx * dimSize + xIdx;
|
|
tmp[idx] = tmp[idx] || 1;
|
|
}
|
|
|
|
var filledCount = 0;
|
|
|
|
for (var i = 0; i < tmp.length; i++) {
|
|
if (tmp[i]) {
|
|
filledCount++;
|
|
}
|
|
}
|
|
|
|
return filledCount / tmp.length;
|
|
}
|
|
; |