// Generated by CoffeeScript 1.10.0 (function() { var defs, graticule, height, magnitude, path_generator, projection, sky, svg, width, zoom; svg = d3.select('svg'); width = svg[0][0].getBoundingClientRect().width; height = svg[0][0].getBoundingClientRect().height; projection = d3.geo.berghaus().rotate([20, -90]).clipAngle(180 - 1e-3).scale(100).translate([width / 2, height * .55]).precision(.1); graticule = d3.geo.graticule().minorStep([15, 10]).majorStep([90, 10]); path_generator = d3.geo.path().projection(projection); defs = svg.append('defs'); defs.append('path').datum({ type: 'Sphere' }).attr('id', 'sphere').attr('d', path_generator); defs.append('clipPath').attr('id', 'clip').append('use').attr('xlink:href', '#sphere'); sky = svg.append('g'); sky.append('use').attr('class', 'stroke').attr('xlink:href', '#sphere'); sky.append('use').attr('class', 'fill').attr('xlink:href', '#sphere'); sky.append('path').datum(graticule).attr('class', 'graticule').attr('d', path_generator).attr('clip-path', 'url(#clip)'); zoom = d3.behavior.zoom().scaleExtent([1, 20]).on('zoom', function() { return sky.attr('transform', "translate(" + (zoom.translate()) + ")scale(" + (zoom.scale()) + ")"); }); sky.call(zoom); magnitude = d3.scale.linear().domain([-1, 6]).range([8, 0]); d3.csv('stars.csv', function(data) { return sky.selectAll('.star').data(data).enter().append('circle').attr('class', 'star').attr('r', function(d) { return magnitude(+d.magnitude); }).attr('transform', function(d) { var lat, lon, ref, x, y; lat = +d.dec_deg + +d.dec_min / 60 + +d.dec_sec / 3600; lon = (+d.RA_hour + +d.RA_min / 60 + +d.RA_sec / 3600) * (360 / 24); ref = projection([-lon, lat]), x = ref[0], y = ref[1]; return "translate(" + x + "," + y + ")"; }); }); d3.select(self.frameElement).style('height', height + 'px'); }).call(this);