Download or view 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]]
Download or view 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 20203 days, 10 hours, 58 minutes ago.