sun_calc 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sun_calc.rb +8 -2
- data/lib/sun_calc/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32bdf5ac53d3d2a9ab67f764b2a401e77228d56d
|
4
|
+
data.tar.gz: 805161944065ec395d06ab120c212141c44d11f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a3b8a0207164af43b9b010ee162cde90f60099ce03778c6c9fd096f0888590882a86926f7179b1a28e8d4e2469e17612a583c23ce5de1a8cc27d5ade73714cb
|
7
|
+
data.tar.gz: 4b7c7d23ad5694cdb413e1dc85fef915f041a68332af91ca6c7a98293ccc83d1ecfecb683b7c90ad8e3769ba8ce7798b14727bc9e28d60f6e9e768ff51494c41
|
data/lib/sun_calc.rb
CHANGED
@@ -98,10 +98,12 @@ class SunCalc
|
|
98
98
|
hc = 0.133 * ONE_RADIAN
|
99
99
|
h0 = SunCalc.moon_position(t, lat, lng)[:altitude] - hc
|
100
100
|
ye = 0
|
101
|
+
max = nil
|
102
|
+
min = nil
|
101
103
|
rise = nil
|
102
104
|
set = nil
|
103
105
|
# Iterate in 2-hour steps checking if a 3-point quadratic curve crosses zero
|
104
|
-
# (which means rise or set).
|
106
|
+
# (which means rise or set). Assumes x values -1, 0, +1.
|
105
107
|
(1...24).step(2).each do |i|
|
106
108
|
h1 = SunCalc.moon_position(hours_later(t, i), lat, lng)[:altitude] - hc
|
107
109
|
h2 = SunCalc.moon_position(
|
@@ -115,6 +117,8 @@ class SunCalc
|
|
115
117
|
roots = 0
|
116
118
|
x1 = 0
|
117
119
|
x2 = 0
|
120
|
+
min = i + xe if xe.abs <= 1 && ye < 0
|
121
|
+
max = i + xe if xe.abs <= 1 && ye > 0
|
118
122
|
if d >= 0
|
119
123
|
dx = Math.sqrt(d) / (a.abs * 2)
|
120
124
|
x1 = xe - dx
|
@@ -133,10 +137,12 @@ class SunCalc
|
|
133
137
|
rise = i + (ye < 0 ? x2 : x1)
|
134
138
|
set = i + (ye < 0 ? x1 : x2)
|
135
139
|
end
|
136
|
-
break if rise && set
|
140
|
+
break if rise && set && min && max
|
137
141
|
h0 = h2
|
138
142
|
end
|
139
143
|
{}.tap do |result|
|
144
|
+
result[:nadir] = hours_later(t, min) if min
|
145
|
+
result[:lunar_noon] = hours_later(t, max) if max
|
140
146
|
result[:moonrise] = hours_later(t, rise) if rise
|
141
147
|
result[:moonset] = hours_later(t, set) if set
|
142
148
|
result[ye > 0 ? :always_up : :always_down] = true if !rise && !set
|
data/lib/sun_calc/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sun_calc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Cederblad
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-05-
|
12
|
+
date: 2018-05-11 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email:
|