rubin-sim 2.6.1.dev2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. batch/compile_prenight_metadata_cache.sh +34 -0
  2. batch/run_auxtel_prenight_sims.sh +163 -0
  3. batch/run_prenight_sims.sh +239 -0
  4. docs/.gitignore +3 -0
  5. docs/Makefile +32 -0
  6. docs/api.rst +25 -0
  7. docs/conf.py +8 -0
  8. docs/data-api.rst +12 -0
  9. docs/data-download.rst +70 -0
  10. docs/developer.rst +14 -0
  11. docs/documenteer.toml +11 -0
  12. docs/index.rst +22 -0
  13. docs/installation.rst +76 -0
  14. docs/introduction.rst +37 -0
  15. docs/maf-api-batches.rst +12 -0
  16. docs/maf-api-db.rst +12 -0
  17. docs/maf-api-maf-contrib.rst +12 -0
  18. docs/maf-api-maps.rst +12 -0
  19. docs/maf-api-metricbundles.rst +12 -0
  20. docs/maf-api-metrics.rst +12 -0
  21. docs/maf-api-plots.rst +12 -0
  22. docs/maf-api-run-comparison.rst +12 -0
  23. docs/maf-api-slicers.rst +12 -0
  24. docs/maf-api-stackers.rst +12 -0
  25. docs/maf-api-utils.rst +12 -0
  26. docs/maf-api.rst +22 -0
  27. docs/maf.rst +60 -0
  28. docs/metric_list.py +49 -0
  29. docs/moving-objects-api.rst +12 -0
  30. docs/moving-objects.rst +22 -0
  31. docs/phot-utils-api.rst +12 -0
  32. docs/phot-utils.rst +11 -0
  33. docs/prenight.rst +117 -0
  34. docs/protoarchive.rst +276 -0
  35. docs/satellite-constellations-api.rst +12 -0
  36. docs/satellite-constellations.rst +13 -0
  37. docs/selfcal-api.rst +12 -0
  38. docs/selfcal.rst +15 -0
  39. docs/sim-archive-api.rst +12 -0
  40. docs/skybrightness-api.rst +12 -0
  41. docs/skybrightness.rst +23 -0
  42. docs/user-guide.rst +28 -0
  43. docs/vseqarchive-architecture.rst +438 -0
  44. docs/vseqarchive-setup.rst +238 -0
  45. docs/vseqarchive.rst +225 -0
  46. rubin_sim/__init__.py +7 -0
  47. rubin_sim/data/__init__.py +1 -0
  48. rubin_sim/data/rs_download_data.py +155 -0
  49. rubin_sim/maf/__init__.py +34 -0
  50. rubin_sim/maf/batches/__init__.py +18 -0
  51. rubin_sim/maf/batches/altaz_batch.py +161 -0
  52. rubin_sim/maf/batches/col_map_dict.py +274 -0
  53. rubin_sim/maf/batches/common.py +388 -0
  54. rubin_sim/maf/batches/ddf_batch.py +728 -0
  55. rubin_sim/maf/batches/filterchange_batch.py +182 -0
  56. rubin_sim/maf/batches/glance_batch.py +591 -0
  57. rubin_sim/maf/batches/hourglass_batch.py +79 -0
  58. rubin_sim/maf/batches/info_batch.py +114 -0
  59. rubin_sim/maf/batches/metadata_batch.py +558 -0
  60. rubin_sim/maf/batches/moving_objects_batch.py +1587 -0
  61. rubin_sim/maf/batches/openshutter_batch.py +100 -0
  62. rubin_sim/maf/batches/radar_limited.py +1100 -0
  63. rubin_sim/maf/batches/science_radar_batch.py +1910 -0
  64. rubin_sim/maf/batches/skycoverage.py +155 -0
  65. rubin_sim/maf/batches/slew_batch.py +146 -0
  66. rubin_sim/maf/batches/srd_batch.py +637 -0
  67. rubin_sim/maf/batches/time_batch.py +757 -0
  68. rubin_sim/maf/batches/time_sci_batch.py +105 -0
  69. rubin_sim/maf/batches/visitdepth_batch.py +485 -0
  70. rubin_sim/maf/db/__init__.py +2 -0
  71. rubin_sim/maf/db/add_run.py +34 -0
  72. rubin_sim/maf/db/results_db.py +1074 -0
  73. rubin_sim/maf/db/tracking_db.py +332 -0
  74. rubin_sim/maf/ddf_dir.py +53 -0
  75. rubin_sim/maf/generate_ss.py +218 -0
  76. rubin_sim/maf/glance_dir.py +58 -0
  77. rubin_sim/maf/maf_contrib/__init__.py +25 -0
  78. rubin_sim/maf/maf_contrib/calculate_lsst_field_visibility_astropy.py +170 -0
  79. rubin_sim/maf/maf_contrib/depth_limited_num_gal_metric.py +109 -0
  80. rubin_sim/maf/maf_contrib/example_new_metrics.py +40 -0
  81. rubin_sim/maf/maf_contrib/filter_pair_t_gaps_metric.py +208 -0
  82. rubin_sim/maf/maf_contrib/grb_transient_metric.py +249 -0
  83. rubin_sim/maf/maf_contrib/gw170817_det_metric.py +72 -0
  84. rubin_sim/maf/maf_contrib/intervals_between_obs_metric.py +68 -0
  85. rubin_sim/maf/maf_contrib/kne_metrics.py +473 -0
  86. rubin_sim/maf/maf_contrib/lss_metrics.py +45 -0
  87. rubin_sim/maf/maf_contrib/lss_obs_strategy/__init__.py +3 -0
  88. rubin_sim/maf/maf_contrib/lss_obs_strategy/constants_for_pipeline.py +73 -0
  89. rubin_sim/maf/maf_contrib/lss_obs_strategy/galaxy_counts_metric_extended.py +205 -0
  90. rubin_sim/maf/maf_contrib/lss_obs_strategy/galaxy_counts_with_pixel_calibration.py +171 -0
  91. rubin_sim/maf/maf_contrib/lv_dwarfs/__init__.py +1 -0
  92. rubin_sim/maf/maf_contrib/lv_dwarfs/lv_dwarfs_metrics.py +388 -0
  93. rubin_sim/maf/maf_contrib/microlensing_metric.py +593 -0
  94. rubin_sim/maf/maf_contrib/num_obs_in_survey_time_overlap_metric.py +43 -0
  95. rubin_sim/maf/maf_contrib/periodic_metric.py +51 -0
  96. rubin_sim/maf/maf_contrib/periodic_star_metric.py +186 -0
  97. rubin_sim/maf/maf_contrib/periodic_star_modulation_metric.py +236 -0
  98. rubin_sim/maf/maf_contrib/presto_color_kne_pop_metric.py +441 -0
  99. rubin_sim/maf/maf_contrib/selfcal_uniformity_metric.py +171 -0
  100. rubin_sim/maf/maf_contrib/star_count_mass_metric.py +64 -0
  101. rubin_sim/maf/maf_contrib/star_count_metric.py +56 -0
  102. rubin_sim/maf/maf_contrib/star_counts/__init__.py +8 -0
  103. rubin_sim/maf/maf_contrib/star_counts/abs_mag.py +324 -0
  104. rubin_sim/maf/maf_contrib/star_counts/coords.py +99 -0
  105. rubin_sim/maf/maf_contrib/star_counts/readme.txt +1 -0
  106. rubin_sim/maf/maf_contrib/star_counts/spec_type.py +91 -0
  107. rubin_sim/maf/maf_contrib/star_counts/starcount.py +30 -0
  108. rubin_sim/maf/maf_contrib/star_counts/starcount_bymass.py +93 -0
  109. rubin_sim/maf/maf_contrib/star_counts/stellardensity.py +59 -0
  110. rubin_sim/maf/maf_contrib/static_probes_fom_summary_metric.py +386 -0
  111. rubin_sim/maf/maf_contrib/tdes_pop_metric.py +362 -0
  112. rubin_sim/maf/maf_contrib/transient_ascii_sed_metric.py +652 -0
  113. rubin_sim/maf/maf_contrib/triplet_metric.py +156 -0
  114. rubin_sim/maf/maf_contrib/var_depth_metric.py +157 -0
  115. rubin_sim/maf/maf_contrib/xrb_metrics.py +523 -0
  116. rubin_sim/maf/maf_contrib/young_stellar_objects_metric.py +200 -0
  117. rubin_sim/maf/maf_night_report.py +200 -0
  118. rubin_sim/maf/make_fbs_tracking_db.py +90 -0
  119. rubin_sim/maf/maps/__init__.py +8 -0
  120. rubin_sim/maf/maps/base_map.py +72 -0
  121. rubin_sim/maf/maps/create_gaia_density_map.py +158 -0
  122. rubin_sim/maf/maps/dust_map.py +66 -0
  123. rubin_sim/maf/maps/dust_map_3d.py +190 -0
  124. rubin_sim/maf/maps/ebv_3d_hp.py +170 -0
  125. rubin_sim/maf/maps/ebv_hp.py +64 -0
  126. rubin_sim/maf/maps/gal_coords_map.py +22 -0
  127. rubin_sim/maf/maps/galactic_plane_priority_maps.py +210 -0
  128. rubin_sim/maf/maps/stellar_density_map.py +73 -0
  129. rubin_sim/maf/maps/trilegal_map.py +82 -0
  130. rubin_sim/maf/metadata_dir.py +90 -0
  131. rubin_sim/maf/metric_bundles/__init__.py +3 -0
  132. rubin_sim/maf/metric_bundles/metric_bundle.py +816 -0
  133. rubin_sim/maf/metric_bundles/metric_bundle_group.py +834 -0
  134. rubin_sim/maf/metric_bundles/mo_metric_bundle.py +646 -0
  135. rubin_sim/maf/metrics/__init__.py +52 -0
  136. rubin_sim/maf/metrics/agn_time_lag_metric.py +118 -0
  137. rubin_sim/maf/metrics/agnstructure.py +141 -0
  138. rubin_sim/maf/metrics/area_summary_metrics.py +120 -0
  139. rubin_sim/maf/metrics/base_metric.py +215 -0
  140. rubin_sim/maf/metrics/brown_dwarf_metric.py +162 -0
  141. rubin_sim/maf/metrics/cadence_metrics.py +400 -0
  142. rubin_sim/maf/metrics/calibration_metrics.py +618 -0
  143. rubin_sim/maf/metrics/chip_vendor_metric.py +43 -0
  144. rubin_sim/maf/metrics/color_slope_metrics.py +189 -0
  145. rubin_sim/maf/metrics/cosmology_summary_metrics.py +1212 -0
  146. rubin_sim/maf/metrics/coverage_metric.py +48 -0
  147. rubin_sim/maf/metrics/crowding_metric.py +255 -0
  148. rubin_sim/maf/metrics/cumulative_metric.py +46 -0
  149. rubin_sim/maf/metrics/dcr_metric.py +93 -0
  150. rubin_sim/maf/metrics/exgal_m5.py +57 -0
  151. rubin_sim/maf/metrics/fft_metric.py +27 -0
  152. rubin_sim/maf/metrics/galactic_plane_metrics.py +375 -0
  153. rubin_sim/maf/metrics/galplane_time_sampling_metrics.py +236 -0
  154. rubin_sim/maf/metrics/hourglass_metric.py +130 -0
  155. rubin_sim/maf/metrics/incremental_template_metric.py +255 -0
  156. rubin_sim/maf/metrics/kuiper_metrics.py +26 -0
  157. rubin_sim/maf/metrics/mo_metrics.py +1496 -0
  158. rubin_sim/maf/metrics/mo_summary_metrics.py +464 -0
  159. rubin_sim/maf/metrics/night_pointing_metric.py +70 -0
  160. rubin_sim/maf/metrics/optimal_m5_metric.py +94 -0
  161. rubin_sim/maf/metrics/pair_metric.py +69 -0
  162. rubin_sim/maf/metrics/periodic_detect_metric.py +133 -0
  163. rubin_sim/maf/metrics/phase_gap_metric.py +172 -0
  164. rubin_sim/maf/metrics/qso_number_counts_metric.py +138 -0
  165. rubin_sim/maf/metrics/scaling_metrics.py +148 -0
  166. rubin_sim/maf/metrics/schedview_metrics.py +39 -0
  167. rubin_sim/maf/metrics/season_metrics.py +344 -0
  168. rubin_sim/maf/metrics/simple_metrics.py +546 -0
  169. rubin_sim/maf/metrics/sky_sat_metric.py +18 -0
  170. rubin_sim/maf/metrics/sn_cadence_metric.py +104 -0
  171. rubin_sim/maf/metrics/sn_n_sn_metric.py +1364 -0
  172. rubin_sim/maf/metrics/sn_sl_metric.py +216 -0
  173. rubin_sim/maf/metrics/sn_snr_metric.py +715 -0
  174. rubin_sim/maf/metrics/snr_weight.py +24 -0
  175. rubin_sim/maf/metrics/star_density.py +77 -0
  176. rubin_sim/maf/metrics/string_count_metric.py +95 -0
  177. rubin_sim/maf/metrics/summary_metrics.py +201 -0
  178. rubin_sim/maf/metrics/surfb_metric.py +175 -0
  179. rubin_sim/maf/metrics/technical_metrics.py +271 -0
  180. rubin_sim/maf/metrics/tgaps.py +412 -0
  181. rubin_sim/maf/metrics/tomography_models.py +2034 -0
  182. rubin_sim/maf/metrics/transient_metrics.py +268 -0
  183. rubin_sim/maf/metrics/uniformity_metrics.py +418 -0
  184. rubin_sim/maf/metrics/use_metrics.py +55 -0
  185. rubin_sim/maf/metrics/vector_metrics.py +190 -0
  186. rubin_sim/maf/metrics/visit_groups_metric.py +341 -0
  187. rubin_sim/maf/metrics/weak_lensing_systematics_metric.py +210 -0
  188. rubin_sim/maf/plots/__init__.py +14 -0
  189. rubin_sim/maf/plots/hg_plotters.py +1117 -0
  190. rubin_sim/maf/plots/hourglass_plotters.py +120 -0
  191. rubin_sim/maf/plots/mo_plotters.py +358 -0
  192. rubin_sim/maf/plots/nd_plotters.py +220 -0
  193. rubin_sim/maf/plots/neo_distance_plotter.py +140 -0
  194. rubin_sim/maf/plots/night_pointing_plotter.py +96 -0
  195. rubin_sim/maf/plots/oned_plotters.py +114 -0
  196. rubin_sim/maf/plots/perceptual_rainbow.py +30 -0
  197. rubin_sim/maf/plots/plot_handler.py +766 -0
  198. rubin_sim/maf/plots/skyproj_plotters.py +540 -0
  199. rubin_sim/maf/plots/spatial_plotters.py +1029 -0
  200. rubin_sim/maf/plots/special_plotters.py +256 -0
  201. rubin_sim/maf/plots/two_d_plotters.py +177 -0
  202. rubin_sim/maf/plots/xyplotter.py +37 -0
  203. rubin_sim/maf/run_comparison/__init__.py +5 -0
  204. rubin_sim/maf/run_comparison/archive.py +584 -0
  205. rubin_sim/maf/run_comparison/gather_summaries.py +125 -0
  206. rubin_sim/maf/run_comparison/microlensing_compare.py +514 -0
  207. rubin_sim/maf/run_comparison/radar_plot.py +202 -0
  208. rubin_sim/maf/run_comparison/summary_plots.py +710 -0
  209. rubin_sim/maf/run_moving_calc.py +239 -0
  210. rubin_sim/maf/run_moving_fractions.py +128 -0
  211. rubin_sim/maf/run_moving_join.py +103 -0
  212. rubin_sim/maf/run_selfcal_metric.py +92 -0
  213. rubin_sim/maf/scimaf_dir.py +87 -0
  214. rubin_sim/maf/show_maf.py +227 -0
  215. rubin_sim/maf/slicers/__init__.py +13 -0
  216. rubin_sim/maf/slicers/base_slicer.py +513 -0
  217. rubin_sim/maf/slicers/base_spatial_slicer.py +202 -0
  218. rubin_sim/maf/slicers/healpix_sdss_slicer.py +118 -0
  219. rubin_sim/maf/slicers/healpix_slicer.py +189 -0
  220. rubin_sim/maf/slicers/healpix_subset_slicer.py +293 -0
  221. rubin_sim/maf/slicers/hourglass_slicer.py +37 -0
  222. rubin_sim/maf/slicers/mo_slicer.py +171 -0
  223. rubin_sim/maf/slicers/movie_slicer.py +288 -0
  224. rubin_sim/maf/slicers/nd_slicer.py +147 -0
  225. rubin_sim/maf/slicers/one_d_slicer.py +210 -0
  226. rubin_sim/maf/slicers/time_interval_slicers.py +283 -0
  227. rubin_sim/maf/slicers/uni_slicer.py +57 -0
  228. rubin_sim/maf/slicers/user_points_slicer.py +141 -0
  229. rubin_sim/maf/stackers/__init__.py +13 -0
  230. rubin_sim/maf/stackers/base_stacker.py +221 -0
  231. rubin_sim/maf/stackers/coord_stackers.py +224 -0
  232. rubin_sim/maf/stackers/date_stackers.py +192 -0
  233. rubin_sim/maf/stackers/general_stackers.py +683 -0
  234. rubin_sim/maf/stackers/get_col_info.py +104 -0
  235. rubin_sim/maf/stackers/label_stackers.py +114 -0
  236. rubin_sim/maf/stackers/m5_optimal_stacker.py +126 -0
  237. rubin_sim/maf/stackers/mo_phase.py +265 -0
  238. rubin_sim/maf/stackers/mo_stackers.py +486 -0
  239. rubin_sim/maf/stackers/n_follow_stacker.py +187 -0
  240. rubin_sim/maf/stackers/neo_dist_stacker.py +126 -0
  241. rubin_sim/maf/stackers/sdss_stackers.py +30 -0
  242. rubin_sim/maf/stackers/sn_stacker.py +152 -0
  243. rubin_sim/maf/stackers/teff_stacker.py +154 -0
  244. rubin_sim/maf/utils/__init__.py +6 -0
  245. rubin_sim/maf/utils/astrometry_utils.py +93 -0
  246. rubin_sim/maf/utils/generate_fov_map.py +58 -0
  247. rubin_sim/maf/utils/get_date_version.py +28 -0
  248. rubin_sim/maf/utils/maf_utils.py +212 -0
  249. rubin_sim/maf/utils/opsim_utils.py +259 -0
  250. rubin_sim/maf/utils/output_utils.py +34 -0
  251. rubin_sim/maf/utils/sn_n_sn_utils.py +894 -0
  252. rubin_sim/maf/utils/sn_utils.py +369 -0
  253. rubin_sim/maf/utils/stellar_mags.py +197 -0
  254. rubin_sim/maf/web/__init__.py +2 -0
  255. rubin_sim/maf/web/favicon.ico +0 -0
  256. rubin_sim/maf/web/maf_run_results.py +645 -0
  257. rubin_sim/maf/web/maf_tracking.py +139 -0
  258. rubin_sim/maf/web/sorttable.js +496 -0
  259. rubin_sim/maf/web/templates/allmetricresults.html +72 -0
  260. rubin_sim/maf/web/templates/configs.html +28 -0
  261. rubin_sim/maf/web/templates/macros.html +243 -0
  262. rubin_sim/maf/web/templates/master.html +294 -0
  263. rubin_sim/maf/web/templates/metricselect.html +91 -0
  264. rubin_sim/maf/web/templates/multicolor.html +147 -0
  265. rubin_sim/maf/web/templates/results.html +82 -0
  266. rubin_sim/maf/web/templates/runselect.html +58 -0
  267. rubin_sim/maf/web/templates/stats.html +50 -0
  268. rubin_sim/moving_objects/__init__.py +8 -0
  269. rubin_sim/moving_objects/base_obs.py +468 -0
  270. rubin_sim/moving_objects/cheby_fits.py +689 -0
  271. rubin_sim/moving_objects/cheby_values.py +231 -0
  272. rubin_sim/moving_objects/chebyshev_utils.py +365 -0
  273. rubin_sim/moving_objects/direct_obs.py +376 -0
  274. rubin_sim/moving_objects/make_lsst_obs.py +282 -0
  275. rubin_sim/moving_objects/ooephemerides.py +643 -0
  276. rubin_sim/moving_objects/orbits.py +507 -0
  277. rubin_sim/moving_objects/pre_generate.py +37 -0
  278. rubin_sim/moving_objects/utils.py +61 -0
  279. rubin_sim/phot_utils/__init__.py +7 -0
  280. rubin_sim/phot_utils/bandpass.py +425 -0
  281. rubin_sim/phot_utils/photometric_parameters.py +449 -0
  282. rubin_sim/phot_utils/physical_parameters.py +50 -0
  283. rubin_sim/phot_utils/predicted_zeropoints.py +245 -0
  284. rubin_sim/phot_utils/sed.py +1773 -0
  285. rubin_sim/phot_utils/sed_utils.py +52 -0
  286. rubin_sim/phot_utils/signaltonoise.py +695 -0
  287. rubin_sim/phot_utils/spectral_resampling.py +161 -0
  288. rubin_sim/satellite_constellations/__init__.py +3 -0
  289. rubin_sim/satellite_constellations/basis_function.py +40 -0
  290. rubin_sim/satellite_constellations/model_observatory.py +157 -0
  291. rubin_sim/satellite_constellations/sat_utils.py +488 -0
  292. rubin_sim/selfcal/__init__.py +4 -0
  293. rubin_sim/selfcal/generate_catalog.py +188 -0
  294. rubin_sim/selfcal/offsets.py +119 -0
  295. rubin_sim/selfcal/solver.py +143 -0
  296. rubin_sim/selfcal/star_tools.py +42 -0
  297. rubin_sim/sim_archive/__init__.py +14 -0
  298. rubin_sim/sim_archive/conda_packages.py +65 -0
  299. rubin_sim/sim_archive/future_vsarch.py +480 -0
  300. rubin_sim/sim_archive/make_snapshot.py +255 -0
  301. rubin_sim/sim_archive/prenight.py +216 -0
  302. rubin_sim/sim_archive/prenightindex.py +229 -0
  303. rubin_sim/sim_archive/prototype.py +1029 -0
  304. rubin_sim/sim_archive/sim_archive.py +680 -0
  305. rubin_sim/sim_archive/tempdb.py +56 -0
  306. rubin_sim/sim_archive/util.py +146 -0
  307. rubin_sim/sim_archive/vseqarchive.py +965 -0
  308. rubin_sim/sim_archive/vseqmetadata.py +1721 -0
  309. rubin_sim/skybrightness/__init__.py +5 -0
  310. rubin_sim/skybrightness/allsky_db.py +93 -0
  311. rubin_sim/skybrightness/data/ESO_Spectra/eso_tools.py +505 -0
  312. rubin_sim/skybrightness/data/solarSpec/package.py +22 -0
  313. rubin_sim/skybrightness/generate_hdf5.py +243 -0
  314. rubin_sim/skybrightness/interp_components.py +798 -0
  315. rubin_sim/skybrightness/sky_model.py +771 -0
  316. rubin_sim/skybrightness/twilight_func.py +83 -0
  317. rubin_sim/skybrightness/utils.py +91 -0
  318. rubin_sim-2.6.1.dev2.dist-info/METADATA +95 -0
  319. rubin_sim-2.6.1.dev2.dist-info/RECORD +387 -0
  320. rubin_sim-2.6.1.dev2.dist-info/WHEEL +5 -0
  321. rubin_sim-2.6.1.dev2.dist-info/entry_points.txt +24 -0
  322. rubin_sim-2.6.1.dev2.dist-info/licenses/LICENSE +674 -0
  323. rubin_sim-2.6.1.dev2.dist-info/top_level.txt +5 -0
  324. sql/make_vseqmeta.sql +251 -0
  325. tests/data/test_data.py +26 -0
  326. tests/data/test_ddf_grid.py +17 -0
  327. tests/maf/test_3x2fom.py +68 -0
  328. tests/maf/test_archive.py +162 -0
  329. tests/maf/test_basemetrics.py +99 -0
  330. tests/maf/test_batchcommon.py +36 -0
  331. tests/maf/test_batches.py +159 -0
  332. tests/maf/test_cadencemetrics.py +388 -0
  333. tests/maf/test_calibrationmetrics.py +242 -0
  334. tests/maf/test_color_slopes.py +71 -0
  335. tests/maf/test_cosmology_summaries.py +20 -0
  336. tests/maf/test_gathersummaries.py +48 -0
  337. tests/maf/test_healpixslicer.py +439 -0
  338. tests/maf/test_healpixsubsetslicer.py +273 -0
  339. tests/maf/test_hgplotters.py +145 -0
  340. tests/maf/test_hourglassmetric.py +33 -0
  341. tests/maf/test_io.py +187 -0
  342. tests/maf/test_json.py +169 -0
  343. tests/maf/test_maps.py +199 -0
  344. tests/maf/test_metricbundle.py +69 -0
  345. tests/maf/test_mometrics.py +422 -0
  346. tests/maf/test_movieslicer.py +216 -0
  347. tests/maf/test_ndslicer.py +240 -0
  348. tests/maf/test_neodistanceplotter.py +41 -0
  349. tests/maf/test_onedslicer.py +245 -0
  350. tests/maf/test_opsimutils.py +80 -0
  351. tests/maf/test_plotters.py +134 -0
  352. tests/maf/test_resultsdb.py +145 -0
  353. tests/maf/test_schedviewmetrics.py +14 -0
  354. tests/maf/test_simplemetrics.py +200 -0
  355. tests/maf/test_snmetrics.py +335 -0
  356. tests/maf/test_snmetrics_nsn.py +123 -0
  357. tests/maf/test_stackers.py +423 -0
  358. tests/maf/test_stellarmags.py +50 -0
  359. tests/maf/test_stringcount.py +26 -0
  360. tests/maf/test_summary_plots.py +197 -0
  361. tests/maf/test_summarymetrics.py +82 -0
  362. tests/maf/test_technicalmetrics.py +267 -0
  363. tests/maf/test_templatemetrics.py +86 -0
  364. tests/maf/test_timeintervalslicers.py +97 -0
  365. tests/maf/test_trackingdb.py +88 -0
  366. tests/maf/test_unislicer.py +116 -0
  367. tests/maf/test_vectormetrics.py +225 -0
  368. tests/maf/test_visitgroupsmetric.py +181 -0
  369. tests/moving_objects/test_camera.py +39 -0
  370. tests/moving_objects/test_chebyfits.py +188 -0
  371. tests/moving_objects/test_chebyshevutils.py +76 -0
  372. tests/moving_objects/test_chebyvalues.py +245 -0
  373. tests/moving_objects/test_ephemerides.py +219 -0
  374. tests/moving_objects/test_orbits.py +170 -0
  375. tests/moving_objects/test_sed_data.py +61 -0
  376. tests/phot_utils/test_approximatebandpasses.py +91 -0
  377. tests/phot_utils/test_photometricparameters.py +268 -0
  378. tests/phot_utils/test_photometry.py +61 -0
  379. tests/phot_utils/test_predicted_zeropoints.py +53 -0
  380. tests/phot_utils/test_read_bandpasses.py +29 -0
  381. tests/phot_utils/test_sed.py +368 -0
  382. tests/phot_utils/test_snr.py +370 -0
  383. tests/satellite_constellations/test_satellites.py +36 -0
  384. tests/sim_archive/test_make_snapshot.py +24 -0
  385. tests/sim_archive/test_prototype_sim_archive.py +204 -0
  386. tests/sim_archive/test_vseqarchive.py +947 -0
  387. tests/skybrightness/test_skymodel.py +359 -0
docs/installation.rst ADDED
@@ -0,0 +1,76 @@
1
+ .. py:currentmodule:: rubin_sim
2
+
3
+ .. _installation:
4
+
5
+ ############
6
+ Installation
7
+ ############
8
+
9
+ Quick Installation
10
+ ------------------
11
+
12
+ Installation from PyPI:
13
+
14
+ ::
15
+
16
+ pip install rubin-sim
17
+ scheduler_download_data
18
+ rs_download_data
19
+
20
+ Note: pip installation of rubin-sim will lack the JPL data (DE405, etc.)
21
+ that is needed to actually run ``pyoorb``, used in ``rubin_sim.moving_objects``, as this is not currently available from PyPI.
22
+ Please see the `oorb installation instructions <https://github.com/oorb/oorb/wiki/Installation>`_ for more information.
23
+
24
+ or from conda-forge:
25
+
26
+ ::
27
+
28
+ conda install -c conda-forge rubin-sim
29
+ scheduler_download_data
30
+ rs_download_data
31
+
32
+ The `scheduler_download_data` and `rs_download_data` commands will
33
+ download data files to the default location of `~/rubin_sim_data`.
34
+ To store the data elsewhere, see instructions at
35
+ :ref:`Data Download<data-download>`.
36
+
37
+ For Developer Use
38
+ -----------------
39
+
40
+ First, clone the `rubin_sim <https://github.com/lsst/rubin_sim>`_ repository:
41
+
42
+ ::
43
+
44
+ git clone git@github.com:lsst/rubin_sim.git
45
+ cd rubin_sim
46
+ conda create --channel conda-forge --name rubin-sim --file requirements.txt python=3.12
47
+ conda activate rubin-sim
48
+ conda install -c conda-forge --file=test-requirements.txt # Optional test requirements
49
+ pip install -e . --no-deps
50
+ scheduler_download_data
51
+ rs_download_data
52
+
53
+ The `scheduler_download_data` and `rs_download_data` commands will
54
+ download data files to the default location of `~/rubin_sim_data`.
55
+ To store the data elsewhere, see instructions at
56
+ :ref:`Data Download<data-download>`.
57
+
58
+ Note conda may override previous installs of
59
+ `rubin_scheduler`, in which case one can uninstall the conda version
60
+ and re-run `pip install -e . --no-deps` from the needed git repo directory.
61
+
62
+ Building Documentation
63
+ ----------------------
64
+
65
+ An online copy of the documentation is available at https://rubin-sim.lsst.io,
66
+ however building a local copy can be done as follows:
67
+
68
+ ::
69
+
70
+ pip install "documenteer[guide]"
71
+ cd docs
72
+ make html
73
+
74
+
75
+ The root of the local documentation will then be ``docs/_build/html/index.html``.
76
+
docs/introduction.rst ADDED
@@ -0,0 +1,37 @@
1
+ .. py:currentmodule:: rubin_sim
2
+
3
+ .. _introduction:
4
+
5
+ ############
6
+ Introduction
7
+ ############
8
+
9
+ The `Legacy Survey of Space and Time <http://www.lsst.org>`_ (LSST)
10
+ is anticipated to encompass around 2 million observations spanning a decade,
11
+ averaging 800 visits per night. The ``rubin_sim`` package was built to help
12
+ understand the predicted performance of the LSST.
13
+
14
+ The :ref:`Phot Utils<phot-utils>` module provides synthetic photometry
15
+ using provided throughput curves based on current predicted performance.
16
+
17
+ The :ref:`skybrightness<skybrightness>` module incorporates the ESO
18
+ sky model, modified to match measured sky conditions at the LSST site,
19
+ including an addition of a model for twilight skybrightness. This is used
20
+ to generate the pre-calculated skybrightness data used in
21
+ `rubin_scheduler <rubin-scheduler.lsst.io/skybrightness-pre.html>`_.
22
+
23
+ The :ref:`Moving Objects<moving-objects>` module provides a way to create
24
+ synthetic observations of moving objects, based on how they would appear in
25
+ pointing databases ("opsims") created by
26
+ `rubin_scheduler <rubin-scheduler.lsst.io>`_.
27
+
28
+ One of the major goals for ``rubin_sim`` is to enable efficient and
29
+ scientifically varied evaluation of the LSST survey strategy and progress,
30
+ by providing a framework to enable these metrics to run in a
31
+ standardized way on opsim outputs.
32
+ The :ref:`Metrics Analysis Framework<maf>` module provides these tools.
33
+
34
+ .. toctree::
35
+ :maxdepth: 2
36
+
37
+ User Guide <user-guide>
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-batches:
4
+
5
+ =======
6
+ Batches
7
+ =======
8
+
9
+ .. automodule:: rubin_sim.maf.batches
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
docs/maf-api-db.rst ADDED
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-db:
4
+
5
+ ==============
6
+ Databases (db)
7
+ ==============
8
+
9
+ .. automodule:: rubin_sim.maf.db
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-maf-contrib:
4
+
5
+ ===========
6
+ Maf Contrib
7
+ ===========
8
+
9
+ .. automodule:: rubin_sim.maf.maf_contrib
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
docs/maf-api-maps.rst ADDED
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-maps:
4
+
5
+ =======
6
+ Maps
7
+ =======
8
+
9
+ .. automodule:: rubin_sim.maf.maps
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-metricbundles:
4
+
5
+ ==============
6
+ Metric Bundles
7
+ ==============
8
+
9
+ .. automodule:: rubin_sim.maf.metric_bundles
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-metrics:
4
+
5
+ =======
6
+ Metrics
7
+ =======
8
+
9
+ .. automodule:: rubin_sim.maf.metrics
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
docs/maf-api-plots.rst ADDED
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-plots:
4
+
5
+ =======
6
+ Plots
7
+ =======
8
+
9
+ .. automodule:: rubin_sim.maf.plots
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-run-comparison:
4
+
5
+ ==============
6
+ Run Comparison
7
+ ==============
8
+
9
+ .. automodule:: rubin_sim.maf.run_comparison
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-slicers:
4
+
5
+ =======
6
+ Slicers
7
+ =======
8
+
9
+ .. automodule:: rubin_sim.maf.slicers
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-stackers:
4
+
5
+ ========
6
+ Stackers
7
+ ========
8
+
9
+ .. automodule:: rubin_sim.maf.stackers
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
docs/maf-api-utils.rst ADDED
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api-utils:
4
+
5
+ =======
6
+ Utils
7
+ =======
8
+
9
+ .. automodule:: rubin_sim.maf.utils
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
docs/maf-api.rst ADDED
@@ -0,0 +1,22 @@
1
+ .. py:currentmodule:: rubin_sim.maf
2
+
3
+ .. _maf-api:
4
+
5
+ =======
6
+ MAF API
7
+ =======
8
+
9
+
10
+ .. toctree::
11
+
12
+ Batches <maf-api-batches>
13
+ Databases (db) <maf-api-db>
14
+ Maps <maf-api-maps>
15
+ Maf Contrib <maf-api-maf-contrib>
16
+ Metrics <maf-api-metrics>
17
+ MetricBundles <maf-api-metricbundles>
18
+ Plots <maf-api-plots>
19
+ Run Comparison <maf-api-run-comparison>
20
+ Slicers <maf-api-slicers>
21
+ Stackers <maf-api-stackers>
22
+ Utils <maf-api-utils>
docs/maf.rst ADDED
@@ -0,0 +1,60 @@
1
+ .. py:currentmodule:: rubin_sim
2
+
3
+ .. _maf:
4
+
5
+ ################################
6
+ Metrics Analysis Framework (MAF)
7
+ ################################
8
+
9
+ The ``rubin_sim.maf`` Metrics Analysis Framework (MAF) module is
10
+ intended to make it easier to write code to analyze our simulated LSST
11
+ pointing histories (often called "opsim outputs").
12
+
13
+ As an example: suppose one wanted to evaluate the LSST's performance in
14
+ regards to
15
+ characterizing a particular kind of periodic variable in a given simulated
16
+ survey. As such, you might have particular requirements on the parameters
17
+ of the observations at each point in RA/Dec space -- MAF will handle getting
18
+ the pointing history from the OpSim output database, splitting them up into
19
+ the observations relevant for each RA/Dec point, feeding these observations
20
+ into your contributed piece of code, and then consolidating the results of
21
+ that evaluation from each RA/Dec location into a map over the entire sky and
22
+ presenting those results in a variety of formats (a sky map visualization,
23
+ an area-weighted histogram, a power spectrum, or -- with a small bit of additional
24
+ analysis -- statistical summaries over the observed sky, such as the mean,
25
+ median, RMS, minimum or maximum values). In this case, you would only have
26
+ to write a small piece of code (a *metric*) that makes the actual evaluation,
27
+ assuming you have the relevant observations for a single piece of sky.
28
+ A simple list of all :ref:`available metrics <maf-metric-list>` is available.
29
+
30
+ A concrete example of this can be found in the KNeMetric - which is illustrated
31
+ in depth in a notebook in the github repo at `lsst/rubin_sim_notebooks
32
+ <https://github.com/lsst/rubin_sim_notebooks/blob/main/maf/science/KNe%20Metric.ipynb>`_
33
+ (see the maf/science directory).
34
+
35
+ MAF also provides lots of ready to use :ref:`metrics <maf-metric-list>`, as well as
36
+ a variety of ways to subdivide the pointing histories using :py:obj:`rubin_sim.maf.slicers`
37
+ -- a typical use case is to evaluate a quantity at all points over the sky, which would use
38
+ the :py:class:`rubin_sim.maf.slicers.HealpixSlicer` slicer, but there are
39
+ other spatially based slicers, such as the
40
+ :py:class:`rubin_sim.maf.slicers.UserPointsSlicer` which lets a user define
41
+ specific points at which to evaluate a given metric. Some metrics should be
42
+ evaluated on a basis which depends on a single data value, rather than spatially
43
+ across the sky (such as evaluating the time between filter changes per night, or
44
+ counting the number of observations per airmass bin) -- these typically need a
45
+ :py:class:`rubin_sim.maf.slicers.OneDSlicer`. Finally, there are metrics should
46
+ be applied to all of the observations at once, rather than subdividing them on
47
+ any basis; these should use the :py:class:`rubin_sim.maf.slicers.UniSlicer`.
48
+ Each slicer pairs with different plotting functions automatically, although
49
+ this is user-adjustable. MAF provides the framework to combine metrics, slicers
50
+ these plotting functions, and methods to save and restore the results of
51
+ each metric calculation.
52
+
53
+ For more examples of using MAF, please see our `tutorials`_.
54
+
55
+ .. _tutorials: https://github.com/lsst/rubin_sim_notebooks/tree/main/maf
56
+
57
+
58
+ .. toctree::
59
+
60
+ List of Available Metrics <maf-metric-list>
docs/metric_list.py ADDED
@@ -0,0 +1,49 @@
1
+ __all__ = ("make_metric_list",)
2
+
3
+ import inspect
4
+
5
+ import rubin_sim.maf.maf_contrib as maf_contrib
6
+ import rubin_sim.maf.metrics as metrics
7
+
8
+
9
+ def make_metric_list(outfile):
10
+ f = open(outfile, "w")
11
+
12
+ # Print header
13
+ print(".. py:currentmodule:: rubin_sim.maf", file=f)
14
+ print("", file=f)
15
+ print(".. _maf-metric-list:", file=f)
16
+ print("", file=f)
17
+ print("################################", file=f)
18
+ print("rubin_sim MAF: Available metrics", file=f)
19
+ print("################################", file=f)
20
+
21
+ print(" ", file=f)
22
+
23
+ print("Core LSST MAF metrics", file=f)
24
+ print("^^^^^^^^^^^^^^^^^^^^^", file=f)
25
+ print(" ", file=f)
26
+ for name, obj in inspect.getmembers(metrics):
27
+ if inspect.isclass(obj):
28
+ modname = inspect.getmodule(obj).__name__
29
+ if modname.startswith("rubin_sim.maf.metrics"):
30
+ link = f":py:class:`~rubin_sim.maf.metrics.{name}` "
31
+ simpledoc = inspect.getdoc(obj).split("\n")[0]
32
+ print(f"- {link} \n \t {simpledoc}", file=f)
33
+ print(" ", file=f)
34
+
35
+ print("Contributed maf_contrib metrics", file=f)
36
+ print("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", file=f)
37
+ print(" ", file=f)
38
+ for name, obj in inspect.getmembers(maf_contrib):
39
+ if inspect.isclass(obj):
40
+ modname = inspect.getmodule(obj).__name__
41
+ if modname.startswith("rubin_sim.maf.maf_contrib") and name.endswith("Metric"):
42
+ link = f":py:class:`~rubin_sim.maf.maf_contrib.{name}` "
43
+ simpledoc = inspect.getdoc(obj).split("\n")[0]
44
+ print(f"- {link} \n \t {simpledoc}", file=f)
45
+ print(" ", file=f)
46
+
47
+
48
+ if __name__ == "__main__":
49
+ make_metric_list("maf-metric-list.rst")
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.moving_objects
2
+
3
+ .. _moving-objects-api:
4
+
5
+ ==================
6
+ Moving Objects API
7
+ ==================
8
+
9
+ .. automodule:: rubin_sim.moving_objects
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
@@ -0,0 +1,22 @@
1
+ .. py:currentmodule:: rubin_sim
2
+
3
+ .. _moving-objects:
4
+
5
+
6
+ ##############
7
+ Moving Objects
8
+ ##############
9
+
10
+ The ``rubin_sim.movingObjects`` module provides tools to
11
+ generate simulated ephemerides of a population of
12
+ small bodies throughout an LSST pointing history.
13
+ These ephemerides are typically used for further
14
+ analysis in :ref:`MAF <maf>` to evaluate the effect of
15
+ survey strategy on various populations
16
+ of Solar System objects.
17
+
18
+ There are several populations available in the "orbits" directory of
19
+ $RUBIN_SIM_DATA_DIR. Many of these populations were contributed or
20
+ enhanced by the LSST Solar System Science Collaboration (SSSC).
21
+ Further documentation on these orbital populations is available in the
22
+ `LSST-SSSC "SSSC_test_populations" <https://github.com/lsst-sssc/SSSC_test_populations_gitlfs/tree/master/MAF_TEST>`_ repo.
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.phot_utils
2
+
3
+ .. _phot-utils-api:
4
+
5
+ ==============
6
+ Phot Utils API
7
+ ==============
8
+
9
+ .. automodule:: rubin_sim.phot_utils
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
docs/phot-utils.rst ADDED
@@ -0,0 +1,11 @@
1
+ .. py:currentmodule:: rubin_sim
2
+
3
+ .. _phot-utils:
4
+
5
+ ##########
6
+ Phot Utils
7
+ ##########
8
+
9
+ The ``rubin_sim.photUtils`` module provides synthetic photometry
10
+ and SNR calculation methods for Rubin. There are expected throughput
11
+ curves available in the 'throughputs' directory of $RUBIN_SIM_DATA_DIR.
docs/prenight.rst ADDED
@@ -0,0 +1,117 @@
1
+ .. py:currentmodule:: rubin_sim.data
2
+
3
+ .. _prenight:
4
+
5
+ ============================================================
6
+ Running pre-night simulations and adding them to the archive
7
+ ============================================================
8
+
9
+ Introduction
10
+ ============
11
+
12
+ Prenight simulation tools generate simulations of a few nights of observing, and add them to an archive.
13
+ These simulations can then be seen by `schedview`'s reporting tools, and used to generate pre-night brifing reports.
14
+ Normally, these simulation are run by submitting the `batch/run_prenight_sims.sh` script as a batch job, either by hand or using a cron job.
15
+ For more fine-grained control, the simulations and be run and added to the archive using lower-level tools,
16
+
17
+ Running a standard set of pre-night simulations
18
+ ===============================================
19
+
20
+ The standard set of pre-night simulatios can be run by calling the `batch/run_prenight_sims.sh` shell (for SV) or `batch/run_auxtel_prenight_sims.sh` (for auxtel) scripts.
21
+
22
+ If `RUBIN_SIM_DIR` is the `rubin_sim` root director, it can be called thus::
23
+
24
+ ${RUBIN_SIM_DIR}/batch/run_prenight_sims.sh
25
+
26
+ or thus::
27
+
28
+ ${RUBIN_SIM_DIR}/batch/run_auxtel_prenight_sims.sh auxtel
29
+
30
+ or they can be submitted as a batch job to slurm.
31
+ At the USDF, there is an installation of `rubin_sim` at `/sdf/data/rubin/shared/scheduler/packages/rubin_sim` such that the commands become::
32
+
33
+ /sdf/data/rubin/shared/scheduler/packages/rubin_sim/batch/run_auxtel_prenight_sims.sh
34
+ sdf/data/rubin/shared/scheduler/packages/rubin_sim/batch/run_prenight_sims.sh
35
+
36
+
37
+ These batch jobs will record their output in:
38
+
39
+ * `/sdf/data/rubin/shared/scheduler/prenight/sbatch/run_prenight_sims_%A_%a.out` and
40
+ * `/sdf/data/rubin/shared/scheduler/prenight/sbatch/run_prenight_sims_%A_%a.err`
41
+
42
+ The working files can be found in `/sdf/data/rubin/shared/scheduler/prenight/work/run_prenight_sims/%Y-%m-%dT%H%M%`.
43
+
44
+ Automated runs of prenight simulations
45
+ ======================================
46
+
47
+ Batch jobs are submitted automatically each morning following the `sbatch` commands shown above.
48
+ The `crontab` entries are::
49
+
50
+ 15 6 * * * /opt/slurm/slurm-curr/bin/sbatch /sdf/data/rubin/shared/scheduler/packages/rubin_sim/batch/run_auxtel_prenight_sims.sh 2>&1 >> /sdf/data/rubin/shared/scheduler/prenight/daily/daily_auxtel_cron.out
51
+ 30 6 * * * /opt/slurm/slurm-curr/bin/sbatch /sdf/data/rubin/shared/scheduler/packages/rubin_sim/batch/run_prenight_sims.sh 2>&1 >> /sdf/data/rubin/shared/scheduler/prenight/daily/daily_simonyi_cron.out
52
+
53
+
54
+ Custom runs of prenight simulations
55
+ ===================================
56
+
57
+ Much of the `run_prenight_sims.sh` script is dedicated to figuring out what environment to use and configuring it.
58
+ If these defaults are not desired, a user can configure an environment to their liking, and run the simulation with the following steps.
59
+ This environment must have the following installed:
60
+
61
+ * `rubin_scheduler` (`github.com/lsst/rubin_sim`)
62
+ * `schedview` (`github.com/lsst/schedview`)
63
+ * `ts_fbs_utils` (`github.com/lsst-ts/ts_fbs_utils.git`)
64
+ * `sims_sv_survey` (`github.com/lsst-sims/sims_sv_survey`)
65
+ * `rubin_nights` (`github.com/lsst-sims/rubin_night`)
66
+ * `lsst_resources` (`github.com/lsst/resources`)
67
+
68
+ First, retrieve the set of completed visits at the start of the nights to be simulated.
69
+ For example::
70
+
71
+ DAYOBS="20250819"
72
+ COMPLETED_OPSIM_DB="completed_visits.db"
73
+ TOKEN_FILE="~/.usdf_access_token"
74
+ fetch_sv_visits ${DAYOBS} ${COMPLETED_OPSIM_DB} ${TOKEN_FILE}
75
+
76
+ Second, create a pickle of the scheduler you want to run::
77
+
78
+ SCHEDULER_CONFIG_SCRIPT="ts_config_ocs/Scheduler/feature_scheduler/maintel/fbs_config_sv_survey.py"
79
+ SCHEDULER_PICKLE="scheduler.p"
80
+ COMPLETED_OPSIM_DB="completed_visits.db"
81
+ make_sv_scheduler ${SCHEDULER_PICKLE} --opsim ${COMPLETED_OPSIM_DB} --config-script ${SCHEDULER_CONFIG_SCRIPT}
82
+
83
+ Third, create a model observatory pickle::
84
+
85
+ make_model_observatory observatory.p
86
+
87
+ Fourch, create an band scheduler pickle::
88
+
89
+ make_band_scheduler band_scheduler.p
90
+
91
+ Finally, run the sim (and add it to the archive)::
92
+
93
+ OPSIMRUN="prenight_nominal_$(date --iso=s)"
94
+ LABEL="Nominal start and overhead, ideal conditions, run at $(date --iso=s)"
95
+ NUM_NIGHTS=3
96
+ ARCHIVE="s3://rubin:rubin-scheduler-prenight/opsim/"
97
+ DELAY=0
98
+ ANOM_SCALE=0
99
+ ANOM_SEED=1
100
+ run_sv_sim \
101
+ ${SCHEDULER_PICKLE} \
102
+ observatory.p \
103
+ "" \
104
+ ${DAYOBS} \
105
+ ${NUM_NIGHTS} \
106
+ ${OPSIMRUN} \
107
+ --keep-rewards \
108
+ --no-downtime \
109
+ --label ${LABEL} \
110
+ --archive ${ARCHIVE} \
111
+ --capture-env \
112
+ --delay ${DELAY} \
113
+ --anom-overhead-scale ${ANOM_SCALE} \
114
+ --anom-overhead-seed ${ANOM_SEED} \
115
+ --tags mytag1 mytag2 mytag3
116
+
117
+ See the output of `run_sv_sim --help` for the meanings of the options.