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.
- batch/compile_prenight_metadata_cache.sh +34 -0
- batch/run_auxtel_prenight_sims.sh +163 -0
- batch/run_prenight_sims.sh +239 -0
- docs/.gitignore +3 -0
- docs/Makefile +32 -0
- docs/api.rst +25 -0
- docs/conf.py +8 -0
- docs/data-api.rst +12 -0
- docs/data-download.rst +70 -0
- docs/developer.rst +14 -0
- docs/documenteer.toml +11 -0
- docs/index.rst +22 -0
- docs/installation.rst +76 -0
- docs/introduction.rst +37 -0
- docs/maf-api-batches.rst +12 -0
- docs/maf-api-db.rst +12 -0
- docs/maf-api-maf-contrib.rst +12 -0
- docs/maf-api-maps.rst +12 -0
- docs/maf-api-metricbundles.rst +12 -0
- docs/maf-api-metrics.rst +12 -0
- docs/maf-api-plots.rst +12 -0
- docs/maf-api-run-comparison.rst +12 -0
- docs/maf-api-slicers.rst +12 -0
- docs/maf-api-stackers.rst +12 -0
- docs/maf-api-utils.rst +12 -0
- docs/maf-api.rst +22 -0
- docs/maf.rst +60 -0
- docs/metric_list.py +49 -0
- docs/moving-objects-api.rst +12 -0
- docs/moving-objects.rst +22 -0
- docs/phot-utils-api.rst +12 -0
- docs/phot-utils.rst +11 -0
- docs/prenight.rst +117 -0
- docs/protoarchive.rst +276 -0
- docs/satellite-constellations-api.rst +12 -0
- docs/satellite-constellations.rst +13 -0
- docs/selfcal-api.rst +12 -0
- docs/selfcal.rst +15 -0
- docs/sim-archive-api.rst +12 -0
- docs/skybrightness-api.rst +12 -0
- docs/skybrightness.rst +23 -0
- docs/user-guide.rst +28 -0
- docs/vseqarchive-architecture.rst +438 -0
- docs/vseqarchive-setup.rst +238 -0
- docs/vseqarchive.rst +225 -0
- rubin_sim/__init__.py +7 -0
- rubin_sim/data/__init__.py +1 -0
- rubin_sim/data/rs_download_data.py +155 -0
- rubin_sim/maf/__init__.py +34 -0
- rubin_sim/maf/batches/__init__.py +18 -0
- rubin_sim/maf/batches/altaz_batch.py +161 -0
- rubin_sim/maf/batches/col_map_dict.py +274 -0
- rubin_sim/maf/batches/common.py +388 -0
- rubin_sim/maf/batches/ddf_batch.py +728 -0
- rubin_sim/maf/batches/filterchange_batch.py +182 -0
- rubin_sim/maf/batches/glance_batch.py +591 -0
- rubin_sim/maf/batches/hourglass_batch.py +79 -0
- rubin_sim/maf/batches/info_batch.py +114 -0
- rubin_sim/maf/batches/metadata_batch.py +558 -0
- rubin_sim/maf/batches/moving_objects_batch.py +1587 -0
- rubin_sim/maf/batches/openshutter_batch.py +100 -0
- rubin_sim/maf/batches/radar_limited.py +1100 -0
- rubin_sim/maf/batches/science_radar_batch.py +1910 -0
- rubin_sim/maf/batches/skycoverage.py +155 -0
- rubin_sim/maf/batches/slew_batch.py +146 -0
- rubin_sim/maf/batches/srd_batch.py +637 -0
- rubin_sim/maf/batches/time_batch.py +757 -0
- rubin_sim/maf/batches/time_sci_batch.py +105 -0
- rubin_sim/maf/batches/visitdepth_batch.py +485 -0
- rubin_sim/maf/db/__init__.py +2 -0
- rubin_sim/maf/db/add_run.py +34 -0
- rubin_sim/maf/db/results_db.py +1074 -0
- rubin_sim/maf/db/tracking_db.py +332 -0
- rubin_sim/maf/ddf_dir.py +53 -0
- rubin_sim/maf/generate_ss.py +218 -0
- rubin_sim/maf/glance_dir.py +58 -0
- rubin_sim/maf/maf_contrib/__init__.py +25 -0
- rubin_sim/maf/maf_contrib/calculate_lsst_field_visibility_astropy.py +170 -0
- rubin_sim/maf/maf_contrib/depth_limited_num_gal_metric.py +109 -0
- rubin_sim/maf/maf_contrib/example_new_metrics.py +40 -0
- rubin_sim/maf/maf_contrib/filter_pair_t_gaps_metric.py +208 -0
- rubin_sim/maf/maf_contrib/grb_transient_metric.py +249 -0
- rubin_sim/maf/maf_contrib/gw170817_det_metric.py +72 -0
- rubin_sim/maf/maf_contrib/intervals_between_obs_metric.py +68 -0
- rubin_sim/maf/maf_contrib/kne_metrics.py +473 -0
- rubin_sim/maf/maf_contrib/lss_metrics.py +45 -0
- rubin_sim/maf/maf_contrib/lss_obs_strategy/__init__.py +3 -0
- rubin_sim/maf/maf_contrib/lss_obs_strategy/constants_for_pipeline.py +73 -0
- rubin_sim/maf/maf_contrib/lss_obs_strategy/galaxy_counts_metric_extended.py +205 -0
- rubin_sim/maf/maf_contrib/lss_obs_strategy/galaxy_counts_with_pixel_calibration.py +171 -0
- rubin_sim/maf/maf_contrib/lv_dwarfs/__init__.py +1 -0
- rubin_sim/maf/maf_contrib/lv_dwarfs/lv_dwarfs_metrics.py +388 -0
- rubin_sim/maf/maf_contrib/microlensing_metric.py +593 -0
- rubin_sim/maf/maf_contrib/num_obs_in_survey_time_overlap_metric.py +43 -0
- rubin_sim/maf/maf_contrib/periodic_metric.py +51 -0
- rubin_sim/maf/maf_contrib/periodic_star_metric.py +186 -0
- rubin_sim/maf/maf_contrib/periodic_star_modulation_metric.py +236 -0
- rubin_sim/maf/maf_contrib/presto_color_kne_pop_metric.py +441 -0
- rubin_sim/maf/maf_contrib/selfcal_uniformity_metric.py +171 -0
- rubin_sim/maf/maf_contrib/star_count_mass_metric.py +64 -0
- rubin_sim/maf/maf_contrib/star_count_metric.py +56 -0
- rubin_sim/maf/maf_contrib/star_counts/__init__.py +8 -0
- rubin_sim/maf/maf_contrib/star_counts/abs_mag.py +324 -0
- rubin_sim/maf/maf_contrib/star_counts/coords.py +99 -0
- rubin_sim/maf/maf_contrib/star_counts/readme.txt +1 -0
- rubin_sim/maf/maf_contrib/star_counts/spec_type.py +91 -0
- rubin_sim/maf/maf_contrib/star_counts/starcount.py +30 -0
- rubin_sim/maf/maf_contrib/star_counts/starcount_bymass.py +93 -0
- rubin_sim/maf/maf_contrib/star_counts/stellardensity.py +59 -0
- rubin_sim/maf/maf_contrib/static_probes_fom_summary_metric.py +386 -0
- rubin_sim/maf/maf_contrib/tdes_pop_metric.py +362 -0
- rubin_sim/maf/maf_contrib/transient_ascii_sed_metric.py +652 -0
- rubin_sim/maf/maf_contrib/triplet_metric.py +156 -0
- rubin_sim/maf/maf_contrib/var_depth_metric.py +157 -0
- rubin_sim/maf/maf_contrib/xrb_metrics.py +523 -0
- rubin_sim/maf/maf_contrib/young_stellar_objects_metric.py +200 -0
- rubin_sim/maf/maf_night_report.py +200 -0
- rubin_sim/maf/make_fbs_tracking_db.py +90 -0
- rubin_sim/maf/maps/__init__.py +8 -0
- rubin_sim/maf/maps/base_map.py +72 -0
- rubin_sim/maf/maps/create_gaia_density_map.py +158 -0
- rubin_sim/maf/maps/dust_map.py +66 -0
- rubin_sim/maf/maps/dust_map_3d.py +190 -0
- rubin_sim/maf/maps/ebv_3d_hp.py +170 -0
- rubin_sim/maf/maps/ebv_hp.py +64 -0
- rubin_sim/maf/maps/gal_coords_map.py +22 -0
- rubin_sim/maf/maps/galactic_plane_priority_maps.py +210 -0
- rubin_sim/maf/maps/stellar_density_map.py +73 -0
- rubin_sim/maf/maps/trilegal_map.py +82 -0
- rubin_sim/maf/metadata_dir.py +90 -0
- rubin_sim/maf/metric_bundles/__init__.py +3 -0
- rubin_sim/maf/metric_bundles/metric_bundle.py +816 -0
- rubin_sim/maf/metric_bundles/metric_bundle_group.py +834 -0
- rubin_sim/maf/metric_bundles/mo_metric_bundle.py +646 -0
- rubin_sim/maf/metrics/__init__.py +52 -0
- rubin_sim/maf/metrics/agn_time_lag_metric.py +118 -0
- rubin_sim/maf/metrics/agnstructure.py +141 -0
- rubin_sim/maf/metrics/area_summary_metrics.py +120 -0
- rubin_sim/maf/metrics/base_metric.py +215 -0
- rubin_sim/maf/metrics/brown_dwarf_metric.py +162 -0
- rubin_sim/maf/metrics/cadence_metrics.py +400 -0
- rubin_sim/maf/metrics/calibration_metrics.py +618 -0
- rubin_sim/maf/metrics/chip_vendor_metric.py +43 -0
- rubin_sim/maf/metrics/color_slope_metrics.py +189 -0
- rubin_sim/maf/metrics/cosmology_summary_metrics.py +1212 -0
- rubin_sim/maf/metrics/coverage_metric.py +48 -0
- rubin_sim/maf/metrics/crowding_metric.py +255 -0
- rubin_sim/maf/metrics/cumulative_metric.py +46 -0
- rubin_sim/maf/metrics/dcr_metric.py +93 -0
- rubin_sim/maf/metrics/exgal_m5.py +57 -0
- rubin_sim/maf/metrics/fft_metric.py +27 -0
- rubin_sim/maf/metrics/galactic_plane_metrics.py +375 -0
- rubin_sim/maf/metrics/galplane_time_sampling_metrics.py +236 -0
- rubin_sim/maf/metrics/hourglass_metric.py +130 -0
- rubin_sim/maf/metrics/incremental_template_metric.py +255 -0
- rubin_sim/maf/metrics/kuiper_metrics.py +26 -0
- rubin_sim/maf/metrics/mo_metrics.py +1496 -0
- rubin_sim/maf/metrics/mo_summary_metrics.py +464 -0
- rubin_sim/maf/metrics/night_pointing_metric.py +70 -0
- rubin_sim/maf/metrics/optimal_m5_metric.py +94 -0
- rubin_sim/maf/metrics/pair_metric.py +69 -0
- rubin_sim/maf/metrics/periodic_detect_metric.py +133 -0
- rubin_sim/maf/metrics/phase_gap_metric.py +172 -0
- rubin_sim/maf/metrics/qso_number_counts_metric.py +138 -0
- rubin_sim/maf/metrics/scaling_metrics.py +148 -0
- rubin_sim/maf/metrics/schedview_metrics.py +39 -0
- rubin_sim/maf/metrics/season_metrics.py +344 -0
- rubin_sim/maf/metrics/simple_metrics.py +546 -0
- rubin_sim/maf/metrics/sky_sat_metric.py +18 -0
- rubin_sim/maf/metrics/sn_cadence_metric.py +104 -0
- rubin_sim/maf/metrics/sn_n_sn_metric.py +1364 -0
- rubin_sim/maf/metrics/sn_sl_metric.py +216 -0
- rubin_sim/maf/metrics/sn_snr_metric.py +715 -0
- rubin_sim/maf/metrics/snr_weight.py +24 -0
- rubin_sim/maf/metrics/star_density.py +77 -0
- rubin_sim/maf/metrics/string_count_metric.py +95 -0
- rubin_sim/maf/metrics/summary_metrics.py +201 -0
- rubin_sim/maf/metrics/surfb_metric.py +175 -0
- rubin_sim/maf/metrics/technical_metrics.py +271 -0
- rubin_sim/maf/metrics/tgaps.py +412 -0
- rubin_sim/maf/metrics/tomography_models.py +2034 -0
- rubin_sim/maf/metrics/transient_metrics.py +268 -0
- rubin_sim/maf/metrics/uniformity_metrics.py +418 -0
- rubin_sim/maf/metrics/use_metrics.py +55 -0
- rubin_sim/maf/metrics/vector_metrics.py +190 -0
- rubin_sim/maf/metrics/visit_groups_metric.py +341 -0
- rubin_sim/maf/metrics/weak_lensing_systematics_metric.py +210 -0
- rubin_sim/maf/plots/__init__.py +14 -0
- rubin_sim/maf/plots/hg_plotters.py +1117 -0
- rubin_sim/maf/plots/hourglass_plotters.py +120 -0
- rubin_sim/maf/plots/mo_plotters.py +358 -0
- rubin_sim/maf/plots/nd_plotters.py +220 -0
- rubin_sim/maf/plots/neo_distance_plotter.py +140 -0
- rubin_sim/maf/plots/night_pointing_plotter.py +96 -0
- rubin_sim/maf/plots/oned_plotters.py +114 -0
- rubin_sim/maf/plots/perceptual_rainbow.py +30 -0
- rubin_sim/maf/plots/plot_handler.py +766 -0
- rubin_sim/maf/plots/skyproj_plotters.py +540 -0
- rubin_sim/maf/plots/spatial_plotters.py +1029 -0
- rubin_sim/maf/plots/special_plotters.py +256 -0
- rubin_sim/maf/plots/two_d_plotters.py +177 -0
- rubin_sim/maf/plots/xyplotter.py +37 -0
- rubin_sim/maf/run_comparison/__init__.py +5 -0
- rubin_sim/maf/run_comparison/archive.py +584 -0
- rubin_sim/maf/run_comparison/gather_summaries.py +125 -0
- rubin_sim/maf/run_comparison/microlensing_compare.py +514 -0
- rubin_sim/maf/run_comparison/radar_plot.py +202 -0
- rubin_sim/maf/run_comparison/summary_plots.py +710 -0
- rubin_sim/maf/run_moving_calc.py +239 -0
- rubin_sim/maf/run_moving_fractions.py +128 -0
- rubin_sim/maf/run_moving_join.py +103 -0
- rubin_sim/maf/run_selfcal_metric.py +92 -0
- rubin_sim/maf/scimaf_dir.py +87 -0
- rubin_sim/maf/show_maf.py +227 -0
- rubin_sim/maf/slicers/__init__.py +13 -0
- rubin_sim/maf/slicers/base_slicer.py +513 -0
- rubin_sim/maf/slicers/base_spatial_slicer.py +202 -0
- rubin_sim/maf/slicers/healpix_sdss_slicer.py +118 -0
- rubin_sim/maf/slicers/healpix_slicer.py +189 -0
- rubin_sim/maf/slicers/healpix_subset_slicer.py +293 -0
- rubin_sim/maf/slicers/hourglass_slicer.py +37 -0
- rubin_sim/maf/slicers/mo_slicer.py +171 -0
- rubin_sim/maf/slicers/movie_slicer.py +288 -0
- rubin_sim/maf/slicers/nd_slicer.py +147 -0
- rubin_sim/maf/slicers/one_d_slicer.py +210 -0
- rubin_sim/maf/slicers/time_interval_slicers.py +283 -0
- rubin_sim/maf/slicers/uni_slicer.py +57 -0
- rubin_sim/maf/slicers/user_points_slicer.py +141 -0
- rubin_sim/maf/stackers/__init__.py +13 -0
- rubin_sim/maf/stackers/base_stacker.py +221 -0
- rubin_sim/maf/stackers/coord_stackers.py +224 -0
- rubin_sim/maf/stackers/date_stackers.py +192 -0
- rubin_sim/maf/stackers/general_stackers.py +683 -0
- rubin_sim/maf/stackers/get_col_info.py +104 -0
- rubin_sim/maf/stackers/label_stackers.py +114 -0
- rubin_sim/maf/stackers/m5_optimal_stacker.py +126 -0
- rubin_sim/maf/stackers/mo_phase.py +265 -0
- rubin_sim/maf/stackers/mo_stackers.py +486 -0
- rubin_sim/maf/stackers/n_follow_stacker.py +187 -0
- rubin_sim/maf/stackers/neo_dist_stacker.py +126 -0
- rubin_sim/maf/stackers/sdss_stackers.py +30 -0
- rubin_sim/maf/stackers/sn_stacker.py +152 -0
- rubin_sim/maf/stackers/teff_stacker.py +154 -0
- rubin_sim/maf/utils/__init__.py +6 -0
- rubin_sim/maf/utils/astrometry_utils.py +93 -0
- rubin_sim/maf/utils/generate_fov_map.py +58 -0
- rubin_sim/maf/utils/get_date_version.py +28 -0
- rubin_sim/maf/utils/maf_utils.py +212 -0
- rubin_sim/maf/utils/opsim_utils.py +259 -0
- rubin_sim/maf/utils/output_utils.py +34 -0
- rubin_sim/maf/utils/sn_n_sn_utils.py +894 -0
- rubin_sim/maf/utils/sn_utils.py +369 -0
- rubin_sim/maf/utils/stellar_mags.py +197 -0
- rubin_sim/maf/web/__init__.py +2 -0
- rubin_sim/maf/web/favicon.ico +0 -0
- rubin_sim/maf/web/maf_run_results.py +645 -0
- rubin_sim/maf/web/maf_tracking.py +139 -0
- rubin_sim/maf/web/sorttable.js +496 -0
- rubin_sim/maf/web/templates/allmetricresults.html +72 -0
- rubin_sim/maf/web/templates/configs.html +28 -0
- rubin_sim/maf/web/templates/macros.html +243 -0
- rubin_sim/maf/web/templates/master.html +294 -0
- rubin_sim/maf/web/templates/metricselect.html +91 -0
- rubin_sim/maf/web/templates/multicolor.html +147 -0
- rubin_sim/maf/web/templates/results.html +82 -0
- rubin_sim/maf/web/templates/runselect.html +58 -0
- rubin_sim/maf/web/templates/stats.html +50 -0
- rubin_sim/moving_objects/__init__.py +8 -0
- rubin_sim/moving_objects/base_obs.py +468 -0
- rubin_sim/moving_objects/cheby_fits.py +689 -0
- rubin_sim/moving_objects/cheby_values.py +231 -0
- rubin_sim/moving_objects/chebyshev_utils.py +365 -0
- rubin_sim/moving_objects/direct_obs.py +376 -0
- rubin_sim/moving_objects/make_lsst_obs.py +282 -0
- rubin_sim/moving_objects/ooephemerides.py +643 -0
- rubin_sim/moving_objects/orbits.py +507 -0
- rubin_sim/moving_objects/pre_generate.py +37 -0
- rubin_sim/moving_objects/utils.py +61 -0
- rubin_sim/phot_utils/__init__.py +7 -0
- rubin_sim/phot_utils/bandpass.py +425 -0
- rubin_sim/phot_utils/photometric_parameters.py +449 -0
- rubin_sim/phot_utils/physical_parameters.py +50 -0
- rubin_sim/phot_utils/predicted_zeropoints.py +245 -0
- rubin_sim/phot_utils/sed.py +1773 -0
- rubin_sim/phot_utils/sed_utils.py +52 -0
- rubin_sim/phot_utils/signaltonoise.py +695 -0
- rubin_sim/phot_utils/spectral_resampling.py +161 -0
- rubin_sim/satellite_constellations/__init__.py +3 -0
- rubin_sim/satellite_constellations/basis_function.py +40 -0
- rubin_sim/satellite_constellations/model_observatory.py +157 -0
- rubin_sim/satellite_constellations/sat_utils.py +488 -0
- rubin_sim/selfcal/__init__.py +4 -0
- rubin_sim/selfcal/generate_catalog.py +188 -0
- rubin_sim/selfcal/offsets.py +119 -0
- rubin_sim/selfcal/solver.py +143 -0
- rubin_sim/selfcal/star_tools.py +42 -0
- rubin_sim/sim_archive/__init__.py +14 -0
- rubin_sim/sim_archive/conda_packages.py +65 -0
- rubin_sim/sim_archive/future_vsarch.py +480 -0
- rubin_sim/sim_archive/make_snapshot.py +255 -0
- rubin_sim/sim_archive/prenight.py +216 -0
- rubin_sim/sim_archive/prenightindex.py +229 -0
- rubin_sim/sim_archive/prototype.py +1029 -0
- rubin_sim/sim_archive/sim_archive.py +680 -0
- rubin_sim/sim_archive/tempdb.py +56 -0
- rubin_sim/sim_archive/util.py +146 -0
- rubin_sim/sim_archive/vseqarchive.py +965 -0
- rubin_sim/sim_archive/vseqmetadata.py +1721 -0
- rubin_sim/skybrightness/__init__.py +5 -0
- rubin_sim/skybrightness/allsky_db.py +93 -0
- rubin_sim/skybrightness/data/ESO_Spectra/eso_tools.py +505 -0
- rubin_sim/skybrightness/data/solarSpec/package.py +22 -0
- rubin_sim/skybrightness/generate_hdf5.py +243 -0
- rubin_sim/skybrightness/interp_components.py +798 -0
- rubin_sim/skybrightness/sky_model.py +771 -0
- rubin_sim/skybrightness/twilight_func.py +83 -0
- rubin_sim/skybrightness/utils.py +91 -0
- rubin_sim-2.6.1.dev2.dist-info/METADATA +95 -0
- rubin_sim-2.6.1.dev2.dist-info/RECORD +387 -0
- rubin_sim-2.6.1.dev2.dist-info/WHEEL +5 -0
- rubin_sim-2.6.1.dev2.dist-info/entry_points.txt +24 -0
- rubin_sim-2.6.1.dev2.dist-info/licenses/LICENSE +674 -0
- rubin_sim-2.6.1.dev2.dist-info/top_level.txt +5 -0
- sql/make_vseqmeta.sql +251 -0
- tests/data/test_data.py +26 -0
- tests/data/test_ddf_grid.py +17 -0
- tests/maf/test_3x2fom.py +68 -0
- tests/maf/test_archive.py +162 -0
- tests/maf/test_basemetrics.py +99 -0
- tests/maf/test_batchcommon.py +36 -0
- tests/maf/test_batches.py +159 -0
- tests/maf/test_cadencemetrics.py +388 -0
- tests/maf/test_calibrationmetrics.py +242 -0
- tests/maf/test_color_slopes.py +71 -0
- tests/maf/test_cosmology_summaries.py +20 -0
- tests/maf/test_gathersummaries.py +48 -0
- tests/maf/test_healpixslicer.py +439 -0
- tests/maf/test_healpixsubsetslicer.py +273 -0
- tests/maf/test_hgplotters.py +145 -0
- tests/maf/test_hourglassmetric.py +33 -0
- tests/maf/test_io.py +187 -0
- tests/maf/test_json.py +169 -0
- tests/maf/test_maps.py +199 -0
- tests/maf/test_metricbundle.py +69 -0
- tests/maf/test_mometrics.py +422 -0
- tests/maf/test_movieslicer.py +216 -0
- tests/maf/test_ndslicer.py +240 -0
- tests/maf/test_neodistanceplotter.py +41 -0
- tests/maf/test_onedslicer.py +245 -0
- tests/maf/test_opsimutils.py +80 -0
- tests/maf/test_plotters.py +134 -0
- tests/maf/test_resultsdb.py +145 -0
- tests/maf/test_schedviewmetrics.py +14 -0
- tests/maf/test_simplemetrics.py +200 -0
- tests/maf/test_snmetrics.py +335 -0
- tests/maf/test_snmetrics_nsn.py +123 -0
- tests/maf/test_stackers.py +423 -0
- tests/maf/test_stellarmags.py +50 -0
- tests/maf/test_stringcount.py +26 -0
- tests/maf/test_summary_plots.py +197 -0
- tests/maf/test_summarymetrics.py +82 -0
- tests/maf/test_technicalmetrics.py +267 -0
- tests/maf/test_templatemetrics.py +86 -0
- tests/maf/test_timeintervalslicers.py +97 -0
- tests/maf/test_trackingdb.py +88 -0
- tests/maf/test_unislicer.py +116 -0
- tests/maf/test_vectormetrics.py +225 -0
- tests/maf/test_visitgroupsmetric.py +181 -0
- tests/moving_objects/test_camera.py +39 -0
- tests/moving_objects/test_chebyfits.py +188 -0
- tests/moving_objects/test_chebyshevutils.py +76 -0
- tests/moving_objects/test_chebyvalues.py +245 -0
- tests/moving_objects/test_ephemerides.py +219 -0
- tests/moving_objects/test_orbits.py +170 -0
- tests/moving_objects/test_sed_data.py +61 -0
- tests/phot_utils/test_approximatebandpasses.py +91 -0
- tests/phot_utils/test_photometricparameters.py +268 -0
- tests/phot_utils/test_photometry.py +61 -0
- tests/phot_utils/test_predicted_zeropoints.py +53 -0
- tests/phot_utils/test_read_bandpasses.py +29 -0
- tests/phot_utils/test_sed.py +368 -0
- tests/phot_utils/test_snr.py +370 -0
- tests/satellite_constellations/test_satellites.py +36 -0
- tests/sim_archive/test_make_snapshot.py +24 -0
- tests/sim_archive/test_prototype_sim_archive.py +204 -0
- tests/sim_archive/test_vseqarchive.py +947 -0
- 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
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
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
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>
|