def make_total_event_list(): """Make total event list. TODO: move this function to the datastore class and the sky box selection to the `make_counts_image` function. """ data_store = DataStore(dir=HESSFITS_MPP) observation_selection = dict(type='sky_box', frame='galactic', lon=Quantity([-120, 70], 'deg'), lat=Quantity([-5, 5], 'deg'), border=Quantity(2, 'deg') ) observation_table = data_store.make_observation_table(observation_selection) # For testing, only process a small subset of observations # observation_table = observation_table.select_linspace_subset(num=1000) event_list_files = data_store.make_table_of_files(observation_table, filetypes=['events']) ds = EventListDataset.vstack_from_files(event_list_files['filename']) print('Total number of events: {}'.format(len(ds.event_list))) print('Total number of GTIs: {}'.format(len(ds.good_time_intervals))) print('Converting EventListDataset to HDUList ...') hdu_list = ds.to_fits() print('Writing {}'.format(TOTAL_EVENTS_FILE)) hdu_list.writeto(TOTAL_EVENTS_FILE, clobber=True)
def make_reco_model(): """Make a reco bg cube model.""" METHOD = "default" data_dir = "test_dataset" overwrite = OVERWRITE test = TEST group_id = GROUP_ID # create output folder outdir = os.path.join(OUTDIR, "reco") _create_dir(outdir, overwrite) # 0. create dummy observation grouping obs_groups = create_dummy_observation_grouping() # save outfile = os.path.join(outdir, "bg_observation_groups.ecsv") print("Writing {}".format(outfile, overwrite=overwrite)) obs_groups.write(outfile) # 1. create dummy dataset # use enough stats so that rebinning (and resmoothing?) doesn't take place n_obs = 100 if test: # run fast n_obs = 2 az_range = AZ_RANGE alt_range = ALT_RANGE random_state = np.random.RandomState(seed=0) sigma = SIGMA spectral_index = INDEX make_test_dataset( outdir=data_dir, overwrite=overwrite, observatory_name="HESS", n_obs=n_obs, az_range=az_range, alt_range=alt_range, date_range=( Time("2010-01-01T00:00:00", format="isot", scale="utc"), Time("2015-01-01T00:00:00", format="isot", scale="utc"), ), n_tels_range=(3, 4), sigma=sigma, spectral_index=spectral_index, random_state=random_state, ) # 2. get observation table data_store = DataStore.from_dir(dir=data_dir) observation_table = data_store.make_observation_table() outfile = os.path.join(outdir, "bg_observation_table_group{}.fits.gz".format(group_id)) print("Writing {}".format(outfile)) observation_table.write(outfile, overwrite=overwrite) # 3. build bg model method = METHOD bg_cube_model = make_bg_cube_model( observation_table=observation_table, data_dir=data_dir, method=method, do_not_force_mev_units=True ) # save outfile = os.path.join(outdir, "bg_cube_model_group{}".format(group_id)) print("Writing {}".format("{}_table.fits.gz".format(outfile))) print("Writing {}".format("{}_image.fits.gz".format(outfile))) bg_cube_model.write("{}_table.fits.gz".format(outfile), format="table", clobber=overwrite) bg_cube_model.write("{}_image.fits.gz".format(outfile), format="image", clobber=overwrite)