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
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bash
2
+ #SBATCH --account=rubin:developers # Account name
3
+ #SBATCH --job-name=auxtel_prenight_daily # Job name
4
+ #SBATCH --output=/sdf/data/rubin/shared/scheduler/prenight/sbatch/compile_prenight_metadata_cache.out # Output file (stdout)
5
+ #SBATCH --error=/sdf/data/rubin/shared/scheduler/prenight/sbatch/compile_prenight_metadata_cache.err # Error file (stderr)
6
+ #SBATCH --partition=milano # Partition (queue) names
7
+ #SBATCH --nodes=1 # Number of nodes
8
+ #SBATCH --ntasks=1 # Number of tasks run in parallel
9
+ #SBATCH --cpus-per-task=1 # Number of CPUs per task
10
+ #SBATCH --mem=4G # Requested memory
11
+ #SBATCH --time=1:00:00 # Wall time (hh:mm:ss)
12
+
13
+ echo "******** START of compile_prenight_metadata_cache.sh **********"
14
+
15
+ # Source global definitions
16
+ if [ -f /etc/bashrc ]; then
17
+ . /etc/bashrc
18
+ fi
19
+
20
+ # SLAC S3DF - source all files under ~/.profile.d
21
+ if [[ -e ~/.profile.d && -n "$(ls -A ~/.profile.d/)" ]]; then
22
+ source <(cat $(find -L ~/.profile.d -name '*.conf'))
23
+ fi
24
+
25
+ source /sdf/group/rubin/sw/w_latest/loadLSST.sh
26
+ conda activate /sdf/data/rubin/shared/scheduler/envs/prenight
27
+ export AWS_PROFILE=prenight
28
+ WORK_DIR=$(date '+/sdf/data/rubin/shared/scheduler/prenight/work/compile_prenight_metadata_cache/%Y-%m-%dT%H%M%S' --utc)
29
+ echo "Working in $WORK_DIR"
30
+ mkdir ${WORK_DIR}
31
+ cd ${WORK_DIR}
32
+ printenv > env.out
33
+ compile_sim_archive_metadata_resource --append
34
+ echo "******* END of compile_prenight_metadata_cache.sh *********"
@@ -0,0 +1,163 @@
1
+ #!/usr/bin/env bash
2
+ #SBATCH --account=rubin:developers # Account name
3
+ #SBATCH --job-name=auxtel_prenight_daily # Job name
4
+ #SBATCH --output=/sdf/data/rubin/shared/scheduler/prenight/sbatch/run_prenight_sims_%A_%a.out # Output file (stdout)
5
+ #SBATCH --error=/sdf/data/rubin/shared/scheduler/prenight/sbatch/run_prenight_sims_%A_%a.out # Error file (stderr)
6
+ #SBATCH --partition=milano # Partition (queue) names
7
+ #SBATCH --nodes=1 # Number of nodes
8
+ #SBATCH --ntasks=1 # Number of tasks run in parallel
9
+ #SBATCH --cpus-per-task=1 # Number of CPUs per task
10
+ #SBATCH --mem=8G # Requested memory
11
+ #SBATCH --time=1:30:00 # Wall time (hh:mm:ss)
12
+
13
+ echo "******** START of run_prenight_sims.sh **********"
14
+
15
+ # Source global definitions
16
+ if [ -f /etc/bashrc ]; then
17
+ . /etc/bashrc
18
+ fi
19
+
20
+ # SLAC S3DF - source all files under ~/.profile.d
21
+ if [[ -e ~/.profile.d && -n "$(ls -A ~/.profile.d/)" ]]; then
22
+ source <(cat $(find -L ~/.profile.d -name '*.conf'))
23
+ fi
24
+
25
+ date --iso=s
26
+ LATEST_TAGGED_STACK=$(
27
+ find /cvmfs/sw.lsst.eu/almalinux-x86_64/lsst_distrib \
28
+ -maxdepth 1 \
29
+ -regex '.*/v[0-9]+\.[0-9]+\.[0-9]+' \
30
+ -printf "%f\n" |
31
+ sort -V |
32
+ tail -1
33
+ )
34
+ source /cvmfs/sw.lsst.eu/almalinux-x86_64/lsst_distrib/${LATEST_TAGGED_STACK}/loadLSST-ext.sh
35
+
36
+ set -o xtrace
37
+
38
+ export AWS_PROFILE=prenight
39
+ WORK_DIR=$(date '+/sdf/data/rubin/shared/scheduler/prenight/work/run_prenight_sims/%Y-%m-%dT%H%M%S' --utc)
40
+ echo "Working in $WORK_DIR"
41
+ mkdir ${WORK_DIR}
42
+ cd ${WORK_DIR}
43
+
44
+ # Install required python packages
45
+ PACKAGE_DIR=$(readlink -f ${WORK_DIR}/packages)
46
+ mkdir ${PACKAGE_DIR}
47
+ export PYTHONPATH=${PACKAGE_DIR}:${PYTHONPATH}
48
+ export PATH=${PACKAGE_DIR}/bin:${PATH}
49
+
50
+ if false ; then
51
+ # Get latest tagged versions of everything
52
+ RUBIN_SCHEDULER_REFERENCE=$(curl -s https://api.github.com/repos/lsst/rubin_scheduler/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
53
+ RUBIN_SIM_REFERENCE=$(curl -s https://api.github.com/repos/lsst/rubin_sim/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
54
+ SCHEDVIEW_REFERENCE=$(curl -s https://api.github.com/repos/lsst/schedview/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
55
+ TS_FBS_UTILS_REFERENCE=$(curl -s https://api.github.com/repos/lsst-ts/ts_fbs_utils/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
56
+ SIMS_SV_SURVEY_REFERENCE=$(curl -s https://api.github.com/repos/lsst-sims/sims_sv_survey/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
57
+ RUBIN_NIGHTS_REFERENCE=$(curl -s https://api.github.com/repos/lsst-sims/rubin_nights/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
58
+ else
59
+ # alternately, set specific versions
60
+ RUBIN_SCHEDULER_REFERENCE="v3.18.1"
61
+ RUBIN_SIM_REFERENCE="tickets/SP-2709"
62
+ SCHEDVIEW_REFERENCE="tickets/SP-2167"
63
+ TS_FBS_UTILS_REFERENCE=$(curl -s https://api.github.com/repos/lsst-ts/ts_fbs_utils/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
64
+ LSST_SURVEY_SIM_REFERENCE="tickets/SP-2709a"
65
+ RUBIN_NIGHTS_REFERENCE="v0.7.0"
66
+ fi
67
+
68
+ pip install --no-deps --target=${PACKAGE_DIR} \
69
+ git+https://github.com/lsst/rubin_scheduler.git@${RUBIN_SCHEDULER_REFERENCE} \
70
+ git+https://github.com/lsst/rubin_sim.git@${RUBIN_SIM_REFERENCE} \
71
+ git+https://github.com/lsst/schedview.git@${SCHEDVIEW_REFERENCE} \
72
+ git+https://github.com/lsst-ts/ts_fbs_utils.git@${TS_FBS_UTILS_REFERENCE} \
73
+ git+https://github.com/lsst-sims/lsst_survey_sim.git@${LSST_SURVEY_SIM_REFERENCE} \
74
+ git+https://github.com/lsst-sims/rubin_nights.git@${RUBIN_NIGHTS_REFERENCE} \
75
+ lsst-resources
76
+
77
+ if false ; then
78
+ # Get the scheduler version from the EFD and install it.
79
+ # We have to do this after the others, because we want
80
+ # the version of obs_version_at_time supplied by the
81
+ # version of schedview we specify.
82
+ # Go ahead and install any missing dependencies as well.
83
+ RUBIN_SCHEDULER_REFERENCE=v$(obs_version_at_time rubin_scheduler)
84
+ echo "Using rubin_scheduler $RUBIN_SCHEDULER_REFERENCE"
85
+ pip install --ignore-installed --no-deps --upgrade --target=${PACKAGE_DIR} git+https://github.com/lsst/rubin_scheduler.git@${RUBIN_SCHEDULER_REFERENCE}
86
+ fi
87
+
88
+ # Get the scheduler configuration script
89
+ # It lives in ts_config_scheduler
90
+ TS_CONFIG_SCHEDULER_REFERENCE="develop"
91
+ SCHED_CONFIG_FNAME="ts_config_scheduler/Scheduler/feature_scheduler/auxtel/fbs_spec_flex_survey.py"
92
+ echo "Using ts_config_scheduler ${SCHED_CONFIG_FNAME} from ${TS_CONFIG_SCHEDULER_REFERENCE}"
93
+ git clone --depth 1 https://github.com/lsst-ts/ts_config_scheduler
94
+ cd ts_config_scheduler
95
+ git fetch --depth 1 origin "${TS_CONFIG_SCHEDULER_REFERENCE}"
96
+ git checkout FETCH_HEAD
97
+ cd ${WORK_DIR}
98
+
99
+ export DAYOBS="$(date -u --date='-12 hours' +'%Y%m%d')"
100
+ export NEXT_DAYOBS="$(date -u --date='+12 hours' +'%Y%m%d')"
101
+ export LAST_DAYOBS="$(date -u --date='+36 hours' +'%Y%m%d')"
102
+ export DAYOBS_SIMULATED="$DAYOBS $NEXT_DAYOBS $LAST_DAYOBS"
103
+ export LASTNIGHTISO="$(date --date='-36 hours' -u +'%F')"
104
+
105
+ export ARCHIVE="s3://rubin:rubin-scheduler-prenight/opsim/vseq/"
106
+ export VSARCHIVE_PGDATABASE="opsim_log"
107
+ export VSARCHIVE_PGHOST="usdf-maf-visit-seq-archive-tx.sdf.slac.stanford.edu"
108
+ export VSARCHIVE_PGUSER="writer"
109
+ export VSARCHIVE_PGSCHEMA="vsmd"
110
+
111
+ # Get an empty set of completed visits so we have something
112
+ # to pass make_lsst_scheduler
113
+ fetch_lsst_visits 20000101 completed_visits.db ~/.lsst/usdf_access_token
114
+
115
+ echo "Creating scheduler pickle"
116
+ date --iso=s
117
+ make_lsst_scheduler scheduler.p --opsim completed_visits.db --config-script ${SCHED_CONFIG_FNAME}
118
+
119
+ echo "Creating model observatory"
120
+ date --iso=s
121
+ ideal_model_observatory scheduler.p observatory.p
122
+
123
+ # make dir for output
124
+ OPSIM_RESULT_DIR=${WORK_DIR}/opsim_results
125
+ mkdir ${OPSIM_RESULT_DIR}
126
+
127
+ echo "Running nominal LSST simulation"
128
+ OPSIMRUN="prenight_nominal_$(date --iso=s)"
129
+ LABEL="Nominal start and overhead, ideal conditions, run at $(date --iso=s)"
130
+ date --iso=s
131
+ run_lsst_sim scheduler.p observatory.p "" ${DAYOBS} 3 "${OPSIMRUN}" \
132
+ --keep_rewards --label "${LABEL}" \
133
+ --delay 0 --anom_overhead_scale 0 \
134
+ --results ${OPSIM_RESULT_DIR}
135
+
136
+
137
+ echo "Creating entry in metadatdata database"
138
+ date --iso=s
139
+ SIM_UUID=$(vseqarchive record-visitseq-metadata \
140
+ simulations \
141
+ ${OPSIM_RESULT_DIR}/opsim.db \
142
+ "${LABEL}" \
143
+ --telescope auxtel \
144
+ --first_day_obs ${DAYOBS} \
145
+ --last_day_obs ${LAST_DAYOBS}
146
+ )
147
+
148
+ vseqarchive update-visitseq-metadata ${SIM_UUID} scheduler_version "${RUBIN_SCHEDULER_REFERENCE}"
149
+ vseqarchive archive-file ${SIM_UUID} ${OPSIM_RESULT_DIR}/opsim.db visits --archive-base ${ARCHIVE}
150
+ vseqarchive archive-file ${SIM_UUID} ${OPSIM_RESULT_DIR}/rewards.h5 rewards --archive-base ${ARCHIVE}
151
+ vseqarchive tag ${SIM_UUID} prenight ideal nominal
152
+
153
+ CONDA_HASH=$(vseqarchive record-conda-env)
154
+ vseqarchive update-visitseq-metadata ${SIM_UUID} conda_env_sha256 ${CONDA_HASH}
155
+
156
+ vseqarchive get-file ${SIM_UUID} visits visits.h5
157
+ vseqarchive add-nightly-stats ${SIM_UUID} visits.h5 azimuth altitude
158
+
159
+ rm visits.h5 ${OPSIM_RESULT_DIR}/opsim.db ${OPSIM_RESULT_DIR}/rewards.h5 ${OPSIM_RESULT_DIR}/obs_stats.txt ${OPSIM_RESULT_DIR}/observatory.p ${OPSIM_RESULT_DIR}/scheduler.p ${OPSIM_RESULT_DIR}/sim_metadata.yaml
160
+
161
+ for DAYOBS_TO_INDEX in ${DAYOBS_SIMULATED}; do
162
+ vseqarchive make-prenight-index ${DAYOBS_TO_INDEX} auxtel
163
+ done
@@ -0,0 +1,239 @@
1
+ #!/usr/bin/env bash
2
+ #SBATCH --account=rubin:developers # Account name
3
+ #SBATCH --job-name=prenight_simonyi_daily # Job name
4
+ #SBATCH --output=/sdf/data/rubin/shared/scheduler/prenight/sbatch/run_prenight_sims_%A_%a.out # Output file (stdout)
5
+ #SBATCH --error=/sdf/data/rubin/shared/scheduler/prenight/sbatch/run_prenight_sims_%A_%a.out # Error file (stderr)
6
+ #SBATCH --partition=milano # Partition (queue) names
7
+ #SBATCH --nodes=1 # Number of nodes
8
+ #SBATCH --ntasks=1 # Number of tasks run in parallel
9
+ #SBATCH --cpus-per-task=1 # Number of CPUs per task
10
+ #SBATCH --mem=8G # Requested memory
11
+ #SBATCH --time=1:30:00 # Wall time (hh:mm:ss)
12
+
13
+ echo "******** START of run_prenight_sims.sh **********"
14
+
15
+ # Source global definitions
16
+ if [ -f /etc/bashrc ]; then
17
+ . /etc/bashrc
18
+ fi
19
+
20
+ # SLAC S3DF - source all files under ~/.profile.d
21
+ if [[ -e ~/.profile.d && -n "$(ls -A ~/.profile.d/)" ]]; then
22
+ source <(cat $(find -L ~/.profile.d -name '*.conf'))
23
+ fi
24
+
25
+ date --iso=s
26
+ LATEST_TAGGED_STACK=$(
27
+ find /cvmfs/sw.lsst.eu/almalinux-x86_64/lsst_distrib \
28
+ -maxdepth 1 \
29
+ -regex '.*/v[0-9]+\.[0-9]+\.[0-9]+' \
30
+ -printf "%f\n" |
31
+ sort -V |
32
+ tail -1
33
+ )
34
+ source /cvmfs/sw.lsst.eu/almalinux-x86_64/lsst_distrib/${LATEST_TAGGED_STACK}/loadLSST-ext.sh
35
+
36
+ set -o xtrace
37
+
38
+ export AWS_PROFILE=prenight
39
+ WORK_DIR=$(date '+/sdf/data/rubin/shared/scheduler/prenight/work/run_prenight_sims/%Y-%m-%dT%H%M%S' --utc)
40
+ echo "Working in $WORK_DIR"
41
+ mkdir ${WORK_DIR}
42
+ cd ${WORK_DIR}
43
+
44
+ # Install required python packages
45
+ PACKAGE_DIR=$(readlink -f ${WORK_DIR}/packages)
46
+ mkdir ${PACKAGE_DIR}
47
+ export PYTHONPATH=${PACKAGE_DIR}:${PYTHONPATH}
48
+ export PATH=${PACKAGE_DIR}/bin:${PATH}
49
+
50
+ if false ; then
51
+ # Get latest tagged versions of everything
52
+ RUBIN_SCHEDULER_REFERENCE=$(curl -s https://api.github.com/repos/lsst/rubin_scheduler/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
53
+ RUBIN_SIM_REFERENCE=$(curl -s https://api.github.com/repos/lsst/rubin_sim/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
54
+ SCHEDVIEW_REFERENCE=$(curl -s https://api.github.com/repos/lsst/schedview/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
55
+ TS_FBS_UTILS_REFERENCE=$(curl -s https://api.github.com/repos/lsst-ts/ts_fbs_utils/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
56
+ LSST_SURVEY_SIM_REFERENCE=$(curl -s https://api.github.com/repos/lsst-sims/lsst_survey_sim/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
57
+ RUBIN_NIGHTS_REFERENCE=$(curl -s https://api.github.com/repos/lsst-sims/rubin_nights/tags | jq -r '.[].name' | egrep '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
58
+ else
59
+ # alternately, set specific versions
60
+ RUBIN_SCHEDULER_REFERENCE="v3.19.0"
61
+ RUBIN_SIM_REFERENCE="v2.6.1.dev1"
62
+ SCHEDVIEW_REFERENCE="v0.20.0.dev1"
63
+ TS_FBS_UTILS_REFERENCE="v0.19.0"
64
+ LSST_SURVEY_SIM_REFERENCE="v0.2.0"
65
+ RUBIN_NIGHTS_REFERENCE="v0.7.0"
66
+ fi
67
+
68
+ pip install --no-deps --target=${PACKAGE_DIR} \
69
+ git+https://github.com/lsst/rubin_scheduler.git@${RUBIN_SCHEDULER_REFERENCE} \
70
+ git+https://github.com/lsst/rubin_sim.git@${RUBIN_SIM_REFERENCE} \
71
+ git+https://github.com/lsst/schedview.git@${SCHEDVIEW_REFERENCE} \
72
+ git+https://github.com/lsst-ts/ts_fbs_utils.git@${TS_FBS_UTILS_REFERENCE} \
73
+ git+https://github.com/lsst-sims/lsst_survey_sim.git@${LSST_SURVEY_SIM_REFERENCE} \
74
+ git+https://github.com/lsst-sims/rubin_nights.git@${RUBIN_NIGHTS_REFERENCE} \
75
+ lsst-resources
76
+
77
+ if false ; then
78
+ # Get the scheduler version from the EFD and install it.
79
+ # We have to do this after the others, because we want
80
+ # the version of obs_version_at_time supplied by the
81
+ # version of schedview we specify.
82
+ RUBIN_SCHEDULER_REFERENCE=v$(obs_version_at_time rubin_scheduler)
83
+ echo "Using rubin_scheduler $RUBIN_SCHEDULER_REFERENCE"
84
+ pip install --ignore-installed --no-deps --upgrade --target=${PACKAGE_DIR} git+https://github.com/lsst/rubin_scheduler.git@${RUBIN_SCHEDULER_REFERENCE}
85
+ fi
86
+
87
+ # Get the scheduler configuration script
88
+ # It lives in ts_config_scheduler
89
+ TS_CONFIG_SCHEDULER_REFERENCE="develop"
90
+ SCHED_CONFIG_FNAME="ts_config_scheduler/Scheduler/feature_scheduler/maintel/fbs_config_lsst_survey.py"
91
+ echo "Using ts_config_scheduler ${SCHED_CONFIG_FNAME} from ${TS_CONFIG_SCHEDULER_REFERENCE}"
92
+ git clone --depth 1 https://github.com/lsst-ts/ts_config_scheduler
93
+ cd ts_config_scheduler
94
+ git fetch --depth 1 origin "${TS_CONFIG_SCHEDULER_REFERENCE}"
95
+ git checkout FETCH_HEAD
96
+ cd ${WORK_DIR}
97
+
98
+ export DAYOBS="$(date -u --date='-12 hours' +'%Y%m%d')"
99
+ export NEXT_DAYOBS="$(date -u --date='+12 hours' +'%Y%m%d')"
100
+ export LAST_DAYOBS="$(date -u --date='+36 hours' +'%Y%m%d')"
101
+ export DAYOBS_SIMULATED="$DAYOBS $NEXT_DAYOBS $LAST_DAYOBS"
102
+ export LASTNIGHTISO="$(date --date='-36 hours' -u +'%F')"
103
+
104
+ export ARCHIVE="s3://rubin:rubin-scheduler-prenight/opsim/vseq/"
105
+ export VSARCHIVE_PGDATABASE="opsim_log"
106
+ export VSARCHIVE_PGHOST="usdf-maf-visit-seq-archive-tx.sdf.slac.stanford.edu"
107
+ export VSARCHIVE_PGUSER="writer"
108
+ export VSARCHIVE_PGSCHEMA="vsmd"
109
+
110
+ echo "Fetching completed visits"
111
+ date --iso=s
112
+ fetch_lsst_visits ${DAYOBS} completed_visits.db ~/.lsst/usdf_access_token
113
+
114
+ # Recording hash of fetched visits
115
+ COMPLETED=$(vseqarchive record-visitseq-metadata \
116
+ completed \
117
+ completed_visits.db \
118
+ "Consdb query through ${LASTNIGHTISO}" \
119
+ --first_day_obs 20250620 \
120
+ --last_day_obs ${LASTNIGHTISO})
121
+
122
+ echo "Creating scheduler pickle"
123
+ date --iso=s
124
+ make_lsst_scheduler scheduler.p --opsim completed_visits.db --config-script ${SCHED_CONFIG_FNAME}
125
+
126
+ echo "Creating model observatory"
127
+ date --iso=s
128
+ make_model_observatory observatory.p
129
+
130
+ echo "Creating the band scheduler"
131
+ date --iso=s
132
+ make_band_scheduler band_scheduler.p
133
+
134
+ # make dir for output
135
+ OPSIM_RESULT_DIR=${WORK_DIR}/opsim_results
136
+ mkdir ${OPSIM_RESULT_DIR}
137
+
138
+ echo "Running nominal LSST simulation"
139
+ OPSIMRUN="prenight_nominal_$(date --iso=s)"
140
+ LABEL="Nominal start and overhead, ideal conditions, run at $(date --iso=s)"
141
+ date --iso=s
142
+ run_lsst_sim scheduler.p observatory.p "" ${DAYOBS} 3 "${OPSIMRUN}" \
143
+ --keep_rewards --label "${LABEL}" \
144
+ --delay 0 --anom_overhead_scale 0 \
145
+ --results ${OPSIM_RESULT_DIR}
146
+
147
+ echo "Creating entry in metadatdata database"
148
+ date --iso=s
149
+ SIM_UUID=$(vseqarchive record-visitseq-metadata \
150
+ simulations \
151
+ ${OPSIM_RESULT_DIR}/opsim.db \
152
+ "${LABEL}" \
153
+ --first_day_obs ${DAYOBS} \
154
+ --last_day_obs ${LAST_DAYOBS}
155
+ )
156
+ vseqarchive update-visitseq-metadata ${SIM_UUID} parent_visitseq_uuid ${COMPLETED}
157
+ vseqarchive update-visitseq-metadata ${SIM_UUID} parent_last_day_obs ${LASTNIGHTISO}
158
+
159
+ vseqarchive update-visitseq-metadata ${SIM_UUID} scheduler_version "${RUBIN_SCHEDULER_REFERENCE}"
160
+ vseqarchive archive-file ${SIM_UUID} ${OPSIM_RESULT_DIR}/opsim.db visits --archive-base ${ARCHIVE}
161
+ vseqarchive archive-file ${SIM_UUID} ${OPSIM_RESULT_DIR}/rewards.h5 rewards --archive-base ${ARCHIVE}
162
+ vseqarchive tag ${SIM_UUID} prenight ideal nominal
163
+
164
+ CONDA_HASH=$(vseqarchive record-conda-env)
165
+ vseqarchive update-visitseq-metadata ${SIM_UUID} conda_env_sha256 ${CONDA_HASH}
166
+
167
+ vseqarchive get-file ${SIM_UUID} visits visits.h5
168
+ vseqarchive add-nightly-stats ${SIM_UUID} visits.h5 azimuth altitude
169
+
170
+ rm visits.h5 ${OPSIM_RESULT_DIR}/opsim.db ${OPSIM_RESULT_DIR}/rewards.h5 ${OPSIM_RESULT_DIR}/obs_stats.txt ${OPSIM_RESULT_DIR}/observatory.p ${OPSIM_RESULT_DIR}/scheduler.p ${OPSIM_RESULT_DIR}/sim_metadata.yaml
171
+
172
+ for DELAY in 60 240 ; do
173
+ echo "Running SV simulation delayed ${DELAY}"
174
+ OPSIMRUN="prenight_delay${DELAY}_$(date --iso=s)"
175
+ LABEL="Start time delayed by ${DELAY} minutes, nominal slew and visit overhead, ideal conditions, run at $(date --iso=s)"
176
+ date --iso=s
177
+ run_lsst_sim scheduler.p observatory.p "" ${DAYOBS} 3 "${OPSIMRUN}" \
178
+ --keep_rewards --label "${LABEL}" \
179
+ --delay ${DELAY} --anom_overhead_scale 0 \
180
+ --results ${OPSIM_RESULT_DIR}
181
+
182
+ SIM_UUID=$(vseqarchive record-visitseq-metadata \
183
+ simulations \
184
+ ${OPSIM_RESULT_DIR}/opsim.db \
185
+ "${LABEL}" \
186
+ --first_day_obs ${DAYOBS} \
187
+ --last_day_obs ${LAST_DAYOBS}
188
+ )
189
+ vseqarchive update-visitseq-metadata ${SIM_UUID} parent_visitseq_uuid ${COMPLETED}
190
+ vseqarchive update-visitseq-metadata ${SIM_UUID} parent_last_day_obs ${LASTNIGHTISO}
191
+ vseqarchive update-visitseq-metadata ${SIM_UUID} scheduler_version "${RUBIN_SCHEDULER_REFERENCE}"
192
+ vseqarchive archive-file ${SIM_UUID} ${OPSIM_RESULT_DIR}/opsim.db visits --archive-base ${ARCHIVE}
193
+ vseqarchive archive-file ${SIM_UUID} ${OPSIM_RESULT_DIR}/rewards.h5 rewards --archive-base ${ARCHIVE}
194
+ vseqarchive tag ${SIM_UUID} prenight ideal delay_${DELAY}
195
+ vseqarchive update-visitseq-metadata ${SIM_UUID} conda_env_sha256 ${CONDA_HASH}
196
+ vseqarchive get-file ${SIM_UUID} visits visits.h5
197
+ vseqarchive add-nightly-stats ${SIM_UUID} visits.h5 azimuth altitude
198
+
199
+ rm visits.h5 ${OPSIM_RESULT_DIR}/opsim.db ${OPSIM_RESULT_DIR}/rewards.h5 ${OPSIM_RESULT_DIR}/obs_stats.txt ${OPSIM_RESULT_DIR}/observatory.p ${OPSIM_RESULT_DIR}/scheduler.p ${OPSIM_RESULT_DIR}/sim_metadata.yaml
200
+ done
201
+
202
+ ANOM_SCALE="0.1"
203
+ for ANOM_SEED in 101 102 ; do
204
+ echo "Running SV simulation with anomalous overhead seed ${ANOM_SEED}"
205
+ OPSIMRUN="prenight_anom${ANOM_SEED}_$(date --iso=s)"
206
+ LABEL="Anomalous overhead (${ANOM_SEED}, ${ANOM_SCALE}), nominal start, ideal conditions, run at $(date --iso=s)"
207
+ date --iso=s
208
+ run_lsst_sim scheduler.p observatory.p "" ${DAYOBS} 3 "${OPSIMRUN}" \
209
+ --keep_rewards --label "${LABEL}" \
210
+ --delay 0 \
211
+ --anom_overhead_scale ${ANOM_SCALE} \
212
+ --anom_overhead_seed ${ANOM_SEED} \
213
+ --results ${OPSIM_RESULT_DIR}
214
+
215
+ SIM_UUID=$(vseqarchive record-visitseq-metadata \
216
+ simulations \
217
+ ${OPSIM_RESULT_DIR}/opsim.db \
218
+ "${LABEL}" \
219
+ --first_day_obs ${DAYOBS} \
220
+ --last_day_obs ${LAST_DAYOBS}
221
+ )
222
+ vseqarchive update-visitseq-metadata ${SIM_UUID} parent_visitseq_uuid ${COMPLETED}
223
+ vseqarchive update-visitseq-metadata ${SIM_UUID} parent_last_day_obs ${LASTNIGHTISO}
224
+ vseqarchive update-visitseq-metadata ${SIM_UUID} scheduler_version "${RUBIN_SCHEDULER_REFERENCE}"
225
+ vseqarchive archive-file ${SIM_UUID} ${OPSIM_RESULT_DIR}/opsim.db visits --archive-base ${ARCHIVE}
226
+ vseqarchive archive-file ${SIM_UUID} ${OPSIM_RESULT_DIR}/rewards.h5 rewards --archive-base ${ARCHIVE}
227
+ vseqarchive tag ${SIM_UUID} prenight ideal anomalous_overhead
228
+ vseqarchive update-visitseq-metadata ${SIM_UUID} conda_env_sha256 ${CONDA_HASH}
229
+ vseqarchive get-file ${SIM_UUID} visits visits.h5
230
+ vseqarchive add-nightly-stats ${SIM_UUID} visits.h5 azimuth altitude
231
+
232
+ rm visits.h5 ${OPSIM_RESULT_DIR}/opsim.db ${OPSIM_RESULT_DIR}/rewards.h5 ${OPSIM_RESULT_DIR}/obs_stats.txt ${OPSIM_RESULT_DIR}/observatory.p ${OPSIM_RESULT_DIR}/scheduler.p ${OPSIM_RESULT_DIR}/sim_metadata.yaml
233
+ done
234
+
235
+ rm observatory.p scheduler.p
236
+
237
+ for DAYOBS_TO_INDEX in ${DAYOBS_SIMULATED}; do
238
+ vseqarchive make-prenight-index ${DAYOBS_TO_INDEX} simonyi
239
+ done
docs/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ _build/*
2
+ source/*
3
+ maf-metric-list.rst
docs/Makefile ADDED
@@ -0,0 +1,32 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?= --keep-going -T -n
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = .
9
+ BUILDDIR = _build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ clean:
18
+ rm -rf $(BUILDDIR)
19
+
20
+ linkcheck:
21
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
22
+ @echo
23
+ @echo "Link check complete; look for any errors in the above output " \
24
+ "or in $(BUILDDIR)/linkcheck/output.txt."
25
+
26
+ # Catch-all target: route all unknown targets to Sphinx using the new
27
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
28
+ %: Makefile
29
+ python metric_list.py
30
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
31
+
32
+
docs/api.rst ADDED
@@ -0,0 +1,25 @@
1
+ .. py:currentmodule:: rubin_sim
2
+
3
+ .. _api:
4
+
5
+ API
6
+ ===
7
+
8
+ .. toctree::
9
+ :maxdepth: 2
10
+
11
+ Data <data-api>
12
+
13
+ Metrics Analysis Framework (MAF) <maf-api>
14
+
15
+ Moving Objects <moving-objects-api>
16
+
17
+ Phot Utils <phot-utils-api>
18
+
19
+ Satellite Constellations <satellite-constellations-api>
20
+
21
+ Self Calibration <selfcal-api>
22
+
23
+ Sim archive <sim-archive-api>
24
+
25
+ Skybrightness <skybrightness-api>
docs/conf.py ADDED
@@ -0,0 +1,8 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ #
3
+ # For the full list of built-in configuration values, see the documentation:
4
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
5
+
6
+ from documenteer.conf.guide import * # noqa: F403, import *
7
+
8
+ linkcheck_retries = 2
docs/data-api.rst ADDED
@@ -0,0 +1,12 @@
1
+ .. py:currentmodule:: rubin_sim.data
2
+
3
+ .. _data-api:
4
+
5
+ ========
6
+ Data API
7
+ ========
8
+
9
+ .. automodule:: rubin_sim.data
10
+ :imported-members:
11
+ :members:
12
+ :show-inheritance:
docs/data-download.rst ADDED
@@ -0,0 +1,70 @@
1
+ .. py:currentmodule:: rubin_sim.data
2
+
3
+ .. _data-download:
4
+
5
+ =============
6
+ Data Download
7
+ =============
8
+
9
+ The ``rubin_sim.data`` module provides a script to download the data
10
+ required to run various modules in ``rubin_sim``, as well as to check the
11
+ expected versions of the data. It also provides utilities to interpret
12
+ the location of this $RUBIN_SIM_DATA_DIR on disk and to return the
13
+ path to the current baseline simulation output (one of the datafiles
14
+ downloaded by this module).
15
+
16
+ With the split of ``rubin_sim`` into ``rubin_sim`` + ``rubin_scheduler``, the
17
+ required data download utilities now live in the
18
+ `rubin_scheduler.data <https://rubin-scheduler.lsst.io/data-download.html>`_
19
+ package. ``rubin_scheduler`` is a necessary dependency of ``rubin_sim`` and
20
+ should have
21
+ been installed during the :ref:`installation <installation>` process.
22
+ The ``rubin_sim.data`` module simply provides additional information on the
23
+ data files necessary for ``rubin_sim``, then calls the scripts from
24
+ ``rubin_scheduler.data`` to execute the download.
25
+
26
+
27
+ Downloading Necessary Data
28
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
29
+
30
+ Please see the information in the
31
+ `rubin-scheduler "Downloading Necessary Data" documentation <https://rubin-scheduler.lsst.io/data-download.html#downloading-necessary-data>`_
32
+ for more details on setting up $RUBIN_SIM_DATA_DIR (which is
33
+ shared between ``rubin_scheduler``, ``rubin_sim`` and ``schedview``).
34
+
35
+ Using either the default path to $RUBIN_SIM_DATA_DIR, or after setting it
36
+ explicitly, first download the necessary data for ``rubin_scheduler`` and
37
+ then add the (larger) data set for ``rubin_sim``:
38
+
39
+ .. code-block:: bash
40
+
41
+ scheduler_download_data
42
+ rs_download_data
43
+
44
+ This creates a series of directories at $RUBIN_SIM_DATA_DIR (in addition
45
+ to the directories originating from `rubin_scheduler <https://rubin-scheduler.lsst.io/data-download.html#downloading-necessary-data>`_):
46
+
47
+ * maf (containing data used for various metrics)
48
+ * maps (containing various stellar density and 2-D and 3-D dust maps)
49
+ * movingObjects (containing asteroid SEDs)
50
+ * orbits (containing orbits for Solar System population samples)
51
+ * orbits_precompute (precomputed daily orbits for the samples above)
52
+ * sim_baseline (containing the current baseline simulation output)
53
+ * skybrightness (containing information needed for the skybrightness module)
54
+ * throughputs (current baseline throughput information)
55
+ * test (containing data for unit tests)
56
+
57
+
58
+ Note that the data will only be downloaded for the directories which do
59
+ not already exist, regardless of whether the version on disk is up to date.
60
+ To force an update to a version which matches the ``rubin_scheduler`` version:
61
+
62
+ .. code-block:: bash
63
+
64
+ rs_download_data --update
65
+
66
+ This can also be applied only to certain directories, using the
67
+ ``--dirs`` flag. It may be worth noting that some of the above directories
68
+ are more sizeable than others -- the ``maps``, ``maf`` and
69
+ ``orbits_precompute`` directories are the largest and if not needed, can
70
+ be skipped in download by using ``--dirs``.
docs/developer.rst ADDED
@@ -0,0 +1,14 @@
1
+ .. py:currentmodule:: rubin_sim
2
+
3
+ .. _developer:
4
+
5
+ ##########
6
+ User Guide
7
+ ##########
8
+
9
+
10
+ .. toctree::
11
+
12
+ Visit Sequence Archive Architecture <vseqarchive-architecture>
13
+
14
+ Visit Sequence Archive Setup <vseqarchive-setup>
docs/documenteer.toml ADDED
@@ -0,0 +1,11 @@
1
+ [project]
2
+ title = "rubin_sim"
3
+ copyright = "2023 Association of Universities for Research in Astronomy, Inc. (AURA)"
4
+ base_url = "https://rubin-sim.lsst.io"
5
+ github_url = "https://github.com/lsst/rubin_sim"
6
+
7
+ [project.python]
8
+ package="rubin_sim"
9
+
10
+ [sphinx]
11
+ extensions = ["sphinx.ext.viewcode"]
docs/index.rst ADDED
@@ -0,0 +1,22 @@
1
+ .. py:currentmodule:: rubin_sim
2
+
3
+ .. _rubin-sim-index:
4
+
5
+ #########
6
+ rubin_sim
7
+ #########
8
+
9
+ Helping simulate and evaluate the performance of
10
+ Rubin C. Observatory's Legacy Survey of Space and Time (the LSST),
11
+ through evaluating prototypes of various analysis, simulating photometry
12
+ and providing a framework for analyzing survey strategy progress and outcomes.
13
+
14
+
15
+ .. toctree::
16
+ :maxdepth: 2
17
+
18
+ Introduction <introduction>
19
+ Installation <installation>
20
+ User Guide <user-guide>
21
+ Developer's documenation <developer>
22
+ API <api>