Published
Edited
Nov 12, 2018
2 forks
2 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
netCDFData = {
let uValues = netCDFReader.getDataVariable('Band1');
let vValues = netCDFReader.getDataVariable('Band2');
let geoTransform = [
netCDFReader.getDataVariable('lon')[0],
netCDFReader.getDataVariable('lon')[1] - netCDFReader.getDataVariable('lon')[0],
0,
netCDFReader.getDataVariable('lat')[0],
0,
netCDFReader.getDataVariable('lat')[1] - netCDFReader.getDataVariable('lat')[0]
];

var nx = netCDFReader.dimensions.find(function(d){if(d.name === 'lon') return true;}).size;
var ny = netCDFReader.dimensions.find(function(d){if(d.name === 'lat') return true;}).size;
let uData = new Array(ny);
let vData = new Array(ny);
let spdData = new Array(ny);
for (var j = 0; j<ny; j++){
uData[j] = new Array(nx);
vData[j] = new Array(nx);
spdData[j] = new Array(nx);
for (var i = 0; i<nx; i++){
uData[j][i] = uValues[i + j*nx];
vData[j][i] = vValues[i + j*nx];
spdData[j][i] = 1.943844492 * Math.sqrt(uData[j][i]*uData[j][i] + vData[j][i]*vData[j][i]);
}
}
return {"dataU": uData, "dataV": vData, "dataSPD": spdData, "geoTransform": geoTransform, "xSize": nx, "ySize": ny};
}
Insert cell
netCDFReader = new netCDF(netCDFFile)
Insert cell
netCDFFile = d3.buffer("https://gist.githubusercontent.com/rveciana/206956c3e142040432c477d75b038749/raw/ea884b9223e90b7614cb9e0f04afe36fccbe6c3f/wrf.nc")
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more