Skip to content

Commit 9d0766d

Browse files
Merge pull request #46 from JuliaSpaceMissionDesign/dev
Update to v1.2.1
2 parents 63232cf + 879aa50 commit 9d0766d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1894
-189
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ on:
33
- push
44
- pull_request
55
env:
6-
JULIA_NUM_THREADS: 1
6+
JULIA_NUM_THREADS: 4
77
jobs:
88
test:
99
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}

Artifacts.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[testdata]
2-
git-tree-sha1 = "b58880275ed655c31bcb6be63df686bc1539af6e"
3-
lazy = true
2+
git-tree-sha1 = "d97cce4a3c744330b363c292097a96a1aab69e6d"
3+
lazy = true
44

55
[[testdata.download]]
6-
sha256 = "4fc7a9ef011b2f90379f5129e3015d30ff313dd0493724cec5c55fc560180e13"
7-
url = "https://gist.github.com/MicheleCeresoli/ff9f8eeea149022b32979e94ef969d96/raw/b58880275ed655c31bcb6be63df686bc1539af6e.tar.gz"
6+
sha256 = "4d8ca82289ffe9161cdb49b68b0a373b472fc393255544d5d43ca6ead1774baa"
7+
url = "https://gist.github.com/MicheleCeresoli/141622fbf94e6da4c9fec7ff815192da/raw/d97cce4a3c744330b363c292097a96a1aab69e6d.tar.gz"

Project.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
name = "Ephemerides"
22
uuid = "6a9c3322-c8fe-4c26-8ad6-14a6f8acd2a0"
33
authors = ["JSMD Team"]
4-
version = "1.2.0"
4+
version = "1.2.1"
55

66
[deps]
77
JSMDInterfaces = "6b30ee2f-618e-4a15-bf4e-7df7b496e609"
88
LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3"
99
Mmap = "a63ad114-7e13-5084-954f-fe012c677804"
1010
PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46"
1111
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
12-
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
12+
StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
1313

1414
[compat]
1515
JSMDInterfaces = "1.4"
1616
LazyArtifacts = "1"
1717
PreallocationTools = "0.4"
1818
PrecompileTools = "1"
19-
StaticArrays = "1"
19+
StaticArraysCore = "1.4"
2020
julia = "1.7"
2121

2222
[extras]

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ angles = ephem_rotation3(eph, 1, 31006, time)
6767
```
6868

6969
## Current Limitations
70-
- The supported JPL binary SPK/PCK segments types are: 1, 2, 3, 8, 9, 12, 13, 14, 18, 19, 20, 21.
70+
- The supported JPL binary SPK/PCK segments types are: 1, 2, 3, 5, 8, 9, 12, 13, 14, 15, 17, 18, 19, 20, 21.
7171
- Binary INPOP kernels are not supported.
72-
- Acceleration and jerk computations are natively unavailable for SPK segments of type 1 and 21, but can be computed with Automatic Differentiation (AD) of the position and velocity components.
72+
- Acceleration and jerk computations are natively unavailable for SPK segments of type 1, 5, 15, 17 and 21, but can be computed with Automatic Differentiation (AD) of the position and velocity components.
7373

7474
## Documentation
7575
For further information on this package please refer to the [stable documentation](https://juliaspacemissiondesign.github.io/Ephemerides.jl/stable/)

docs/src/api/lapi.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,13 @@ Ephemerides.SPKSegmentCache2
125125
Ephemerides.SPKSegmentType2
126126
```
127127

128+
### SPK Type 5
129+
```@docs
130+
Ephemerides.SPKSegmentHeader5
131+
Ephemerides.SPKSegmentCache5
132+
Ephemerides.SPKSegmentType5
133+
```
134+
128135
### SPK Type 8 and 12
129136
```@docs
130137
Ephemerides.SPKSegmentHeader8
@@ -148,6 +155,27 @@ Ephemerides.SPKSegmentType14
148155
!!! note
149156
SPK segments of type 14 have the same cache structure of SPK type 2 and 3.
150157

158+
159+
### SPK Type 15
160+
```@docs
161+
Ephemerides.SPKSegmentHeader15
162+
Ephemerides.SPKSegmentType15
163+
```
164+
165+
!!! note
166+
The cache of SPK Type 15 segments is made of [`Ephemerides.TwoBodyUniversalCache`](@ref) objects.
167+
168+
169+
### SPK Type 17
170+
```@docs
171+
Ephemerides.SPKSegmentHeader17
172+
Ephemerides.SPKSegmentType17
173+
```
174+
175+
!!! note
176+
SPK segments of type 17 do not require a cache structure.
177+
178+
151179
### SPK Type 18 and 19
152180
```@docs
153181
Ephemerides.SPKSegmentHeader18
@@ -181,8 +209,6 @@ Ephemerides.find_logical_record
181209
Ephemerides.get_coefficients!
182210
```
183211

184-
### Parsing
185-
186212
## Interpolating Functions
187213

188214
### Caches
@@ -227,5 +253,12 @@ Ephemerides.final_times
227253
Ephemerides.analyse_timespan
228254
```
229255

256+
## TwoBody Routines
257+
```@docs
258+
Ephemerides.TwoBodyUniversalCache
259+
Ephemerides.update_cache!
260+
Ephemerides.propagate_twobody
261+
Ephemerides.stumpff
262+
```
230263

231264

docs/src/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,6 @@ angles = ephem_rotation3(eph, 1, 31006, time)
6262
```
6363

6464
## Current Limitations
65-
- The supported JPL binary SPK/PCK segments types are: 1, 2, 3, 8, 9, 12, 13, 14, 18, 19, 20, 21.
65+
- The supported JPL binary SPK/PCK segments types are: 1, 2, 3, 5, 8, 9, 12, 13, 14, 15, 17, 18, 19, 20, 21.
6666
- Binary INPOP kernels are not supported.
67-
- Acceleration and jerk computations are unavailable for SPK segments of type 1 and 21.
67+
- Acceleration and jerk computations are unavailable for SPK segments of type 1, 5, 15, 17 and 21.

docs/src/tutorials/load.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This tutorial will walk you through the basic features and interfaces that allow you to load binary ephemeris kernels.
44

5-
The supported sources of ephemerides are currently limited to binary PCK and SPK segments of type: 1, 2, 3, 8, 9, 12, 13, 18, 19, 20 and 21.
5+
The supported sources of ephemerides are currently limited to binary PCK and SPK segments of type: 1, 2, 3, 5, 8, 9, 12, 13, 14, 15, 17, 18, 19, 20, and 21.
66

77
!!! note
88
Support for IMCCE INPOP ephemerides is yet to be implemented.

docs/src/tutorials/position.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pvaj = ephem_vector12(eph, 3, 399, 0)
5050
In all these examples, the returned data is always in the form of a `StaticArray` in order to minimise memory allocations.
5151

5252
!!! warning
53-
SPK segments of types 1 and 21 do not natively support acceleration and jerk computations. However, these values can be computed by Automatic Differentiation (AD) of the position and/or velocity components.
53+
SPK segments of types 1 5, 15, 17 and 21 do not natively support acceleration and jerk computations. However, these values can be computed by Automatic Differentiation (AD) of the position and/or velocity components.
5454

5555

5656
## Computing orientation angles

src/Ephemerides.jl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ using LazyArtifacts
55
using Mmap
66
using PreallocationTools
77
using PrecompileTools: PrecompileTools
8-
using StaticArrays
8+
using StaticArraysCore
99

1010
import JSMDInterfaces.Ephemeris as jEph
1111

@@ -18,6 +18,9 @@ include("interp/hermite.jl")
1818
include("interp/lagrange.jl")
1919
include("interp/chebyshev.jl")
2020

21+
# Twobody utilities
22+
include("twobody.jl")
23+
2124
# SPK segment types definitions
2225
include("spk/spktypes.jl")
2326

@@ -27,9 +30,12 @@ include("daf.jl")
2730
# SPK segments implementations
2831
include("spk/spk1.jl")
2932
include("spk/spk2.jl")
33+
include("spk/spk5.jl")
3034
include("spk/spk8.jl")
3135
include("spk/spk9.jl")
3236
include("spk/spk14.jl")
37+
include("spk/spk15.jl")
38+
include("spk/spk17.jl")
3339
include("spk/spk18.jl")
3440
include("spk/spk19.jl")
3541
include("spk/spk20.jl")

src/daf.jl

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -588,25 +588,34 @@ function create_spk_segment(daf::DAF, desc::DAFSegmentDescriptor)
588588

589589
mapped_spktype = SPK_SEGMENTLIST_MAPPING[segment_type(desc)]
590590
if mapped_spktype == 1
591-
SPKSegmentType1(daf, desc)
591+
SPKSegmentType2(daf, desc)
592592

593593
elseif mapped_spktype == 2
594-
SPKSegmentType2(daf, desc)
594+
SPKSegmentType9(daf, desc)
595595

596596
elseif mapped_spktype == 3
597-
SPKSegmentType8(daf, desc)
597+
SPKSegmentType1(daf, desc)
598598

599599
elseif mapped_spktype == 4
600-
SPKSegmentType9(daf, desc)
600+
SPKSegmentType14(daf, desc)
601601

602602
elseif mapped_spktype == 5
603-
SPKSegmentType14(daf, desc)
603+
SPKSegmentType15(daf, desc)
604604

605605
elseif mapped_spktype == 6
606+
SPKSegmentType8(daf, desc)
607+
608+
elseif mapped_spktype == 7
606609
SPKSegmentType19(daf, desc)
607610

608-
else
611+
elseif mapped_spktype == 8
609612
SPKSegmentType20(daf, desc)
613+
614+
elseif mapped_spktype == 9
615+
SPKSegmentType5(daf, desc)
616+
617+
else
618+
SPKSegmentType17(daf, desc)
610619
end
611620

612621
end

0 commit comments

Comments
 (0)