I made a fiddle for testing my javascript. I was originally unable to grab csv data because the cross origin request header was not set for my google cloud bucket. Upon modifying the json header and pulling the data into my fiddle I got things working. Upon implementation within the MTurk Worker sandbox for testing my data no longer pulls into my handson table and furthermore no error is present in the console. I really am not sure what the issue would be so I am posting here as I have nothing to go off of. Any suggestions to search on would be much appreciated.
Additional Info: Chrome stopped working for my link with This page isn’t working
workersandbox.mturk.com redirected you too many times. Try clearing your cookies. ERR_TOO_MANY_REDIRECTS
however the HIT displays fine in firefox.
Javascript
var csvLink = 'https://storage.googleapis.com/directionalsurvey/testDScsv.csv';
var data = [];
//var trueTVD = X6J374YZ;
var trueTVD = 700;
d3.csv(csvLink, function(dat) {
for (i = 0; i < dat.length; i++) {
var inner = [];
inner.push(dat[i]['Measured Depth']);
inner.push(dat[i]['Inclination']);
inner.push(dat[i]['Azimuth']);
data.push(inner);
}
var container1 = document.getElementById('Table'),
hot1;
var hot1 = new Handsontable(container1, {
data: data,
colHeaders: ['Measured Depth', "Inclination", "Azimuth"],
rowHeaders: true,
minSpareRows: 0,
contextMenu: ['row_above', 'row_below', 'remove_row']
});
function countRows() {
var ht = hot1
var rowcount = ht.countRows() - ht.countEmptyRows();
return rowcount;
}
$("#get_data").click(submitForm);
/////////////////////////////////////////Begin Functions for Minimum Curvature Algorithm////////////////////////////
function Beta(I1, I2, Az1, Az2) {
var dI = Deg2Rad(I2) - Deg2Rad(I1);
var dA = Deg2Rad(Az2) - Deg2Rad(Az1);
var X = math.sin(Deg2Rad(I1)) * math.sin(Deg2Rad(I2));
var Y = math.cos(dI);
var Z = math.cos(dA);
var beta = math.acos(Y - (X * (1 - Z)));
return beta;
}
function RF(beta) {
var b = beta;
var rf = (2 / b) * math.tan(b / 2);
return rf;
}
function TVD(dmd, I1, I2, RF) {
var A = math.cos(Deg2Rad(I1)) + math.cos(Deg2Rad(I2));
var tvd = (dmd / 2) * A * RF;
return tvd;
}
function Deg2Rad(deg) {
return deg * math.pi / 180;
}
function Rad2Deg(rad) {
return rad * 180 / math.pi
}
// function to calculate the TVD
function TVDcalc(MD, INC, AZI, Depth) {
var md = MD;
var inc = INC;
var azi = AZI;
var i;
for (i = 0; i < md.length - 1; i++) {
var beta = Beta(inc[i], inc[i + 1], azi[i], azi[i + 1]);
if (inc[i] == inc[i + 1]) {
var rf = 1;
} else {
var rf = RF(beta);
}
var dMD = md[i + 1] - md[i];
Depth.push(TVD(dMD, inc[i], inc[i + 1], rf) + Depth[i]);
}
return Depth
}
/////////////////////////////////////////End Functions for Minimum Curvature Algorithm////////////////////////////
function enable(TVD) {
if (TVD[TVD.length - 1] >= trueTVD - 5 && TVD[TVD.length - 1] <= trueTVD + 5) {
//console.log(TVD[TVD.length - 1]);
$('#submitButton').prop("disabled", false);
} else {
$('#submitButton').prop("disabled", true);
}
}
function submitForm() {
var htContents = hot1.getSourceData() //getSourceData(1,1,countRows(),3)
//console.log(htContents);
var md = [];
var inc = [];
var azi = [];
var Depth = [];
var fd = Number($('#TVD1').val())
Depth.push(fd);
//transform the HOT into individual arrays for ingestion in TVD calc
for (i = 0; i < countRows(); i++) {
md.push(htContents[i][0]);
inc.push(htContents[i][1]);
azi.push(htContents[i][2]);
}
var TVD = TVDcalc(md, inc, azi, Depth)
enable(TVD);
console.log("".concat("Calculated TVD: ", Math.round(Depth[Depth.length - 1])));
console.log("".concat("Expected TVD: ", trueTVD))
}
});