sadira
Version:
Web framework
176 lines (128 loc) • 4.17 kB
JavaScript
var SRZ=require('../www/js/serializer.js');
var fits = require('../../node-fits/build/Release/fits.node');
var layer_defaults = [
{
colormap : [[0,0,0,1,0],
[.5,0.0,1.0,.5,1.0]],
cuts : []
},
{
colormap : [[0,0,0,1,0],
[1.0,1.0,0.0,1.0,1.0]],
cuts : []
},
{
colormap : [[0,0,0,1,0],
[0.0,1.0,1.0,1.0,1.0]],
cuts : []
},
{
colormap : [[0,0,0,1,0],
[1.0,0.0,0.0,1.0,1.0]],
cuts : []
}
];
dialog_handlers.fits = {
test_get_data : function (dlg, status_cb){
var data_files = {
catseye : {
multi_root : "./example_fits_files/multiband/Cat's Eye Nebula/",
multi_files : [
["hst_05403_01_wfpc2_f953n_pc_sci.fits","Filter 953nm"],
["hst_05403_01_wfpc2_f658n_pc_sci.fits","Filter 658nm"],
["hst_05403_01_wfpc2_f588n_pc_sci.fits","Filter 588nm"],
["hst_05403_01_wfpc2_f631n_pc_sci.fits","Filter 631nm"],
["hst_05403_01_wfpc2_f673n_pc_sci.fits","Filter 673nm"]
],
crop : {x: 220, y: 220, w:512, h:512},
du : 1
},
M42 : {
multi_root : "./example_fits_files/multiband/M42/",
multi_files : [
["m42_40min_red.fits","Hubble Red"],
["m42_40min_ir.fits","Hubble InfraRed"]
]
}
};
console.log("DLG header : " + JSON.stringify(dlg.header));
var what = dlg.header.what;
status_cb();
//dlg.send_datagram({type : "tags", tags: multi_files}, null, function(error){});
dlg.listen("get_data", function(dgram){
var imgid=dgram.header.imgid;
var df=data_files[what];
var file_name=df.multi_root+df.multi_files[dgram.header.imgid][0];
console.log("Sending imgid " + imgid + " : " + file_name);
var f = new fits.file(file_name);
//f.file_name="./example_fits_files/m42_40min_red.fits"
//f.file_name="./example_fits_files/example.fits";
if(typeof df.du != 'undefined')
f.set_hdu(df.du);
console.log("read du image ...");
f.read_image_hdu(function(error, image){
if(error != null){
console.log("Error read image " + error);
return;
}
if(typeof df.crop != 'undefined'){
console.log("Cropping");
image.crop({x: 220, y: 220, w:512, h:512});
}
//image.crop({ w:1024, h:1024});
//image.crop({ w:2048, h:2048});
console.log("Getting data");
var data=image.get_data();
console.log("OK, Loaded " + typeof(image));
// var data=new Buffer(64); //image.get_data();
// var dv
// data.writeFloatLE(3.14, 0);
// data.writeFloatLE(2.00, 4);
// console.log("Loaded image....DATA = "+ data);
console.log("FIRST DATA IS " + data[0] + ", "+ data[1000]);
var srep=new SRZ.srz_mem(data);
srep.header={width : image.width(), height: image.height(), name : data_files[what].multi_files[imgid][1],
colormap : layer_defaults[imgid].colormap,
cuts : layer_defaults[imgid].cuts,
};
//srep.header={width : 512, height: 512 };
console.log("SRZ configured size= " + srep.size());
srep.on_done=function(){
console.log("Image data sent!");
//dlg.close();
};
dlg.srz_initiate(srep, function(error){
if(error) console.log("SRZ error : " + error);
});
});
});
},
test_get_multi_data : function (dlg, status_cb){
var f = new fits.file();
f.file_name="./example_fits_files/example.fits";
f.read_image_hdu(function(error, image){
if(error != null)
return status_cb(error);
else
status_cb();
console.log("Loaded image....");
var data=image.get_data();
// var data=new Buffer(64); //image.get_data();
// var dv
// data.writeFloatLE(3.14, 0);
// data.writeFloatLE(2.00, 4);
// console.log("Loaded image....DATA = "+ data);
//console.log("FIRST DATA IS " + data[0] + ", "+ data[1]);
var srep=new SRZ.srz_mem(data);
srep.header={width : image.width(), height: image.height() };
console.log("SRZ configured size= " + srep.size());
srep.on_done=function(){
console.log("Image data sent!");
dlg.close();
};
dlg.srz_initiate(srep, function(error){
if(error) console.log("SRZ error : " + error);
});
});
}
}