# empty_observation¶

- rubin_sim.scheduler.utils.empty_observation()¶
Return a numpy array that could be a handy observation record

- Returns:
**empty_observation**`np.array`

- The numpy fields have the following labels. These fields are required to be set to be a valid observation
- the model observatory can execute.
**RA**`float`

The Right Acension of the observation (center of the field) (Radians)

**dec**`float`

Declination of the observation (Radians)

**mjd**`float`

Modified Julian Date at the start of the observation (time shutter opens)

**exptime**`float`

Total exposure time of the visit (seconds)

**filter**`str`

The filter used. Should be one of u, g, r, i, z, y.

**rotSkyPos**`float`

The rotation angle of the camera relative to the sky E of N (Radians). Will probably be overridden if rotTelPos is not np.nan.

**rotTelPos**`float`

The rotation angle of the camera relative to the telescope (radians). Set to np.nan to force rotSkyPos to be used.

**rotSkyPos_desired**`float`

If both rotSkyPos and rotTelPos are None/NaN, then rotSkyPos_desired is used. If rotSkyPos_desired results in a valid rotTelPos, rotSkyPos is set to rotSkyPos_desired. Otherwise, something else will happen–XXX.

**nexp**`int`

Number of exposures in the visit.

**flush_by_mjd**`float`

If we hit this MJD, we should flush the queue and refill it.

**note**`str`

(optional)Usually good to set the note field so one knows which survey object generated the observation.