Skip to content

Commit

Permalink
Merge pull request #86 from observerly/feature/dusk/GetSolarEclipticP…
Browse files Browse the repository at this point in the history
…osition

feat: Added GetSolarEclipticPosition().
  • Loading branch information
michealroberts authored Apr 25, 2022
2 parents a6a83c7 + 63207e9 commit 80a5ad6
Show file tree
Hide file tree
Showing 3 changed files with 97 additions and 47 deletions.
95 changes: 48 additions & 47 deletions coverage.txt
Original file line number Diff line number Diff line change
@@ -1,38 +1,9 @@
mode: atomic
github.com/observerly/dusk/pkg/dusk/lawrence.go:15.59,24.12 3 1
github.com/observerly/dusk/pkg/dusk/lawrence.go:28.2,28.11 1 1
github.com/observerly/dusk/pkg/dusk/lawrence.go:24.12,26.3 1 0
github.com/observerly/dusk/pkg/dusk/lawrence.go:37.62,50.11 5 13
github.com/observerly/dusk/pkg/dusk/lawrence.go:54.2,54.10 1 13
github.com/observerly/dusk/pkg/dusk/lawrence.go:50.11,52.3 1 13
github.com/observerly/dusk/pkg/dusk/lawrence.go:64.78,80.11 7 2
github.com/observerly/dusk/pkg/dusk/lawrence.go:85.2,92.3 3 2
github.com/observerly/dusk/pkg/dusk/lawrence.go:80.11,82.3 1 2
github.com/observerly/dusk/pkg/dusk/lawrence.go:101.82,111.12 5 0
github.com/observerly/dusk/pkg/dusk/lawrence.go:116.2,121.3 2 0
github.com/observerly/dusk/pkg/dusk/lawrence.go:111.12,113.3 1 0
github.com/observerly/dusk/pkg/dusk/lawrence.go:130.62,144.2 5 24
github.com/observerly/dusk/pkg/dusk/lawrence.go:152.58,160.2 3 14
github.com/observerly/dusk/pkg/dusk/lawrence.go:170.70,178.14 3 13
github.com/observerly/dusk/pkg/dusk/lawrence.go:182.2,182.11 1 13
github.com/observerly/dusk/pkg/dusk/lawrence.go:178.14,180.3 1 0
github.com/observerly/dusk/pkg/dusk/twilight.go:38.163,49.16 5 9
github.com/observerly/dusk/pkg/dusk/twilight.go:53.2,57.18 1 9
github.com/observerly/dusk/pkg/dusk/twilight.go:49.16,51.3 1 0
github.com/observerly/dusk/pkg/dusk/twilight.go:69.139,74.2 2 3
github.com/observerly/dusk/pkg/dusk/twilight.go:85.142,90.2 2 3
github.com/observerly/dusk/pkg/dusk/twilight.go:101.146,106.2 2 3
github.com/observerly/dusk/pkg/dusk/utils.go:15.34,17.2 1 7
github.com/observerly/dusk/pkg/dusk/utils.go:26.55,31.12 2 1448
github.com/observerly/dusk/pkg/dusk/utils.go:35.2,35.11 1 1448
github.com/observerly/dusk/pkg/dusk/utils.go:31.12,33.3 1 0
github.com/observerly/dusk/pkg/dusk/utils.go:47.84,49.2 1 4
github.com/observerly/dusk/pkg/dusk/utils.go:60.84,62.2 1 1448
github.com/observerly/dusk/pkg/dusk/utils.go:72.85,74.2 1 1
github.com/observerly/dusk/pkg/dusk/astrometry.go:12.52,16.12 2 1444
github.com/observerly/dusk/pkg/dusk/astrometry.go:20.2,20.11 1 1444
github.com/observerly/dusk/pkg/dusk/astrometry.go:16.12,18.3 1 364
github.com/observerly/dusk/pkg/dusk/epoch.go:31.48,36.2 2 4475
github.com/observerly/dusk/pkg/dusk/coordinates.go:52.108,71.12 10 1444
github.com/observerly/dusk/pkg/dusk/coordinates.go:75.2,78.3 1 1444
github.com/observerly/dusk/pkg/dusk/coordinates.go:71.12,73.3 1 520
github.com/observerly/dusk/pkg/dusk/coordinates.go:91.149,106.2 6 1442
github.com/observerly/dusk/pkg/dusk/epoch.go:31.48,36.2 2 4477
github.com/observerly/dusk/pkg/dusk/epoch.go:43.45,45.2 1 70
github.com/observerly/dusk/pkg/dusk/epoch.go:53.60,65.13 6 1446
github.com/observerly/dusk/pkg/dusk/epoch.go:69.2,81.13 5 1446
Expand All @@ -43,7 +14,7 @@ github.com/observerly/dusk/pkg/dusk/epoch.go:94.74,102.11 4 1445
github.com/observerly/dusk/pkg/dusk/epoch.go:106.2,106.17 1 1445
github.com/observerly/dusk/pkg/dusk/epoch.go:102.11,104.3 1 0
github.com/observerly/dusk/pkg/dusk/epoch.go:115.65,126.2 4 33
github.com/observerly/dusk/pkg/dusk/epoch.go:134.76,142.2 3 71
github.com/observerly/dusk/pkg/dusk/epoch.go:134.76,142.2 3 73
github.com/observerly/dusk/pkg/dusk/epoch.go:150.73,158.2 3 2917
github.com/observerly/dusk/pkg/dusk/epoch.go:167.62,178.2 3 6
github.com/observerly/dusk/pkg/dusk/epoch.go:186.73,201.12 6 4
Expand Down Expand Up @@ -115,6 +86,41 @@ github.com/observerly/dusk/pkg/dusk/lunar.go:764.2,764.35 1 1
github.com/observerly/dusk/pkg/dusk/lunar.go:741.16,743.3 1 0
github.com/observerly/dusk/pkg/dusk/lunar.go:747.39,762.3 5 1440
github.com/observerly/dusk/pkg/dusk/lunar.go:777.93,805.2 11 1
github.com/observerly/dusk/pkg/dusk/trigonometry.go:10.30,12.2 1 114825
github.com/observerly/dusk/pkg/dusk/trigonometry.go:14.30,16.2 1 18874
github.com/observerly/dusk/pkg/dusk/trigonometry.go:18.44,20.2 1 86941
github.com/observerly/dusk/pkg/dusk/trigonometry.go:22.30,24.2 1 1453
github.com/observerly/dusk/pkg/dusk/trigonometry.go:26.31,28.2 1 2922
github.com/observerly/dusk/pkg/dusk/trigonometry.go:30.31,32.2 1 1470
github.com/observerly/dusk/pkg/dusk/trigonometry.go:34.31,36.2 1 1445
github.com/observerly/dusk/pkg/dusk/trigonometry.go:38.36,40.2 1 10
github.com/observerly/dusk/pkg/dusk/utils.go:15.34,17.2 1 7
github.com/observerly/dusk/pkg/dusk/utils.go:26.55,31.12 2 1448
github.com/observerly/dusk/pkg/dusk/utils.go:35.2,35.11 1 1448
github.com/observerly/dusk/pkg/dusk/utils.go:31.12,33.3 1 0
github.com/observerly/dusk/pkg/dusk/utils.go:47.84,49.2 1 4
github.com/observerly/dusk/pkg/dusk/utils.go:60.84,62.2 1 1448
github.com/observerly/dusk/pkg/dusk/utils.go:72.85,74.2 1 1
github.com/observerly/dusk/pkg/dusk/astrometry.go:12.52,16.12 2 1444
github.com/observerly/dusk/pkg/dusk/astrometry.go:20.2,20.11 1 1444
github.com/observerly/dusk/pkg/dusk/astrometry.go:16.12,18.3 1 364
github.com/observerly/dusk/pkg/dusk/lawrence.go:15.59,24.12 3 1
github.com/observerly/dusk/pkg/dusk/lawrence.go:28.2,28.11 1 1
github.com/observerly/dusk/pkg/dusk/lawrence.go:24.12,26.3 1 0
github.com/observerly/dusk/pkg/dusk/lawrence.go:37.62,50.11 5 13
github.com/observerly/dusk/pkg/dusk/lawrence.go:54.2,54.10 1 13
github.com/observerly/dusk/pkg/dusk/lawrence.go:50.11,52.3 1 13
github.com/observerly/dusk/pkg/dusk/lawrence.go:64.78,80.11 7 2
github.com/observerly/dusk/pkg/dusk/lawrence.go:85.2,92.3 3 2
github.com/observerly/dusk/pkg/dusk/lawrence.go:80.11,82.3 1 2
github.com/observerly/dusk/pkg/dusk/lawrence.go:101.82,111.12 5 0
github.com/observerly/dusk/pkg/dusk/lawrence.go:116.2,121.3 2 0
github.com/observerly/dusk/pkg/dusk/lawrence.go:111.12,113.3 1 0
github.com/observerly/dusk/pkg/dusk/lawrence.go:130.62,144.2 5 26
github.com/observerly/dusk/pkg/dusk/lawrence.go:152.58,160.2 3 16
github.com/observerly/dusk/pkg/dusk/lawrence.go:170.70,178.14 3 15
github.com/observerly/dusk/pkg/dusk/lawrence.go:182.2,182.11 1 15
github.com/observerly/dusk/pkg/dusk/lawrence.go:178.14,180.3 1 0
github.com/observerly/dusk/pkg/dusk/solar.go:21.45,24.2 1 1479
github.com/observerly/dusk/pkg/dusk/solar.go:33.50,36.2 1 29
github.com/observerly/dusk/pkg/dusk/solar.go:45.62,48.2 1 28
Expand All @@ -125,15 +131,10 @@ github.com/observerly/dusk/pkg/dusk/solar.go:90.2,90.10 1 1452
github.com/observerly/dusk/pkg/dusk/solar.go:86.11,88.3 1 10
github.com/observerly/dusk/pkg/dusk/solar.go:106.110,112.2 2 24
github.com/observerly/dusk/pkg/dusk/solar.go:123.142,151.2 12 23
github.com/observerly/dusk/pkg/dusk/trigonometry.go:10.30,12.2 1 114823
github.com/observerly/dusk/pkg/dusk/trigonometry.go:14.30,16.2 1 18874
github.com/observerly/dusk/pkg/dusk/trigonometry.go:18.44,20.2 1 86941
github.com/observerly/dusk/pkg/dusk/trigonometry.go:22.30,24.2 1 1453
github.com/observerly/dusk/pkg/dusk/trigonometry.go:26.31,28.2 1 2922
github.com/observerly/dusk/pkg/dusk/trigonometry.go:30.31,32.2 1 1470
github.com/observerly/dusk/pkg/dusk/trigonometry.go:34.31,36.2 1 1445
github.com/observerly/dusk/pkg/dusk/trigonometry.go:38.36,40.2 1 10
github.com/observerly/dusk/pkg/dusk/coordinates.go:52.108,71.12 10 1444
github.com/observerly/dusk/pkg/dusk/coordinates.go:75.2,78.3 1 1444
github.com/observerly/dusk/pkg/dusk/coordinates.go:71.12,73.3 1 520
github.com/observerly/dusk/pkg/dusk/coordinates.go:91.149,106.2 6 1442
github.com/observerly/dusk/pkg/dusk/solar.go:159.70,170.2 4 2
github.com/observerly/dusk/pkg/dusk/twilight.go:38.163,49.16 5 9
github.com/observerly/dusk/pkg/dusk/twilight.go:53.2,57.18 1 9
github.com/observerly/dusk/pkg/dusk/twilight.go:49.16,51.3 1 0
github.com/observerly/dusk/pkg/dusk/twilight.go:69.139,74.2 2 3
github.com/observerly/dusk/pkg/dusk/twilight.go:85.142,90.2 2 3
github.com/observerly/dusk/pkg/dusk/twilight.go:101.146,106.2 2 3
19 changes: 19 additions & 0 deletions pkg/dusk/solar.go
Original file line number Diff line number Diff line change
Expand Up @@ -149,3 +149,22 @@ func GetSunriseSunsetTimesInUTC(datetime time.Time, degreesBelowHorizon float64,

return sun
}

/*
GetSolarEclipticPosition()
@param datetime - the datetime of the observer (in UTC)
@returns the geocentric ecliptic coodinate (λ - geocentric longitude, β - geocentric latidude) of the Sun.
*/
func GetSolarEclipticPosition(datetime time.Time) EclipticCoordinate {
var M = GetSolarMeanAnomalyLawrence(datetime)

var C = GetSolarEquationOfCenterLawrence(M)

var λ = GetSolarEclipticLongitudeLawrence(M, C)

return EclipticCoordinate{
Longitude: λ,
Latitude: 0,
}
}
30 changes: 30 additions & 0 deletions pkg/dusk/solar_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -220,3 +220,33 @@ func TestGetSunriseSunsetTimesInUTCSetWithOffsetHorizon(t *testing.T) {
t.Errorf("got %q, wanted %q", got, want)
}
}

func TestGetSolarEclipticPositionLongitude(t *testing.T) {
// Date of observation:
var datetime time.Time = time.Date(2015, 2, 5, 17, 0, 0, 0, time.UTC)

var ec = GetSolarEclipticPosition(datetime)

var got = ec.Longitude

var want = 316.562255

if math.Abs(got-want) > 0.00001 {
t.Errorf("got %f, wanted %f", got, want)
}
}

func TestGetSolarEclipticPositionLatitude(t *testing.T) {
// Date of observation:
var datetime time.Time = time.Date(2015, 2, 5, 17, 0, 0, 0, time.UTC)

var ec = GetSolarEclipticPosition(datetime)

var got = ec.Latitude

var want = 0.0

if math.Abs(got-want) > 0.00001 {
t.Errorf("got %f, wanted %f", got, want)
}
}

0 comments on commit 80a5ad6

Please sign in to comment.