Exemplo n.º 1
0
 def test_set_sampler_command_line(self):
     args_list = self.default_args_list
     args_list.append("--sampler")
     args_list.append("emcee")
     self.inputs = DataAnalysisInput(*parse_args(args_list, self.parser),
                                     test=True)
     self.assertEqual(self.inputs.sampler, "emcee")
 def test_sampler_kwargs_flat(self):
     kwargs_expected = dict(walks=1000)
     lines = ["sampler-kwargs: {walks:1000}"]
     self.write_tempory_ini_file(lines)
     args, unknown_args = parse_args([self.test_ini_filename], self.parser)
     self.assertEqual(convert_string_to_dict(args.sampler_kwargs),
                      kwargs_expected)
Exemplo n.º 3
0
def main():
    """ Data analysis main logic """
    args, unknown_args = parse_args(sys.argv[1:], create_analysis_parser())
    log_version_information()
    analysis = DataAnalysisInput(args, unknown_args)
    analysis.run_sampler()
    sys.exit(0)
 def test_sampler_kwargs_empty(self):
     kwargs_expected = dict()
     kwargs_str = "{}"
     lines = [f"sampler-kwargs: {kwargs_str}"]
     self.write_tempory_ini_file(lines)
     args, unknown_args = parse_args([self.test_ini_filename], self.parser)
     self.assertEqual(convert_string_to_dict(args.sampler_kwargs),
                      kwargs_expected)
 def test_prior_dict_multiline(self):
     kwargs_str = "{a: Uniform(name='a', minimum=0, maximum=1), b: 1}"
     lines = [
         "prior-dict: {a: Uniform(name='a', minimum=0, maximum=1)", "b: 1}"
     ]
     self.write_tempory_ini_file(lines)
     args, unknown_args = parse_args([self.test_ini_filename], self.parser)
     self.assertEqual(args.prior_dict, kwargs_str)
Exemplo n.º 6
0
    def test_generation_seed_increases_with_injection_index(self):
        """Assert that generation seed increments for each job.

        ie
        JOB 0 -- seed X
        JOB 1 -- seed X + 1
        ...
        JOB N -- seed X + N

        This is so that the gaussian data for each job will be different.
        """
        idx = 0
        generation_seed = 0
        args_list = [
            "--ini",
            "tests/test_data_generation.ini",
            f"--generation-seed={generation_seed}",
            f"--idx={idx}",
            "--gaussian-noise",
            "--trigger-time",
            "2",
            "--outdir",
            self.outdir,
            "--label",
            "TEST",
        ]
        self.inputs = DataGenerationInput(*parse_args(args_list, self.parser))
        self.assertEqual(self.inputs.generation_seed, idx + generation_seed)
        idx = 2
        generation_seed = 0
        args_list = [
            "--ini",
            "tests/test_data_generation.ini",
            f"--generation-seed={generation_seed}",
            f"--idx={idx}",
            "--gaussian-noise",
            "--trigger-time",
            "1126259462",
            "--outdir",
            self.outdir,
            "--label",
            "TEST",
        ]
        self.inputs = DataGenerationInput(*parse_args(args_list, self.parser))
        self.assertEqual(self.inputs.generation_seed, idx + generation_seed)
Exemplo n.º 7
0
def main():
    """ Data generation main logic """
    args, unknown_args = parse_args(sys.argv[1:], create_generation_parser())
    log_version_information()
    data = DataGenerationInput(args, unknown_args)
    if args.likelihood_type == "ROQGravitationalWaveTransient":
        data.save_roq_weights()
    data.save_data_dump()
    logger.info("Completed data generation")
 def test_sampler_kwargs_flat_long_multiline(self):
     kwargs_expected = dict(walks=1000, nact=5, test=1, blah="a")
     lines = [
         "sampler-kwargs: {walks:1000", "nact=5, test:1", "    blah=a}"
     ]
     self.write_tempory_ini_file(lines)
     args, unknown_args = parse_args([self.test_ini_filename], self.parser)
     self.assertEqual(convert_string_to_dict(args.sampler_kwargs),
                      kwargs_expected)
Exemplo n.º 9
0
 def test_inject_signal_into_gaussian_noise(self):
     args_list = [
         "tests/test_injection_in_gaussian_noise.ini",
         "--outdir",
         self.outdir,
     ]
     data_input = DataGenerationInput(*parse_args(args_list, self.parser))
     injection_param = data_input.injection_parameters
     self.assertTrue(injection_param["geocent_time"] == 0)
Exemplo n.º 10
0
    def test_data_quality_ignore_flag(self, mock_logs, is_data_good,
                                      get_data_method):
        timeseries, _ = load_test_strain_data()
        is_data_good.return_value = False
        get_data_method.return_value = timeseries

        args_list = [
            "tests/test_basic_ini.ini",
            "--detectors",
            "[H1, L1]",
            "--channel-dict",
            "{'H1': 'GDS-CALIB_STRAIN', 'L1': 'GDS-CALIB_STRAIN'}",
            "--duration",
            " 1",
            "--prior_file",
            "tests/example_prior.prior",
            "--waveform-approximant",
            "IMRPhenomPv2",
            "--idx",
            "0",
            "--trigger_time",
            "1126259462.4",
            "--label",
            "QUALITY_TEST",
        ]

        # make sure that when the flag is present, no error
        args, unknown = parse_args(args_list, create_generation_parser())
        args.trigger_time = 1126259462.4
        input = DataGenerationInput(args, unknown)
        self.assertFalse(input._is_gwpy_data_good())
        self.assertTrue(input.ignore_gwpy_data_quality_check)

        # make sure that when the flag is not present, error present
        args, unknown = parse_args(args_list, create_generation_parser())
        args.trigger_time = 1126259462.4
        args.ignore_gwpy_data_quality_check = False
        with self.assertRaises(BilbyPipeError):
            DataGenerationInput(args, unknown)
            self.assertFalse(input._is_gwpy_data_good())
            self.assertFalse(input.ignore_gwpy_data_quality_check)
Exemplo n.º 11
0
 def setUp(self):
     self.outdir = "test_outdir"
     self.default_args_list = [
         "--ini",
         "tests/test_data_analysis.ini",
         "--outdir",
         self.outdir,
     ]
     self.parser = create_analysis_parser()
     self.inputs = DataAnalysisInput(*parse_args(self.default_args_list,
                                                 self.parser),
                                     test=True)
 def test_detectors_single(self):
     args_list = [
         "tests/test_dag_ini_file.ini",
         "--detectors",
         "H1",
         "--detectors",
         "L1",
     ]
     parser = create_analysis_parser()
     args, unknown_args = parse_args(args_list, parser)
     self.assertNotEqual(args.detectors, ["'H1'", "'L1'"], args.detectors)
     self.assertEqual(args.detectors, ["H1", "L1"], args.detectors)
Exemplo n.º 13
0
 def test_injections_no_file(self):
     args_list = [
         "--ini",
         "tests/test_data_generation.ini",
         "--outdir",
         self.outdir,
         "--injection-file",
         "not_a_file",
         "--data-label",
         "TEST",
     ]
     with self.assertRaises(FileNotFoundError):
         self.inputs = DataGenerationInput(
             *parse_args(args_list, self.parser))
Exemplo n.º 14
0
 def setUp(self):
     self.outdir = "test_outdir"
     self.default_args_list = [
         "--ini",
         "tests/test_data_generation.ini",
         "--outdir",
         self.outdir,
         "--data-label",
         "TEST",
     ]
     self.parser = create_generation_parser()
     self.inputs = DataGenerationInput(*parse_args(self.default_args_list,
                                                   self.parser),
                                       create_data=False)
     self.gps_file = "tests/gps_file.txt"
Exemplo n.º 15
0
 def test_generation_seed_is_random_if_none_provided(self):
     """Assert that the generation seed is some random value if not provided."""
     idx = 0
     generation_seed = None
     args_list = [
         "--ini",
         "tests/test_data_generation.ini",
         f"--generation-seed={generation_seed}",
         f"--idx={idx}",
         "--gaussian-noise",
         "--trigger-time",
         "1126259462",
         "--outdir",
         self.outdir,
         "--label",
         "TEST",
     ]
     self.inputs = DataGenerationInput(*parse_args(args_list, self.parser))
     self.assertTrue(1 <= self.inputs.generation_seed <= 1e6)
Exemplo n.º 16
0
    def setUp(self):
        self.outdir = "test_outdir"
        self.data_dir = "tests/DATA/"
        self.default_args_list = [
            "--ini",
            "tests/test_data_generation.ini",
            "--outdir",
            self.outdir,
            "--data-label",
            "TEST",
        ]
        self.parser = create_generation_parser()
        self.inputs = DataGenerationInput(*parse_args(self.default_args_list,
                                                      self.parser),
                                          create_data=False)

        self.det = "H1"
        self.channel = "H1:DCS-CALIB_STRAIN_C02"
        self.start_time = 1126259356.0
        self.end_time = 1126259357.0
Exemplo n.º 17
0
    def test_inject_signal_into_time_domain_data(
            self, inject_signal_into_timeseries_method, get_data_method):
        timeseries, metadata = load_test_strain_data()

        get_data_method.return_value = timeseries
        inject_signal_into_timeseries_method.return_value = (timeseries,
                                                             metadata)
        args_list = ["tests/test_injection.ini", "--outdir", self.outdir]

        inputs = DataGenerationInput(*parse_args(args_list, self.parser))
        self.assertTrue(inputs.injection_parameters["geocent_time"] == 0)
        self.assertEqual(inject_signal_into_timeseries_method.call_count, 2)
        self.assertTrue(get_data_method.called)

        t0 = 1126259463.4
        t1 = t0 + 1

        t0_psd = t0 - 32
        t1_psd = t0

        get_data_method.assert_any_call("H1", "GWOSC", t0, t1)  # SIGNAL
        get_data_method.assert_any_call("H1", "GWOSC", t0_psd, t1_psd)  # PSD
        get_data_method.assert_any_call("L1", "GWOSC", t0, t1)  # SIGNAL
        get_data_method.assert_any_call("L1", "GWOSC", t0_psd, t1_psd)  # PSD
Exemplo n.º 18
0
    def test_script_inputs_detectors_from_command_line(self):
        args_list = self.default_args_list + [
            "--detectors", "H1", "--detectors", "L1"
        ]
        inputs = DataGenerationInput(*parse_args(args_list, self.parser),
                                     create_data=False)
        self.assertEqual(inputs.detectors, ["H1", "L1"])

        args_list = self.default_args_list + ["--detectors", "H1 L1"]
        inputs = DataGenerationInput(*parse_args(args_list, self.parser),
                                     create_data=False)
        self.assertEqual(inputs.detectors, ["H1", "L1"])

        args_list = self.default_args_list + ["--detectors", "L1 H1"]
        inputs = DataGenerationInput(*parse_args(args_list, self.parser),
                                     create_data=False)
        self.assertEqual(inputs.detectors, ["H1", "L1"])

        args_list = self.default_args_list + ["--detectors", "[L1, H1]"]
        inputs = DataGenerationInput(*parse_args(args_list, self.parser),
                                     create_data=False)

        args_list = self.default_args_list + ["--detectors", "[L1 H1]"]
        inputs = DataGenerationInput(*parse_args(args_list, self.parser),
                                     create_data=False)
        self.assertEqual(inputs.detectors, ["H1", "L1"])

        args_list = self.default_args_list + ["--detectors", '["L1", "H1"]']
        inputs = DataGenerationInput(*parse_args(args_list, self.parser),
                                     create_data=False)
        self.assertEqual(inputs.detectors, ["H1", "L1"])

        args_list = self.default_args_list + ["--detectors", "['L1', 'H1']"]
        inputs = DataGenerationInput(*parse_args(args_list, self.parser),
                                     create_data=False)
        self.assertEqual(inputs.detectors, ["H1", "L1"])
Exemplo n.º 19
0
 def test_set_reference_frequency(self):
     args_list = self.default_args_list + ["--reference-frequency", "10"]
     inputs = DataGenerationInput(*parse_args(args_list, self.parser),
                                  create_data=False)
     self.assertEqual(inputs.reference_frequency, 10)
 def test_simple(self):
     self.write_tempory_ini_file([])
     args, unknown_args = parse_args([self.test_ini_filename], self.parser)
     self.assertEqual(args.accounting, "test")
Exemplo n.º 21
0
 def test_set_sampling_seed(self):
     args_list = self.default_args_list + ["--sampling-seed", "1"]
     inputs = DataAnalysisInput(*parse_args(args_list, self.parser),
                                test=True)
     self.assertEqual(inputs.sampling_seed, 1)
 def test_detectors_double(self):
     args_list = ["tests/test_bilbyargparser.ini"]
     parser = create_analysis_parser()
     args, unknown_args = parse_args(args_list, parser)
     self.assertNotEqual(args.detectors, ["'H1'", "'L1'"], args.detectors)
     self.assertEqual(args.detectors, ["H1", "L1"], args.detectors)
Exemplo n.º 23
0
 def test_unset_sampling_kwargs(self):
     args, unknown_args = parse_args(self.default_args_list, self.parser)
     args.sampler_kwargs = None
     inputs = DataAnalysisInput(args, unknown_args, test=True)
     self.assertEqual(inputs.sampler_kwargs, dict())
Exemplo n.º 24
0
 def test_set_sampler_ini(self):
     self.inputs = DataAnalysisInput(*parse_args(self.default_args_list,
                                                 self.parser),
                                     test=True)
     self.assertEqual(self.inputs.sampler, "nestle")
 def test_prior_dict(self):
     kwargs_str = '{a=Uniform(name="a", minimum=0, maximum=1)}'
     lines = [f"prior-dict: {kwargs_str}"]
     self.write_tempory_ini_file(lines)
     args, unknown_args = parse_args([self.test_ini_filename], self.parser)
     self.assertEqual(args.prior_dict, kwargs_str)
Exemplo n.º 26
0
 def test_set_sampler_command_line_multiple_fail(self):
     args_list = self.default_args_list
     self.inputs = DataAnalysisInput(*parse_args(args_list, self.parser),
                                     test=True)
     with self.assertRaises(BilbyPipeError):
         self.inputs.sampler = ["dynesty", "nestle"]