///|
fn time_value(x : @s.Instant?) -> Json {
match x {
Some(t) => t.unix_ms().to_json()
None => (None : Double?).to_json()
}
}
///|
fn main {
for q in queries {
let d = @s.instant(q.0).unwrap()
let s = @s.observer(q.1, q.2).unwrap()
let sp = @s.sun_position(d, s)
let mp = @s.moon_position(d, s)
let il = @s.moon_illumination(d)
let st = @s.sun_times(d, s)
let mt = @s.moon_times(d, s)
let row : Array[Json] = [
sp.azimuth.to_json(),
sp.altitude.to_json(),
mp.azimuth.to_json(),
mp.altitude.to_json(),
mp.distance.to_json(),
il.fraction.to_json(),
st.solar_noon.unix_ms().to_json(),
time_value(st.event("sunrise")),
time_value(st.event("sunset")),
time_value(st.event("dawn")),
time_value(st.event("dusk")),
time_value(mt.rise),
time_value(mt.set),
]
println(row.to_json().stringify())
}
}