mithengereverse4.frink

View or download mithengereverse4.frink in plain text format

// This is reverse-engineering of Ivan's picture of MIThenge #0900

use sun.frink
use mithengecorridor.frink

// Date from EXIF data
exifdate = #2007-08-27 03:42:27 Eastern#

// The 0903 image was taken of Lenny's GPS receiver, showing true time.
// The (bad) time from exif data
badEXIFdate = #2007-08-27 03:59:00 Eastern#

// The (true) time from GPS
goodGPSdate = #2007-08-27 04:57:54 Eastern#

// This is the offset that has to be *added* to the EXIF dates to get the
// true date
dateOffset = goodGPSdate - badEXIFdate

truedate = exifdate + dateOffset

println["The camera offset is $dateOffset"]
println["The true date was " + (truedate -> Eastern)]

// We don't care all that much about refraction, so the temp/pressure figures
// below may not be accurate but shouldn't matter much.
[moonAzimuth, moonAltitude] = refractedMoonAzimuthAltitude[truedate, lat, long, F[29], 30.42 inHg]

// Convert Meeus azimuth conventions to normal conventions.
moonAzimuth = (moonAzimuth + 180 degrees) mod circle
println["True moon azimuth at this time was " + format[moonAzimuth,"degrees",5]]
println["Approx. altitude at this time was " + format[moonAltitude,"degrees",5]]

latticewidth = 31.5 in

rightOffset = (1.7 cm) * (latticewidth/(7.8 cm))
dist = 465 ft - (16 ft) - (20.5 in)

// The grating is offset to the right of the centerline of the corridor.
grateOffset = (1.5 cm / (11 cm)) latticewidth
println["Grate offset is " + (grateOffset -> "in")]

moonRadius = moonRadiusAngle[truedate]
println["Moon radius is " + format[moonRadius,"degrees", 5]]
println["Moon diameter is " + format[2*moonRadius,"degrees", 5]]

println["Right offset is " + (rightOffset -> "in")]
println["Distance is " + (dist -> ["ft","in"])]
correctionAngle = arctan[rightOffset+grateOffset, dist] 

println["Correction angle is " + (correctionAngle -> "degrees")]

trueAzimuth = moonAzimuth - correctionAngle
println["True corridor azimuth is " + format[trueAzimuth,"degrees",3]]


View or download mithengereverse4.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 17683 days, 12 hours, 39 minutes ago.