From f84581f0121182c92f9ac7e14fa70e96b6ebb834 Mon Sep 17 00:00:00 2001 From: boB Rudis Date: Thu, 25 Jan 2018 21:44:37 -0500 Subject: [PATCH] Didn't notice the original R port had lat/lon mixed up --- README.Rmd | 2 +- src/terminator-main.cpp | 50 ++++++++++++++++++++++++------------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/README.Rmd b/README.Rmd index b2c3b70..86d3dab 100644 --- a/README.Rmd +++ b/README.Rmd @@ -67,7 +67,7 @@ term_seq <- terminator_lat_lon() chart <- ggplot(term_seq, aes(frame = frame)) + borders("world", colour = "gray90", fill = "gray85") + - geom_ribbon(aes(lat, ymax = lon), ymin = 90, alpha = 0.2) + + geom_ribbon(aes(lon, ymax = lat), ymin = 90, alpha = 0.2) + coord_equal(xlim = c(-180, 190), ylim = c(-58, 85), expand = 0) + ggthemes::theme_map() diff --git a/src/terminator-main.cpp b/src/terminator-main.cpp index 72dd2b0..f46ce85 100644 --- a/src/terminator-main.cpp +++ b/src/terminator-main.cpp @@ -44,11 +44,11 @@ inline double ecliptic_obliquity(double j_day) { // compute epsilon return(23.43929111 - - T * (46.836769 / 3600.0 - - T * (0.0001831 / 3600.0 - + T * (0.00200340 / 3600.0 - - T * (0.576e-6 / 3600.0 - - T * 4.34e-8 / 3600.0))))); + T * (46.836769 / 3600.0 + - T * (0.0001831 / 3600.0 + + T * (0.00200340 / 3600.0 + - T * (0.576e-6 / 3600.0 + - T * 4.34e-8 / 3600.0))))); } @@ -97,40 +97,40 @@ DataFrame terminator(int time, double from = -180, double to = 180, double by = // calculate latitude and longitude of terminator within specified range using time (in POSIXct format, e.g. `Sys.time()`) double j_day = get_julian(time); - double gst = get_gmst(j_day); + double gst = get_gmst(j_day); - std::vector< double > sunEclPos = sun_ecliptic_position(j_day); + std::vector< double > sunEclPos = sun_ecliptic_position(j_day); double eclObliq = ecliptic_obliquity(j_day); - std::vector< double > sunEqPos = sun_equatorial_position(sunEclPos[0], eclObliq); + std::vector< double > sunEqPos = sun_equatorial_position(sunEclPos[0], eclObliq); - std::vector< double > out_lat, out_lon; + std::vector< double > out_lat, out_lon; - out_lat.reserve(4000); - out_lon.reserve(4000); + out_lat.reserve(4000); + out_lon.reserve(4000); - int n=0; + int n=0; - for (double i=from; i<=to; i+=by) { - n += 1; - out_lat.push_back(i); - out_lon.push_back( + for (double i=from; i<=to; i+=by) { + n += 1; + out_lon.push_back(i); + out_lat.push_back( longitude( hour_angle(i, sunEqPos, gst), sunEqPos ) ); - } + } - out_lat.resize(n); - out_lon.resize(n); + out_lat.resize(n); + out_lon.resize(n); - return( - DataFrame::create( - Named("lat") = out_lat, - Named("lon") = out_lon - ) - ); + return( + DataFrame::create( + Named("lat") = out_lat, + Named("lon") = out_lon + ) + ); } \ No newline at end of file