D3.CSV在JSFIDDLE工作,不在MTURK Worker Sandbox上工作



我做了一个用于测试我的JavaScript的小提琴。我最初无法获取CSV数据,因为我的Google Cloud Bucket没有设置跨原点请求标头。修改JSON标题并将数据拉入我的小提琴中后,我让事情有效。在MTURK WORKER SANDBOX内实现后,用于测试我的数据不再将其拉入我的Handson表中,而且控制台中没有错误。我真的不确定问题是什么,所以我在这里发布了,因为我没有什么可解决的。任何要搜索的建议都将不胜感激。

附加信息:Chrome停止使用此页面的链接工作

workerersandbox.mturk.com将您重定多次。尝试清除饼干。err_too_many_redirects

但是,命中率显示在Firefox中。

jsfiddle

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))
  }
});

d3.csv本质上是异步的,问题d3:使d3.csv函数syncronous syncronous答案我的问题,但是我最终只是使用ajax。

最新更新