@@ -294,15 +294,21 @@ def to_skycoord(self) -> SkyCoord:
294294 else :
295295 return SkyCoord (self ._data , obstime = self .t , representation_type = "cartesian" )
296296
297- def to_ephem (self , observer : StateType | None = None ) -> Ephem :
297+ def to_ephem (
298+ self , observer : StateType | None = None , coords : SkyCoord | None = None
299+ ) -> Ephem :
298300 r"""Convert to an sbpy ephemeris object.
299301
300302
301303 Parameters
302304 ----------
303305 observer : `State`, optional
304- Calculate RA/longitude, Dec/latitude, distance, etc for this
305- observer.
306+ Include this observer in the metadata. If ``coords`` is ``None``,
307+ then also calculate RA/longitude, Dec/latitude, distance, etc for
308+ this observer.
309+
310+ coords : `~astropy.coordinates.SkyCoord`, optional
311+ Include these observer-based coordinates in the result.
306312
307313
308314 Returns
@@ -364,20 +370,23 @@ def to_ephem(self, observer: StateType | None = None) -> Ephem:
364370
365371 if observer is not None :
366372 meta ["observer" ] = {
367- "r" : self . observer .r ,
368- "v" : self . observer .v ,
369- "t" : self . observer .t ,
370- "frame" : self . observer .frame ,
373+ "r" : observer .r ,
374+ "v" : observer .v ,
375+ "t" : observer .t ,
376+ "frame" : observer .frame ,
371377 }
372378
373- coords = observer .observe (self )
379+ if coords is None :
380+ coords = observer .observe (self )
374381
375- # use SkyCoords 's to_table() method, which will account for when
382+ # use SkyCoord 's to_table() method, which will account for when
376383 # RA/Dec vs lon/lat are used.
377384 tab = coords .to_table ()
378385
379- # convert SkyCoords's column names to Ephem's field names
380- skycoords_to_ephem = {
386+ # convert SkyCoord's column names to Ephem's field names
387+ skycoord_to_ephem = {
388+ "pm_ra" : "ra_rate" ,
389+ "pm_lon" : "lon_rate" ,
381390 "pm_ra_cosdec" : "ra*cos(dec)_rate" ,
382391 "pm_lon_coslat" : "lon*cos(lat)_rate" ,
383392 "pm_dec" : "dec_rate" ,
@@ -386,7 +395,7 @@ def to_ephem(self, observer: StateType | None = None) -> Ephem:
386395 "radial_velocity" : "deltadot" ,
387396 }
388397 for col in tab .colnames :
389- field = skycoords_to_ephem .get (col , col )
398+ field = skycoord_to_ephem .get (col , col )
390399 data [field ] = tab [col ]
391400
392401 return Ephem .from_dict (data , meta = meta )
0 commit comments