thespacedoctor
1/8/2018 - 1:18 PM

[Plot Classification Stats for PESSTO from April 2016 - March 2017] #classification #pessto #stats #plot #histogram

[Plot Classification Stats for PESSTO from April 2016 - March 2017] #classification #pessto #stats #plot #histogram

#!/usr/local/bin/python
# encoding: utf-8
"""
april2016-march2017-pessto-stats-plots.py
=========================================
:Summary:
    PESSTO Stat Plots

:Author:
    David Young

:Date Created:
    March 6, 2017

Usage:
    april2016-march2017-pessto-stats-plots

Options:
    -h, --help            show this help message
    -v, --version         show version
    -s, --settings        the settings file

..todo::

    @review: when complete pull all general functions and classes into dryxPython
"""
## USER DEFINED VARIABLES - ONLY PLACE THIS SCRIPT NEEDS MODIFIED ##


################# GLOBAL IMPORTS ####################
import sys
import os
os.environ['TERM'] = 'vt100'
import readline
import glob
import docopt
from fundamentals import tools, times


def main(arguments=None):
    """
    The main function used when ``april2016-march2017-pessto-stats-plots.py`` is run as a single script from the cl, or when installed as a cl command
    """

    # setup the command-line util settings
    su = tools(
        arguments=arguments,
        docString=__doc__,
        logLevel="DEBUG",
        options_first=False,
        projectName=False
    )
    arguments, settings, log, dbConn = su.setup()

    import numpy as np
    import matplotlib.pyplot as plt
    import pylab as P

    # # # CLASSIFICATION PHASE DAYS
    # x = (0, 0, 0, 0, 0, 10, 20, 20, 10, 0, 0, 0, 10, 0, 0, 0, 0, 14, -10, 14, -7, -7, 0, -7, 7, 3, -7, 8, -3, 7, 4, 8, -7, 10, -3, 2, 30, -8, 7, 0, 8, 0, -2, 20, 0, -5, 0, 0, 6, 36, 2, 7, 4, 1, 6, 10, -4, 3, 10, 21, -1, 2, 4, 0, 7, 8, 12, 4, 0, -5, -6, -8, 14, 18, 5, -2, -5, 14, 20, 0, 7, 0, 0, 0, 0, 0, 4, -6, -7, 0, 0, 0, 4, 20, 4, 4, -4, 0, 0, 5,
    #      20, -5, 50, 0, 0, -7, 0, -5, 32, 11, 0, 0, -6, -8, 0, 0, 0, 0, 0, 4, -4,
    #      4, -10, 5, 0, 1, -1, -2, 26, 1, 30, 11, 3, -6, 7, 12, 6, -9, 6, 0, 0, 0,
    #      6, -4, 9, 11, 5, -3, 0, 15, 8, -5, 0, 8, -2, -4, 0, 0, -7, 4, 0, 0, 4,
    #      8, 20, 0, -10, 0, 20, -7, -7, -7, -3, 0, 8, 8, 20, 0, 0, -7, -7, 0, 20,
    #      20, -7, -3, -3, 8, -10, -3, 12, 8, 4, 28, 36, 72, 5, -5, -6)

    # bins = [-13, -10, -7, -4, -1, 2, 5, 8, 11, 15, 18, 21, 24, 27, 30, 33]
    # # the histogram of the data with histtype='step'
    # n, bins, patches = P.hist(x, bins, histtype='bar', rwidth=0.8)

    # P.xlabel("Classification Phase Relative to Peak")
    # P.ylabel("# Supernovae")
    # P.figure()
    # P.show()

    # #

    # n_groups = 4

    # x = (63, 57, 99, 57)
    # fig, ax = plt.subplots()
    # index = np.arange(n_groups)
    # bar_width = 0.9
    # opacity = 1.0

    # rects1 = plt.bar(index, x, bar_width,
    #                  alpha=opacity,
    #                  color='r')

    # plt.xlabel('Classification Phase')
    # plt.ylabel('# Supernovae')
    # plt.xticks(index + bar_width / 2, ('pre max',
    #                                    'at max', 'post max', 'unknown'))

    # ax = plt.gca()
    # ax.set_ylim(0, 120)
    # ax.set_xlim(-1, 5)
    # # plt.tight_layout()
    # plt.show()

    import collections
    surveyDict = {}
    surveyDict = collections.OrderedDict(sorted(surveyDict.items()))

    surveyDict['Gaia'] = 72
    surveyDict['ATLAS'] = 67
    surveyDict['PS1'] = 33
    surveyDict['OGLE'] = 31

    surveyDict['ASASSN'] = 28
    surveyDict['SkyMapper'] = 9
    surveyDict['MASTER'] = 4
    surveyDict['BOSS'] = 4
    surveyDict['POSS'] = 4
    surveyDict['PTSS'] = 3
    surveyDict['CRTS'] = 3
    surveyDict['DES'] = 3
    surveyDict['LSQ'] = 3
    surveyDict['ISSP'] = 2
    surveyDict['DLT40'] = 2
    surveyDict['Monard'] = 1
    surveyDict['LOSS'] = 1
    surveyDict['SNHunt'] = 1
    surveyDict['TAROT'] = 1

    x = surveyDict.values()
    labels = surveyDict.keys()

    n_groups = len(surveyDict)
    fig, ax = plt.subplots()
    index = np.arange(n_groups)
    bar_width = 0.9
    opacity = 1.0

    rects1 = plt.bar(index, x, bar_width,
                     alpha=opacity,
                     color='r')

    plt.xlabel('Discovery Survey')
    plt.ylabel('# Supernovae')
    plt.xticks(index + bar_width / 2, labels, rotation=60)

    ax = plt.gca()
    # ax.set_ylim(0, 120)
    ax.set_xlim(-1, n_groups + 1)
    # plt.tight_layout()
    plt.show()

    # import collections
    # transientDict = {}
    # transientDict = collections.OrderedDict(sorted(transientDict.items()))

    # transientDict['SN'] = 220
    # transientDict['Variable star'] = 28
    # transientDict['unknown'] = 13
    # transientDict['CV'] = 9
    # transientDict['AGN'] = 4
    # transientDict['SLSN'] = 3
    # transientDict['Galaxy'] = 2
    # transientDict['Impostor'] = 1

    # x = transientDict.values()
    # labels = transientDict.keys()

    # n_groups = len(transientDict)
    # fig, ax = plt.subplots()
    # index = np.arange(n_groups)
    # bar_width = 0.9
    # opacity = 1.0

    # rects1 = plt.bar(index, x, bar_width,
    #                  alpha=opacity,
    #                  color='r')

    # plt.xlabel('Spectral Classification')
    # plt.ylabel('# Transients')
    # plt.xticks(index + bar_width / 2, labels, rotation=60)

    # ax = plt.gca()
    # # ax.set_ylim(0, 120)
    # ax.set_xlim(-1, n_groups + 1)
    # # plt.tight_layout()
    # plt.show()

    # import collections
    # transientDict = {}
    # transientDict = collections.OrderedDict(sorted(transientDict.items()))

    # transientDict['SN Ia'] = 159
    # transientDict['SN II'] = 37
    # transientDict['SN Ic'] = 7
    # transientDict['SN IIb'] = 6
    # transientDict['SN IIn'] = 6
    # transientDict['SLSN Ic'] = 2
    # transientDict['SN Ibc'] = 2
    # transientDict['SN IIP'] = 1
    # transientDict['SLSN II'] = 1
    # transientDict['SN I'] = 1
    # transientDict['SN Ib'] = 1

    # x = transientDict.values()
    # labels = transientDict.keys()

    # n_groups = len(transientDict)
    # fig, ax = plt.subplots()
    # index = np.arange(n_groups)
    # bar_width = 0.9
    # opacity = 1.0

    # rects1 = plt.bar(index, x, bar_width,
    #                  alpha=opacity,
    #                  color='r')

    # plt.xlabel('Spectral Classification')
    # plt.ylabel('# Supernovae')
    # plt.xticks(index + bar_width / 2, labels, rotation=60)

    # ax = plt.gca()
    # ax.set_ylim(0, 170)
    # ax.set_xlim(-1, n_groups + 1)
    # # plt.tight_layout()
    # plt.show()

    return

if __name__ == '__main__':
    main()