Public
Edited
Nov 8, 2023
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
times = FileAttachment("times.json").json()
Insert cell
world = FileAttachment("world.json").json()
Insert cell
solar = require("solar-calculator@0.3/dist/solar-calculator.min.js")
Insert cell
antipode = ([longitude, latitude]) => [longitude + 180, -latitude]
Insert cell
Insert cell
world
Insert cell
n = d3.geoCircle().radius(90).center(antipode(sun))()
Insert cell
night = viz.tool.featurecollection(
d3.geoCircle().radius(90).center(antipode(sun))()
)
Insert cell
projections = [
{ name: "Equirectangular", location: d3.geoEquirectangular() },
{
name: "Orthographic",
function: d3.geoOrthographic().rotate([-20, -25]).clipAngle(90)
},
{ name: "ConicEquidistant", function: d3.geoConicEquidistant() },
{ name: "Ginzburg8", function: d3.geoGinzburg8() },
{
name: "InterruptedMollweideHemispheres",
function: d3.geoInterruptedMollweideHemispheres()
},
{ name: "PeirceQuincuncial", function: d3.geoPeirceQuincuncial() },
{ name: "InterruptedHomolosine", function: d3.geoInterruptedHomolosine() },

]
Insert cell
d3 = require("d3", "d3-geo-projection")
Insert cell
viz = require("geoviz@0.3.5")
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