or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

general-databases.mdindex.mdipac-services.mdobservatory-archives.mdsolar-system-services.mdspace-mission-archives.mdspectroscopic-databases.mdsurvey-image-services.mdvo-services.md

solar-system-services.mddocs/

0

# Solar System Services

1

2

Services providing ephemerides, orbital elements, and physical data for solar system objects including planets, asteroids, comets, and spacecraft. These services are essential for mission planning, observational preparation, and solar system research.

3

4

## Capabilities

5

6

### JPL Horizons - Ephemerides Service

7

8

JPL Horizons provides precise ephemerides, orbital elements, and physical data for solar system objects, supporting both observational planning and spacecraft navigation.

9

10

```python { .api }

11

from astroquery.jplhorizons import Horizons

12

13

# Initialize Horizons object

14

horizons = Horizons(id: Union[str, int], location: str = '500', epochs: Union[str, List, float] = None)

15

16

def ephemerides(self, **kwargs) -> Table:

17

"""

18

Generate ephemerides for the target object.

19

20

Parameters:

21

- **kwargs: Ephemeris parameters (airmass_lessthan, solar_elongation, etc.)

22

23

Returns:

24

Table with ephemeris data (RA, Dec, distance, magnitude, etc.)

25

"""

26

27

def elements(self, **kwargs) -> Table:

28

"""

29

Get orbital elements for the target object.

30

31

Parameters:

32

- **kwargs: Element parameters (ref_plane, tp_type, etc.)

33

34

Returns:

35

Table with orbital elements

36

"""

37

38

def vectors(self, **kwargs) -> Table:

39

"""

40

Get state vectors (position and velocity) for the target.

41

42

Parameters:

43

- **kwargs: Vector parameters (ref_plane, aberrations, etc.)

44

45

Returns:

46

Table with position and velocity vectors

47

"""

48

49

# Configuration

50

from astroquery.jplhorizons import conf

51

conf.server: str # JPL Horizons server URL

52

conf.timeout: int = 60 # Connection timeout

53

```

54

55

Usage examples:

56

57

```python

58

from astroquery.jplhorizons import Horizons

59

from astropy.time import Time

60

61

# Ephemerides for Ceres from Earth

62

ceres = Horizons(id='Ceres', location='500',

63

epochs={'start': '2023-01-01', 'stop': '2023-01-31', 'step': '1d'})

64

eph = ceres.ephemerides()

65

print(eph['datetime_str', 'RA', 'DEC', 'V'])

66

67

# Orbital elements for asteroid

68

asteroid = Horizons(id='433', location='500', epochs='2023-01-01') # Eros

69

elem = asteroid.elements()

70

print(elem['e', 'a', 'incl', 'Omega', 'w', 'M'])

71

72

# State vectors for Mars from Sun

73

mars = Horizons(id='499', location='500@10', epochs='2023-01-01')

74

vectors = mars.vectors()

75

print(vectors['x', 'y', 'z', 'vx', 'vy', 'vz'])

76

77

# Comet ephemerides with constraints

78

comet = Horizons(id='1P', location='I11', epochs='2023-06-01') # Halley from Palomar

79

eph = comet.ephemerides(airmass_lessthan=2.0, solar_elongation=(30, 180))

80

```

81

82

### JPL Small Body Database - SBDB

83

84

SBDB provides comprehensive data for asteroids and comets including orbital elements, physical properties, discovery information, and close approach data.

85

86

```python { .api }

87

from astroquery.jplsbdb import SBDB

88

89

def query(targetname: str, **kwargs) -> Dict:

90

"""

91

Query JPL Small Body Database for object information.

92

93

Parameters:

94

- targetname: Name or designation of small body

95

- **kwargs: Additional query parameters

96

97

Returns:

98

Dictionary with comprehensive small body data

99

"""

100

101

def query_async(targetname: str, **kwargs) -> JobResults:

102

"""

103

Submit asynchronous query for small body data.

104

105

Parameters:

106

- targetname: Small body name or designation

107

- **kwargs: Additional parameters

108

109

Returns:

110

JobResults object for retrieving results

111

"""

112

113

# Configuration

114

from astroquery.jplsbdb import conf

115

conf.server: str # SBDB server URL

116

conf.timeout: int = 60 # Connection timeout

117

```

118

119

Usage examples:

120

121

```python

122

from astroquery.jplsbdb import SBDB

123

124

# Query asteroid Ceres

125

ceres_data = SBDB.query('Ceres')

126

print("Orbital data:", ceres_data['orbit'])

127

print("Physical data:", ceres_data['phys_par'])

128

print("Discovery:", ceres_data['discovery'])

129

130

# Query by number

131

apophis = SBDB.query('99942') # Apophis

132

print("Close approaches:", apophis['close_approaches'])

133

134

# Query comet

135

halley = SBDB.query('1P')

136

print("Orbital period:", halley['orbit']['period'])

137

```

138

139

### Minor Planet Center - MPC

140

141

MPC provides authoritative orbital data, ephemerides, and observational information for asteroids and comets, serving as the central clearinghouse for minor planet observations.

142

143

```python { .api }

144

from astroquery.mpc import MPC

145

146

def query_object(target: str, **kwargs) -> Table:

147

"""

148

Query MPC for information about a specific minor planet.

149

150

Parameters:

151

- target: Minor planet name, number, or designation

152

- **kwargs: Additional query parameters

153

154

Returns:

155

Table with MPC orbital data

156

"""

157

158

def query_objects(targets: List[str], **kwargs) -> Table:

159

"""

160

Query multiple minor planets simultaneously.

161

162

Parameters:

163

- targets: List of minor planet identifiers

164

- **kwargs: Additional parameters

165

166

Returns:

167

Table with data for all queried objects

168

"""

169

170

def get_ephemeris(target: str, location: str = '500', start: str = None,

171

step: str = '1d', number: int = 10, **kwargs) -> Table:

172

"""

173

Get ephemeris for a minor planet.

174

175

Parameters:

176

- target: Minor planet identifier

177

- location: Observer location code

178

- start: Start date

179

- step: Time step

180

- number: Number of ephemeris points

181

- **kwargs: Additional ephemeris parameters

182

183

Returns:

184

Table with ephemeris data

185

"""

186

187

def get_observations(target: str) -> Table:

188

"""

189

Get observational data for a minor planet.

190

191

Parameters:

192

- target: Minor planet identifier

193

194

Returns:

195

Table with observational records

196

"""

197

198

# Configuration

199

from astroquery.mpc import conf

200

conf.server: str # MPC server URL

201

conf.timeout: int = 60 # Connection timeout

202

```

203

204

Usage examples:

205

206

```python

207

from astroquery.mpc import MPC

208

209

# Query orbital elements

210

vesta = MPC.query_object('4') # Vesta

211

print(vesta['designation', 'a', 'e', 'i', 'H'])

212

213

# Get ephemeris

214

eph = MPC.get_ephemeris('Ceres', location='500', start='2023-01-01',

215

step='1d', number=30)

216

print(eph['Date', 'RA', 'Dec', 'V'])

217

218

# Query multiple objects

219

asteroids = MPC.query_objects(['1', '2', '4', '10']) # First 4 asteroids

220

print(asteroids['designation', 'H', 'diameter'])

221

222

# Get observational history

223

obs = MPC.get_observations('433') # Eros observations

224

print(f"Found {len(obs)} observations of Eros")

225

```

226

227

### Solar System Utilities

228

229

Additional utilities for solar system calculations including coordinate transformations, phase functions, and physical property databases.

230

231

```python { .api }

232

from astroquery.solarsystem.pds import PDS

233

from astroquery.solarsystem.jpl import JPL

234

235

def query_region(coordinates: Union[SkyCoord, str], radius: Union[Quantity, str] = None,

236

epoch: str = None) -> Table:

237

"""

238

Query for solar system objects in a sky region at a specific epoch.

239

240

Parameters:

241

- coordinates: Center coordinates

242

- radius: Search radius

243

- epoch: Observation epoch

244

245

Returns:

246

Table with solar system objects in the region

247

"""

248

249

def get_body_barycentric_posvel(body: str, time: Time) -> Tuple:

250

"""

251

Get barycentric position and velocity for solar system body.

252

253

Parameters:

254

- body: Solar system body name

255

- time: Observation time

256

257

Returns:

258

Tuple of (position, velocity) arrays

259

"""

260

261

# Configuration for solar system services

262

from astroquery.solarsystem import conf

263

conf.timeout: int = 60 # Connection timeout

264

```

265

266

Usage examples:

267

268

```python

269

from astroquery.solarsystem import MPC

270

from astropy.coordinates import SkyCoord

271

from astropy.time import Time

272

import astropy.units as u

273

274

# Find asteroids in a field

275

coords = SkyCoord('12h30m43s', '+12d23m28s', frame='icrs')

276

epoch = Time('2023-06-01')

277

asteroids_in_field = MPC.query_region(coords, radius=1*u.deg, epoch=epoch)

278

print(f"Found {len(asteroids_in_field)} asteroids in field")

279

280

# Get positions for observation planning

281

bright_asteroids = asteroids_in_field[asteroids_in_field['V'] < 18]

282

print(bright_asteroids['designation', 'RA', 'Dec', 'V', 'motion_rate'])

283

```

284

285

## Common Types

286

287

```python { .api }

288

from astropy.table import Table

289

from astropy.coordinates import SkyCoord

290

from astropy.units import Quantity

291

from astropy.time import Time

292

from typing import Union, List, Dict, Tuple, Optional

293

294

# Input types

295

target: Union[str, int] # Object identifier

296

location: str = '500' # Observer location (Earth center)

297

epochs: Union[str, List, float, Time] # Time specification

298

coordinates: Union[SkyCoord, str] # Sky coordinates

299

300

# Query parameters

301

targetname: str # Small body name/designation

302

airmass_lessthan: float # Airmass constraint

303

solar_elongation: Tuple[float, float] # Solar elongation range

304

start: str # Start date

305

step: str = '1d' # Time step

306

number: int = 10 # Number of points

307

308

# Return types

309

Table # Ephemeris/orbital data

310

Dict # Comprehensive object data

311

JobResults # Asynchronous results

312

Tuple # Position/velocity vectors

313

```