class rubin_sim.moving_objects.DirectObs(footprint='camera', r_fov=1.75, x_tol=5, y_tol=3, eph_mode='nbody', prelim_eph_mode='2body', eph_type='basic', obs_code='I11', eph_file=None, obs_time_col='observationStartMJD', obs_time_scale='TAI', seeing_col='seeingFwhmGeom', visit_exp_time_col='visitExposureTime', obs_ra='fieldRA', obs_dec='fieldDec', obs_rot_sky_pos='rotSkyPos', obs_degrees=True, outfile_name='lsst_obs.dat', obs_metadata='', tstep=1.0, rough_tol=10.0)

Bases: BaseObs

Generate observations of a set of moving objects: exact ephemeris at the times of each observation.

First generates observations on a rough grid and looks for observations within a specified tolerance of the actual observations; for the observations which pass this cut, generates a precise ephemeris and checks if the object is within the FOV.

footprint: `str`, optional

Specify the footprint for the FOV. Options include “camera”, “circle”, “rectangle”. ‘Camera’ means use the actual LSST camera footprint (following a rough cut with a circular FOV). Default is circular FOV.

r_fovfloat, optional

If footprint is “circular”, this is the radius of the fov (in degrees). Default 1.75 degrees.

x_tolfloat, optional

If footprint is “rectangular”, this is half of the width of the (on-sky) fov in the RA direction (in degrees). Default 5 degrees. (so size of footprint in degrees will be 10 degrees in the RA direction).

y_tolfloat, optional

If footprint is “rectangular”, this is half of the width of the fov in Declination (in degrees). Default is 3 degrees (so size of footprint in degrees will be 6 degrees in the Dec direction).

eph_mode: `str`, optional

Mode for ephemeris generation - nbody or 2body. Default is nbody.

prelim_eph_mode: str, optional

Mode for preliminary ephemeris generation, if any is done. Default is 2body.

eph_type: `str`, optional

Type of ephemerides to generate - full or basic. Full includes all values calculated by openorb; Basic includes a more basic set. Default is Basic. (this includes enough information for most standard MAF metrics).

eph_file: `str` or None, optional

The name of the planetary ephemerides file to use for ephemeris generation. Default (None) will use the default for PyOrbEphemerides.

obs_code: `str`, optional

Observatory code for ephemeris generation. Default is “I11” - Cerro Pachon.

obs_time_col: `str`, optional

Name of the time column in the obsData. Default ‘observationStartMJD’.

obs_time_scale: `str`, optional

Type of timescale for MJD (TAI or UTC currently). Default TAI.

seeing_col: `str`, optional

Name of the seeing column in the obsData. Default ‘seeingFwhmGeom’. This should be the geometric/physical seeing as it is used for the trailing loss calculation.

visit_exp_time_col: `str`, optional

Name of the visit exposure time column in the obsData. Default ‘visitExposureTime’.

obs_ra: `str`, optional

Name of the RA column in the obsData. Default ‘fieldRA’.

obs_dec: `str`, optional

Name of the Dec column in the obsData. Default ‘fieldDec’.

obs_rot_sky_pos: `str`, optional

Name of the Rotator column in the obsData. Default ‘rotSkyPos’.

obs_degrees: `bool`, optional

Whether the observational data is in degrees or radians. Default True (degrees).

outfile_namestr, optional

The output file name. Default is ‘lsst_obs.dat’.

obs_metadatastr, optional

A string that captures provenance information about the observations. For example: ‘baseline_v2.0_10yrs, MJD 59853-61677’ or ‘baseline2018a minus NES’ Default ‘’.

tstep: `float`, optional

The time between initial (rough) ephemeris generation points, in days. Default 1 day.

rough_tol: `float`, optional

The initial rough tolerance value for positions, used as a first cut to identify potential observations (in degrees). Default 10 degrees.

Methods Summary

run(orbits, obs_data)

Find and write the observations of each object to disk.

Methods Documentation

run(orbits, obs_data)

Find and write the observations of each object to disk.

For each object, generate a very rough grid of ephemeris points (typically using 2body integration). Then identify pointings in obs_data which are within


The orbits to generate ephemerides for.


The simulated pointing history data.