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,210 @@
|
|
|
1
|
+
__all__ = (
|
|
2
|
+
"gp_priority_map_components_to_keys",
|
|
3
|
+
"galplane_priority_map",
|
|
4
|
+
"GalacticPlanePriorityMap",
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
import os
|
|
8
|
+
import warnings
|
|
9
|
+
|
|
10
|
+
import healpy as hp
|
|
11
|
+
import numpy as np
|
|
12
|
+
from astropy.io import fits
|
|
13
|
+
from rubin_scheduler.data import get_data_dir
|
|
14
|
+
|
|
15
|
+
from rubin_sim.maf.maps import BaseMap
|
|
16
|
+
from rubin_sim.maf.utils import radec2pix
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def gp_priority_map_components_to_keys(filtername, science_map):
|
|
20
|
+
"""A convenience function to help keep the map key
|
|
21
|
+
formats in sync in various places.
|
|
22
|
+
"""
|
|
23
|
+
return f"galplane_priority_{science_map}:{filtername}"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def gp_priority_map_keys_to_components(mapname):
|
|
27
|
+
s, f = mapname.replace("galplane_priority_", "").split(":")
|
|
28
|
+
return f, s
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def galplane_priority_map(
|
|
32
|
+
nside=64,
|
|
33
|
+
get_keys=False,
|
|
34
|
+
ra=None,
|
|
35
|
+
dec=None,
|
|
36
|
+
pixels=None,
|
|
37
|
+
interp=False,
|
|
38
|
+
map_path=None,
|
|
39
|
+
use_alt_maps=False,
|
|
40
|
+
):
|
|
41
|
+
"""Reads and saves the galactic plane priority maps.
|
|
42
|
+
|
|
43
|
+
Parameters
|
|
44
|
+
----------
|
|
45
|
+
nside : `int`
|
|
46
|
+
Healpixel resolution (2^x). At present, this must be 64.
|
|
47
|
+
get_keys : `bool`, opt
|
|
48
|
+
Set this to True to retrieve *only* the keys
|
|
49
|
+
(such as the science map names) for the maps.
|
|
50
|
+
Default False.
|
|
51
|
+
ra : `np.ndarray` or `float`, opt
|
|
52
|
+
RA (can take numpy array).
|
|
53
|
+
Default None sets up healpix array of nside. Radians.
|
|
54
|
+
dec : `np.ndarray` or `float`, opt
|
|
55
|
+
Dec (can take numpy array).
|
|
56
|
+
Default None set up healpix array of nside. Radians.
|
|
57
|
+
pixels : `np.ndarray`, opt
|
|
58
|
+
Healpixel IDs, to sub-select particular healpix points.
|
|
59
|
+
Default uses all points.
|
|
60
|
+
Easiest way to access healpix values.
|
|
61
|
+
Note that the pixels in the healpix array MUST come from a
|
|
62
|
+
healpix grid with the same nside as the galactic plane priority map.
|
|
63
|
+
Using different nsides can potentially fail silently.
|
|
64
|
+
interp : `bool`, opt
|
|
65
|
+
Should returned values be interpolated (True)
|
|
66
|
+
or just nearest neighbor (False).
|
|
67
|
+
Default False.
|
|
68
|
+
map_path : `str`, opt
|
|
69
|
+
Path to directory containing dust map files.
|
|
70
|
+
Default None, uses $RUBIN_SIM_DATA_DIR/maps.
|
|
71
|
+
use_alt_maps : `bool`, opt
|
|
72
|
+
Use the priority_GalPlane_footprint_alt_map_data_{ugrizysum}.fits
|
|
73
|
+
files instead of the default
|
|
74
|
+
priority_galPlane_footprint_map_data_{ugrizysum}.fits files.
|
|
75
|
+
"""
|
|
76
|
+
# This is a function that will read the galactic plane priority map data
|
|
77
|
+
# and hold onto it indefinitely
|
|
78
|
+
# this also lets us use a range of slicers, as it will set the slice_point
|
|
79
|
+
# data appropriately.
|
|
80
|
+
|
|
81
|
+
# This function's primary goal is to return this information to the map,
|
|
82
|
+
# to use for the slicer.
|
|
83
|
+
# So you MUST specify ra/dec or pixels -- or only retireve the keys
|
|
84
|
+
if get_keys is False:
|
|
85
|
+
if (ra is None) & (dec is None) & (pixels is None):
|
|
86
|
+
raise RuntimeError("Need to set ra,dec or pixels.")
|
|
87
|
+
|
|
88
|
+
# This reads and stores the galactic plane priority maps
|
|
89
|
+
# The galactic plane priority maps are only available in nside 64
|
|
90
|
+
# There are several different versions of the map -
|
|
91
|
+
# but we will almost always run all of the galactic plane metrics
|
|
92
|
+
# together, so we'll just read them all at once here
|
|
93
|
+
if nside != 64:
|
|
94
|
+
raise RuntimeError("Currently only available with nside=64")
|
|
95
|
+
|
|
96
|
+
# Do we need to read from disk?
|
|
97
|
+
if not hasattr(galplane_priority_map, "maps"):
|
|
98
|
+
galplane_priority_map.nside = 64
|
|
99
|
+
galplane_priority_map.filterlist = ["u", "g", "r", "i", "z", "y", "sum"]
|
|
100
|
+
if map_path is not None:
|
|
101
|
+
data_dir = map_path
|
|
102
|
+
else:
|
|
103
|
+
data_dir = os.path.join(get_data_dir(), "maps", "GalacticPlanePriorityMaps")
|
|
104
|
+
galplane_priority_map.maps = {}
|
|
105
|
+
science_maps = []
|
|
106
|
+
for f in galplane_priority_map.filterlist:
|
|
107
|
+
if use_alt_maps:
|
|
108
|
+
filename = f"priority_GalPlane_footprint_alt_map_data_{f}.fits"
|
|
109
|
+
else:
|
|
110
|
+
filename = f"priority_GalPlane_footprint_map_data_{f}.fits"
|
|
111
|
+
mapfile = os.path.join(data_dir, filename)
|
|
112
|
+
with fits.open(mapfile) as hdul:
|
|
113
|
+
galplane_priority_map.maps[f] = hdul[1].data
|
|
114
|
+
print(f"Read galplane priority map from {mapfile}")
|
|
115
|
+
science_maps += list(galplane_priority_map.maps[f].dtype.names)
|
|
116
|
+
science_maps = list(set(science_maps))
|
|
117
|
+
galplane_priority_map.science_maps = science_maps
|
|
118
|
+
|
|
119
|
+
galplane_priority_map.keys = [
|
|
120
|
+
gp_priority_map_components_to_keys(f, s)
|
|
121
|
+
for f in galplane_priority_map.filterlist
|
|
122
|
+
for s in galplane_priority_map.science_maps
|
|
123
|
+
]
|
|
124
|
+
|
|
125
|
+
if get_keys:
|
|
126
|
+
return galplane_priority_map.keys
|
|
127
|
+
|
|
128
|
+
if pixels is not None:
|
|
129
|
+
# Assume if pixels is set, then interp is irrelevant
|
|
130
|
+
maps = {}
|
|
131
|
+
for k in galplane_priority_map.keys:
|
|
132
|
+
f, s = gp_priority_map_keys_to_components(k)
|
|
133
|
+
maps[k] = galplane_priority_map.maps[f][s][pixels]
|
|
134
|
+
# BUT, if we were provided ra/dec then have to see if we should interpolate
|
|
135
|
+
else:
|
|
136
|
+
if interp: # find interpolated values at given ra/dec
|
|
137
|
+
maps = {}
|
|
138
|
+
for k in galplane_priority_map.keys:
|
|
139
|
+
f, s = gp_priority_map_keys_to_components(k)
|
|
140
|
+
maps[k] = hp.get_interp_val(galplane_priority_map.maps[f][s], np.pi / 2.0 - dec, ra)
|
|
141
|
+
else: # just find nearest neighbor pixel value and return those
|
|
142
|
+
pixels = radec2pix(nside, ra, dec)
|
|
143
|
+
maps = {}
|
|
144
|
+
for k in galplane_priority_map.keys:
|
|
145
|
+
f, s = gp_priority_map_keys_to_components(k)
|
|
146
|
+
maps[k] = galplane_priority_map.maps[f][s][pixels]
|
|
147
|
+
return maps
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
class GalacticPlanePriorityMap(BaseMap):
|
|
151
|
+
"""Add the galactic plane priority map data to the slice points.
|
|
152
|
+
|
|
153
|
+
This calls galactic_plane_priority_map to read the map data, and then
|
|
154
|
+
assigns the appropriate values to each slice_point.
|
|
155
|
+
If the slicer is an nside=64 healpix slicer, this is trivial.
|
|
156
|
+
(other use-cases currently experimental and not supported).
|
|
157
|
+
|
|
158
|
+
Add keys corresponding to each of the galplane priority map elements.
|
|
159
|
+
|
|
160
|
+
Parameters
|
|
161
|
+
----------
|
|
162
|
+
interp : `bool`, opt
|
|
163
|
+
Interpolate the dust map at each slice_point (True)
|
|
164
|
+
or just use the nearest value (False).
|
|
165
|
+
Default is False.
|
|
166
|
+
nside : `int`, opt
|
|
167
|
+
Default nside value to read the dust map from disk.
|
|
168
|
+
Primarily useful if the slicer is not a healpix slicer.
|
|
169
|
+
Default 64.
|
|
170
|
+
map_path : `str`, opt
|
|
171
|
+
Define a path to the directory holding the dust map files.
|
|
172
|
+
Default None, which uses RUBIN_SIM_DATA_DIR.
|
|
173
|
+
"""
|
|
174
|
+
|
|
175
|
+
def __init__(self, interp=False, nside=64, map_path=None):
|
|
176
|
+
self.keynames = galplane_priority_map(get_keys=True)
|
|
177
|
+
self.interp = interp
|
|
178
|
+
self.nside = nside
|
|
179
|
+
self.map_path = map_path
|
|
180
|
+
|
|
181
|
+
def run(self, slice_points):
|
|
182
|
+
# If the slicer has nside,
|
|
183
|
+
# it's a healpix slicer so we can read the map directly
|
|
184
|
+
if "nside" in slice_points:
|
|
185
|
+
if slice_points["nside"] != self.nside:
|
|
186
|
+
warnings.warn(
|
|
187
|
+
f"Slicer value of nside {slice_points['nside']} different "
|
|
188
|
+
f"from map value {self.nside}, using slicer value"
|
|
189
|
+
)
|
|
190
|
+
maps = galplane_priority_map(
|
|
191
|
+
slice_points["nside"],
|
|
192
|
+
pixels=slice_points["sid"],
|
|
193
|
+
map_path=self.map_path,
|
|
194
|
+
)
|
|
195
|
+
for key in self.keynames:
|
|
196
|
+
slice_points[key] = maps[key]
|
|
197
|
+
# Not a healpix slicer, look up values based on RA,dec
|
|
198
|
+
# with possible interpolation
|
|
199
|
+
else:
|
|
200
|
+
maps = galplane_priority_map(
|
|
201
|
+
self.nside,
|
|
202
|
+
ra=slice_points["ra"],
|
|
203
|
+
dec=slice_points["dec"],
|
|
204
|
+
interp=self.interp,
|
|
205
|
+
map_path=self.map_path,
|
|
206
|
+
)
|
|
207
|
+
for key in self.keynames:
|
|
208
|
+
slice_points[key] = maps[key]
|
|
209
|
+
|
|
210
|
+
return slice_points
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
__all__ = ("StellarDensityMap",)
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
import healpy as hp
|
|
6
|
+
import numpy as np
|
|
7
|
+
from rubin_scheduler.data import get_data_dir
|
|
8
|
+
|
|
9
|
+
from rubin_sim.maf.utils import radec2pix
|
|
10
|
+
|
|
11
|
+
from . import BaseMap
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class StellarDensityMap(BaseMap):
|
|
15
|
+
"""Read and hold the cumulative stellar luminosity function for
|
|
16
|
+
each slice point.
|
|
17
|
+
|
|
18
|
+
The underlying stellar luminosity function map is nside = 64, and contains
|
|
19
|
+
stars per sq degree at a series of magnitudes (the map contains
|
|
20
|
+
`starLumFunc_<filter>` and `starMapBins_<filter>`).
|
|
21
|
+
For slice points which do not match nside=64, the map uses the nearest
|
|
22
|
+
healpix point on the nside=64 grid.
|
|
23
|
+
|
|
24
|
+
The stellar luminosity function comes from the GalFast model.
|
|
25
|
+
|
|
26
|
+
Parameters
|
|
27
|
+
----------
|
|
28
|
+
startype : `str` ('allstars', 'wdstars')
|
|
29
|
+
Load the luminosity function for all stars ('allstars'),
|
|
30
|
+
which includes main-sequence stars
|
|
31
|
+
white dwarfs, blue horozontal branch, RR Lyrae, and Cepheids.
|
|
32
|
+
The 'wdstars' option only includes white dwarf stars.
|
|
33
|
+
filtername : `str`
|
|
34
|
+
Filter to use. Options of u,g,r,i,z,y
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
def __init__(self, startype="allstars", filtername="r", map_dir=None):
|
|
38
|
+
if map_dir is not None:
|
|
39
|
+
self.map_dir = map_dir
|
|
40
|
+
else:
|
|
41
|
+
self.map_dir = os.path.join(get_data_dir(), "maps", "StarMaps")
|
|
42
|
+
self.filtername = filtername
|
|
43
|
+
self.keynames = [
|
|
44
|
+
f"starLumFunc_{self.filtername}",
|
|
45
|
+
f"starMapBins_{self.filtername}",
|
|
46
|
+
]
|
|
47
|
+
if startype == "allstars":
|
|
48
|
+
self.startype = ""
|
|
49
|
+
else:
|
|
50
|
+
self.startype = startype + "_"
|
|
51
|
+
|
|
52
|
+
def _read_map(self):
|
|
53
|
+
filename = "starDensity_%s_%snside_64.npz" % (self.filtername, self.startype)
|
|
54
|
+
star_map = np.load(os.path.join(self.map_dir, filename))
|
|
55
|
+
self.star_map = star_map["starDensity"].copy()
|
|
56
|
+
self.star_map_bins = star_map["bins"].copy()
|
|
57
|
+
self.starmap_nside = hp.npix2nside(np.size(self.star_map[:, 0]))
|
|
58
|
+
|
|
59
|
+
def run(self, slice_points):
|
|
60
|
+
self._read_map()
|
|
61
|
+
|
|
62
|
+
nside_match = False
|
|
63
|
+
if "nside" in slice_points:
|
|
64
|
+
if slice_points["nside"] == self.starmap_nside:
|
|
65
|
+
slice_points[f"starLumFunc_{self.filtername}"] = self.star_map
|
|
66
|
+
nside_match = True
|
|
67
|
+
if not nside_match:
|
|
68
|
+
# Compute the healpix for each slice_point on the nside=64 grid
|
|
69
|
+
indx = radec2pix(self.starmap_nside, slice_points["ra"], slice_points["dec"])
|
|
70
|
+
slice_points[f"starLumFunc_{self.filtername}"] = self.star_map[indx, :]
|
|
71
|
+
|
|
72
|
+
slice_points[f"starMapBins_{self.filtername}"] = self.star_map_bins
|
|
73
|
+
return slice_points
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
__all__ = ("TrilegalDensityMap",)
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
|
|
5
|
+
import healpy as hp
|
|
6
|
+
import numpy as np
|
|
7
|
+
from astropy import units as u
|
|
8
|
+
from astropy.coordinates import SkyCoord
|
|
9
|
+
from rubin_scheduler.data import get_data_dir
|
|
10
|
+
from rubin_scheduler.utils import _build_tree, _hpid2_ra_dec, _xyz_from_ra_dec
|
|
11
|
+
|
|
12
|
+
from . import BaseMap
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class TrilegalDensityMap(BaseMap):
|
|
16
|
+
"""Read and hold the cumulative stellar luminosity function for
|
|
17
|
+
each slice point.
|
|
18
|
+
|
|
19
|
+
The stellar luminosity function comes from the TRILEGAL model.
|
|
20
|
+
|
|
21
|
+
Parameters
|
|
22
|
+
----------
|
|
23
|
+
filtername : `str`, opt
|
|
24
|
+
Filter to use. Options of u,g,r,i,z,y. Default r.
|
|
25
|
+
nside : `int`, opt
|
|
26
|
+
The HEALpix nside (can be 64 or 128). Default 64.
|
|
27
|
+
ext : `bool`, opt
|
|
28
|
+
Use the full sky maps. Default True.
|
|
29
|
+
|
|
30
|
+
Notes
|
|
31
|
+
-----
|
|
32
|
+
The underlying stellar luminosity function map is available in a
|
|
33
|
+
variety of nsides, and contains
|
|
34
|
+
stars per sq degree at a series of magnitudes (the map contains
|
|
35
|
+
`starLumFunc_<filter>` and `starMapBins_<filter>`).
|
|
36
|
+
For slice points which do not match one of the native nside options,
|
|
37
|
+
the map uses the nearest healpix point on the specified nside grid.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
def __init__(self, filtername="r", nside=64, ext=True):
|
|
41
|
+
self.map_dir = os.path.join(get_data_dir(), "maps", "TriMaps")
|
|
42
|
+
self.filtername = filtername
|
|
43
|
+
self.keynames = [
|
|
44
|
+
f"starLumFunc_{self.filtername}",
|
|
45
|
+
f"starMapBins_{self.filtername}",
|
|
46
|
+
]
|
|
47
|
+
self.nside = nside
|
|
48
|
+
self.ext = ext
|
|
49
|
+
|
|
50
|
+
def _read_map(self):
|
|
51
|
+
if self.ext:
|
|
52
|
+
filename = "TRIstarDensity_%s_nside_%i_ext.npz" % (
|
|
53
|
+
self.filtername,
|
|
54
|
+
self.nside,
|
|
55
|
+
)
|
|
56
|
+
else:
|
|
57
|
+
filename = "TRIstarDensity_%s_nside_%i.npz" % (self.filtername, self.nside)
|
|
58
|
+
star_map = np.load(os.path.join(self.map_dir, filename))
|
|
59
|
+
self.star_map = star_map["starDensity"].copy()
|
|
60
|
+
self.star_map_bins = star_map["bins"].copy()
|
|
61
|
+
self.starmap_nside = hp.npix2nside(np.size(self.star_map[:, 0]))
|
|
62
|
+
# note, the trilegal maps are in galactic coordinates
|
|
63
|
+
# and use nested healpix.
|
|
64
|
+
gal_l, gal_b = _hpid2_ra_dec(self.nside, np.arange(hp.nside2npix(self.nside)), nest=True)
|
|
65
|
+
|
|
66
|
+
# Convert that to RA,dec. Then do nearest neighbor lookup.
|
|
67
|
+
c = SkyCoord(l=gal_l * u.rad, b=gal_b * u.rad, frame="galactic").transform_to("icrs")
|
|
68
|
+
ra = c.ra.rad
|
|
69
|
+
dec = c.dec.rad
|
|
70
|
+
|
|
71
|
+
self.tree = _build_tree(ra, dec)
|
|
72
|
+
|
|
73
|
+
def run(self, slice_points):
|
|
74
|
+
self._read_map()
|
|
75
|
+
|
|
76
|
+
x, y, z = _xyz_from_ra_dec(slice_points["ra"], slice_points["dec"])
|
|
77
|
+
|
|
78
|
+
dist, indices = self.tree.query(list(zip(x, y, z)))
|
|
79
|
+
|
|
80
|
+
slice_points["starLumFunc_%s" % self.filtername] = self.star_map[indices, :]
|
|
81
|
+
slice_points["starMapBins_%s" % self.filtername] = self.star_map_bins
|
|
82
|
+
return slice_points
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
from . import batches as batches
|
|
2
|
+
from .db import ResultsDb
|
|
3
|
+
from .metric_bundles import MetricBundleGroup
|
|
4
|
+
from .slicers import HealpixSlicer, make_wfd_subset_slicer
|
|
5
|
+
|
|
6
|
+
__all__ = ("metadata_dir",)
|
|
7
|
+
|
|
8
|
+
import argparse
|
|
9
|
+
import glob
|
|
10
|
+
import os
|
|
11
|
+
import shutil
|
|
12
|
+
|
|
13
|
+
import matplotlib
|
|
14
|
+
|
|
15
|
+
matplotlib.use("Agg")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def metadata_dir():
|
|
19
|
+
"""
|
|
20
|
+
Run the metadata batch on all .db files in a directory.
|
|
21
|
+
"""
|
|
22
|
+
parser = argparse.ArgumentParser()
|
|
23
|
+
parser.add_argument("--db", type=str, default=None)
|
|
24
|
+
parser.add_argument(
|
|
25
|
+
"--nside",
|
|
26
|
+
type=float,
|
|
27
|
+
default=64,
|
|
28
|
+
help="nside to use for the healpix slicer and subsetslicer for metrics.",
|
|
29
|
+
)
|
|
30
|
+
parser.add_argument(
|
|
31
|
+
"--wfd_threshold",
|
|
32
|
+
type=float,
|
|
33
|
+
default=750,
|
|
34
|
+
help="Threshold number of visits per pointing to use to define the WFD footprint."
|
|
35
|
+
"Default value of 750 corresponds to the minimum median value per pointing from the SRD.",
|
|
36
|
+
)
|
|
37
|
+
parser.add_argument(
|
|
38
|
+
"--no_clobber",
|
|
39
|
+
dest="no_clobber",
|
|
40
|
+
action="store_true",
|
|
41
|
+
default=False,
|
|
42
|
+
help="Do not remove existing directory outputs",
|
|
43
|
+
)
|
|
44
|
+
args = parser.parse_args()
|
|
45
|
+
|
|
46
|
+
# If runNames not given, scan for sim_name databases in current
|
|
47
|
+
# directory and use those
|
|
48
|
+
# Note that 'runNames' can be full path to directories
|
|
49
|
+
|
|
50
|
+
if args.db is None:
|
|
51
|
+
# Just look for any .db files in this directory
|
|
52
|
+
db_files = glob.glob("*.db")
|
|
53
|
+
# But remove trackingDb and results_db if they're there
|
|
54
|
+
try:
|
|
55
|
+
db_files.remove("trackingDb_sqlite.db")
|
|
56
|
+
except ValueError:
|
|
57
|
+
pass
|
|
58
|
+
try:
|
|
59
|
+
db_files.remove("resultsDb_sqlite.db")
|
|
60
|
+
except ValueError:
|
|
61
|
+
pass
|
|
62
|
+
elif isinstance(args.db, str):
|
|
63
|
+
db_files = [args.db]
|
|
64
|
+
else:
|
|
65
|
+
db_files = args.db
|
|
66
|
+
|
|
67
|
+
sim_names = [os.path.basename(name).replace(".db", "") for name in db_files]
|
|
68
|
+
|
|
69
|
+
for filename, sim_name in zip(db_files, sim_names):
|
|
70
|
+
# Connect to the database
|
|
71
|
+
colmap = batches.col_map_dict()
|
|
72
|
+
|
|
73
|
+
# Set and create if needed the output directory
|
|
74
|
+
out_dir = sim_name + "_meta"
|
|
75
|
+
if not args.no_clobber:
|
|
76
|
+
if os.path.isdir(out_dir):
|
|
77
|
+
shutil.rmtree(out_dir)
|
|
78
|
+
|
|
79
|
+
# Find the 'wfd' footprint - use the scheduler footprint.
|
|
80
|
+
allsky_slicer = HealpixSlicer(nside=args.nside)
|
|
81
|
+
wfd_slicer = make_wfd_subset_slicer(nside=args.nside)
|
|
82
|
+
|
|
83
|
+
bdict = batches.info_bundle_dicts(allsky_slicer, wfd_slicer, sim_name, colmap)
|
|
84
|
+
|
|
85
|
+
# Set up the resultsDB
|
|
86
|
+
results_db = ResultsDb(out_dir=out_dir)
|
|
87
|
+
# Go and run it
|
|
88
|
+
group = MetricBundleGroup(bdict, filename, out_dir=out_dir, results_db=results_db, save_early=False)
|
|
89
|
+
group.run_all(clear_memory=True, plot_now=True)
|
|
90
|
+
results_db.close()
|