A module containing useful methods for working with fact
A python package with utils to work with the FACT Imaging Cerenkov Telescope
$ pip install pyfact
This takes automatically care of the dependencies which are installable with pip.
However, if you want to use the GUI Event Viewer you will need to install Tk before you install matplotlib as it depends on the tkagg backend.
fact includes several functions to convert the times used in fact data to more standard formats and vice versa.
from fact import run2dt # convert fact fNight format to python datetime object: date = run2dt("20150101")
Utils for plotting data into a FACT camera view. Based on matplotlib.
import matplotlib.pyplot as plt import fact.plotting as factplot from numpy.random import normal # create some pseudo data with shape (10, 1440): data = normal(30, 5, (10, 1440)) factplot.camera(data) plt.show()
Or you can start an interactive Viewer which lets you click through the events and save the images:
from fact.plotting import Viewer from numpy.random import poisson # pseudo data: data = poisson(30, (10, 1440)) # call the Viewer with data and a label for the colorbar: Viewer(data, "label")
There are also functions to get the camera_geometry from the delivered source file:
from fact.plotting import get_pixel_coords pixel_x, pixel_y = get_pixel_coords()
This module contains peewee Models for our factdata MySQL database. These were automatically created by peewee and provide means to query this database in python without writing raw sql queries.
For example, to get the total number of runs take by FACT you can do:
from fact.factdb import connect_database, RunInfo connect_database() # this uses the credentials module if no config is given num_runs = RunInfo.select().count()
A few convenience functions are already implemented. To get a pandas.DataFrame containing the observation time per source and runtype, you can do:
from fact.factdb import connect_database, get_ontime_per_source_and_runtype connect_database() num_runs = RunInfo.select().count() print(get_ontime_by_source_and_runtype())
Utilities to read in our aux fits files into pandas dataframes.
from fact.auxservices import MagicWeather from datetime import date weather = MagicWeather(auxdir='/fact/aux/') df = weather.read_date(date(2016, 1, 1))