Ejemplo n.º 1
0
def _main_(args):

    #---------------------------------------------------------------------------
    # TRACK LENGTH & WIDTH
    df = DataLoadUtils.getAnalysisData(
        analyzerClass=ComparisonAnalyzer,
        filename='Length-Width-Deviations.csv')
    df['site'] = df['Fingerprint'].str[:3]

    tracks = DataLoadUtils.getTrackWithAnalysis()
    df = pd.merge(
        df, tracks[['uid', 'width']],
        left_on='UID',
        right_on='uid')

    plotComparison(
        label='Width',
        key='Width Deviation',
        df=df[df['Width Deviation'] >= 0.0],
        binCount=10.0)

    plotComparison(
        label='Length',
        key='Length Deviation',
        df=df[df['Length Deviation'] >= 0.0],
        binCount=10.0)

    #---------------------------------------------------------------------------
    # STRIDE LENGTH
    df = DataLoadUtils.getAnalysisData(
        analyzerClass=ValidationAnalyzer,
        filename='Stride-Length-Deviations.csv')
    df['site'] = df['Fingerprint'].str[:3]
    df = pd.merge(
        df, tracks[['uid', 'width']],
        left_on='UID',
        right_on='uid')

    plotComparison(
        label='Stride Length',
        key='Deviation',
        df=df,
        binCount=10.0)

    #---------------------------------------------------------------------------
    # PACE LENGTH
    df = DataLoadUtils.getAnalysisData(
        analyzerClass=ValidationAnalyzer,
        filename='Pace-Length-Deviations.csv')
    df['site'] = df['Fingerprint'].str[:3]
    df = pd.merge(
        df, tracks[['uid', 'width']],
        left_on='UID',
        right_on='uid')

    plotComparison(
        label='Pace Length',
        key='Deviation',
        df=df,
        binCount=10.0)
Ejemplo n.º 2
0
def run(args):

    tracks = initialize()
    structure = {}

    #--- TRACK LENGTH & WIDTH ---#
    df = DataLoadUtils.getAnalysisData(
        analyzerClass=ComparisonAnalyzer,
        filename='Length-Width-Deviations.csv',
        renames={
            'Width Deviation':'widthDeviation',
            'Length Deviation':'lengthDeviation',
            'Fingerprint':'fingerprint',
            'UID':'uid'})

    df = pd.merge(df, tracks, left_on='uid', right_on='uid')

    structure['width'] = generateData( # Track Width
        name='width',
        key='widthDeviation',
        df=df.query('widthDeviation >= 0.0'),
        binCount=10.0)

    structure['length'] = generateData( # Track Length
        name='length',
        key='lengthDeviation',
        df=df.query('lengthDeviation >= 0.0'),
        binCount=10.0)

    #--- STRIDE LENGTH ---#
    df = DataLoadUtils.getAnalysisData(
        analyzerClass=ValidationAnalyzer,
        filename='Stride-Length-Deviations.csv',
        renames={'UID':'uid'})

    df = pd.merge(df, tracks, on='uid')

    structure['stride'] = generateData('stride', df, 'Deviation', 10.0)

    #--- PACE LENGTH ---#
    df = DataLoadUtils.getAnalysisData(
        analyzerClass=ValidationAnalyzer,
        filename='Pace-Length-Deviations.csv',
        renames={'UID':'uid'})

    df = pd.merge(df, tracks, on='uid')

    structure['pace'] = generateData('pace', df, 'Deviation', 10.0)

    writeStructureFile(structure)

    validate()
Ejemplo n.º 3
0
def initialize():
    path = FileUtils.makeFolderPath(MY_DIR, 'data')
    SystemUtils.remove(path)
    os.makedirs(path)

    tracks = DataLoadUtils.getTrackWithAnalysis()
    return tracks[['uid', 'site', 'width', 'sizeClass']]
Ejemplo n.º 4
0
def _main_(args):
    tracks = DataLoadUtils.getTrackWithAnalysis()
    tracks = tracks[(tracks.width > 0) & (tracks.length > 0)]

    df = DataLoadUtils.getAnalysisData(
        analyzerClass=StatisticsAnalyzer,
        filename='Stride-Length-Quartiles.csv')
    makeNormalityScatter('Stride Length', df)

    df = DataLoadUtils.getAnalysisData(
        analyzerClass=StatisticsAnalyzer,
        filename='Pace-Length-Quartiles.csv')
    makeNormalityScatter('Pace Length', df)

    for site in tracks.site.unique():
        dataSlice = tracks[(tracks.site == site) & tracks.pes]
        makeTrackwayBox(
            site=site,
            data=dataSlice,
            columnName='paceLength',
            errorColumnName='paceLengthUnc',
            trackwayData=df)

    df = DataLoadUtils.getAnalysisData(
        analyzerClass=StatisticsAnalyzer,
        filename='Manus-Width-Quartiles.csv')
    makeNormalityScatter('Manus Width', df)

    df = DataLoadUtils.getAnalysisData(
        analyzerClass=StatisticsAnalyzer,
        filename='Manus-Length-Quartiles.csv')
    makeNormalityScatter('Manus Length', df)

    df = DataLoadUtils.getAnalysisData(
        analyzerClass=StatisticsAnalyzer,
        filename='Pes-Length-Quartiles.csv')
    makeNormalityScatter('Pes Length', df)

    df = DataLoadUtils.getAnalysisData(
        analyzerClass=StatisticsAnalyzer,
        filename='Gauge-Quartiles.csv')
    makeNormalityScatter('Gauge', df)

    widthDFrame = DataLoadUtils.getAnalysisData(
        analyzerClass=StatisticsAnalyzer,
        filename='Pes-Width-Quartiles.csv')
    makeNormalityScatter('Pes Width', widthDFrame)

    for site in tracks.site.unique():
        dataSlice = tracks[(tracks.site == site) & tracks.pes]
        makeTrackwayBox(
            site=site,
            data=dataSlice,
            columnName='width',
            errorColumnName='widthUncertainty',
            trackwayData=widthDFrame)
Ejemplo n.º 5
0
def _main_(args):
    tracks = DataLoadUtils.getTrackWithAnalysis()
    with open(METADATA_FILE, 'r') as f:
        metadata = json.loads(f.read())

    doPlot = functools.partial(
        plotComparison,
        tracks=tracks,
        metadata=metadata)

    doPlot(name='width', label='Width')
    doPlot(name='length', label='Length')
    doPlot(name='stride', label='Stride Length')
    doPlot(name='pace', label='Pace Length')
Ejemplo n.º 6
0
def run(args):

    reporting.initialize(__file__)
    metadata = reporting.create_metadata_dict()

    tracks = DataLoadUtils.getTrackWithAnalysis()
    tracks = tracks.query('site == "BEB" and level == "500"').copy()
    tracks["number"] = tracks["number"].str.zfill(4)

    for trackwayNumber in tracks["trackwayNumber"].unique():
        metadata[trackwayNumber] = generateData(tracks=tracks.query('trackwayNumber == "{}"'.format(trackwayNumber)))

    reporting.write_metadata_file(METADATA_FILE, metadata)
    reporting.validate_h5_data(OUT_PATH, test_key="/trackway/tw_1")
Ejemplo n.º 7
0
    def __init__(self, **kwargs):
        """
        Creates a new instance of AnalyzerBase.

        [cacheData] ~ Object | CacheData
            A caching object on which to store data during analysis at the
            analyzer level, instead of the stage level.

        [logger] ~ Logger
            A logger object to use for logging within this analyzer. If no such
            logger exists, a new logger is created.

        [logFolderPath] ~ String
            If no logger was specified for the analyzer, this is the absolute
            path to the folder where the log file should be written. This
            value is ignored if you specify a logger.
        """

        self._tracksSession     = None
        self._analysisSession   = None
        self._cache             = ConfigsDict(kwargs.get('cacheData'))
        self._logger            = kwargs.get('logger')
        self._tempPath          = kwargs.get('tempPath')
        self._stages            = []
        self._sitemaps          = []
        self._trackways         = dict()
        self._seriesBundles     = dict()
        self._plotFigures       = dict()
        self._currentStage      = None
        self._success           = False
        self._errorMessage      = None
        self._startTime         = None

        if not self._logger:
            self._logger = Logger(
                name=self,
                logFolder=kwargs.get('logFolderPath'),
                printOut=True,
                headerless=True,
                removeIfExists=True,
                timestampFileSuffix=False)

        self._defaultRootPath = PyGlassEnvironment.getRootLocalResourcePath(
            'analysis', isDir=True)
        self._settings = DataLoadUtils.getAnalysisSettings()
Ejemplo n.º 8
0
def _main_(args):
    tracks = DataLoadUtils.getTrackWithAnalysis()
    tracks = tracks[(tracks.length > 0) & (tracks.width > 0)]

    pesTracks = tracks[tracks.pes]
    makePlot('Pes', pesTracks)

    df = pesTracks
    makeHistograms(
        label='Pes Width',
        columnName='width',
        errorColumnName='widthUncertainty',
        tracks=df)
    makeStackedBars('Pes Width', 'width', df)

    df = pesTracks[pesTracks['strideLength'] > 0]
    makeHistograms(
        label='Stride Length',
        columnName='strideLength',
        errorColumnName='strideLengthUnc',
        tracks=df)
    makeStackedBars('Stride Length', 'strideLength', df)

    df = pesTracks[pesTracks['paceLength'] > 0]
    makeHistograms(
        label='Pace Length',
        columnName='paceLength',
        errorColumnName='paceLengthUnc',
        tracks=df)
    makeStackedBars('Pace Length', 'paceLength', df)

    manusTracks = tracks[~tracks.pes]
    makePlot('Manus', manusTracks)

    makeHistograms(
        label='Manus Width',
        columnName='width',
        errorColumnName='widthUncertainty',
        tracks=manusTracks)
    makeStackedBars('Manus Width', 'width', manusTracks)
Ejemplo n.º 9
0
def _main_(args):
    trackways = DataLoadUtils.getTrackwaysWithAnalysis()
    tracks = DataLoadUtils.getTrackWithAnalysis()
Ejemplo n.º 10
0
def _main_(args):
    dFrame = DataLoadUtils.getAnalysisData(
        analyzerClass=StatisticsAnalyzer,
        filename=TrackwayStatsStage.TRACKWAY_STATS_CSV)

    unweightedDFrame = DataLoadUtils.getAnalysisData(
        analyzerClass=StatisticsAnalyzer,
        filename=TrackwayStatsStage.UNWEIGHTED_TRACKWAY_STATS_CSV)

    for d in [dFrame, unweightedDFrame]:
        d['Sitemap Name'] = d['Name'].str[:3]
        d['Fractional Pes Width Uncertainty'] = \
            100.0*d['Pes Width Uncertainty']/d['Pes Width']

    items = [
        dict(
            label='Pes Width',
            colName='Pes Width',
            errColName='Pes Width Uncertainty'),
        dict(
            label='Manus Width',
            colName='Manus Width',
            errColName='Manus Width Uncertainty') ]

    for item in items:
        makeStackedBars(
            label='Unweighted %s' % item['label'],
            dataFrame=unweightedDFrame,
            columnName=item['colName'],
            errorColumnName=item['errColName'])

        makeStackedBars(
            label='Unweighted %s' % item['label'],
            dataFrame=unweightedDFrame,
            columnName=item['colName'],
            errorColumnName=item['errColName'],
            densityTraceFunction=getDensityDistributionTrace)

        makeStackedBars(
            label=item['label'],
            dataFrame=dFrame,
            columnName=item['colName'],
            errorColumnName=item['errColName'])

        makeStackedBars(
            label=item['label'],
            dataFrame=dFrame,
            columnName=item['colName'],
            errorColumnName=item['errColName'],
            densityTraceFunction=getDensityDistributionTrace)

        makeDensityDistribution(
            label=item['label'],
            dataFrame=dFrame,
            columnName=item['colName'],
            errorColumnName=item['errColName'])

        makeDensityDistributionComparison(
            label=item['label'],
            dataFrame=dFrame,
            unweightedDataFrame=unweightedDFrame,
            columnName=item['colName'],
            errorColumnName=item['errColName'])

        makeComparison(
            data=dFrame,
            unweightedData=unweightedDFrame,
            columnName=item['colName'],
            label=item['label'])

    makeComparison(dFrame, unweightedDFrame, 'Pes Length', 'Pes Length')
    makeComparison(dFrame, unweightedDFrame, 'Stride Length', 'Stride Length')
    makeComparison(dFrame, unweightedDFrame, 'Pace Length', 'Pace Length')

    for entry in [('', dFrame), ('Unweighted', unweightedDFrame)]:
        label = entry[0]
        d = entry[1]
        titlePrefix = ('%s ' % label) if label else ''
        prefix = ('%s-' % label.lower()) if label else ''

        makeTrackwayScatter(
            name='%strackway-count-width-unc' % prefix,
            data=d[(d['Pes Width'] > 0) & (d['Pes Length'] > 0)],
            xName='Length',
            yName='Fractional Pes Width Uncertainty',
            title='%sStandard Error Track Width vs Track Count' % titlePrefix,
            xLabel='Track Count (#)',
            yLabel='Track Width Uncertainty (%)')

        makeTrackwayScatter(
            name='%strackway-pes-length-width' % prefix,
            data=d[(d['Pes Width'] > 0) & (d['Pes Length'] > 0)],
            xName='Pes Width',
            yName='Pes Length',
            xErrName='Pes Width Uncertainty',
            yErrName='Pes Length Uncertainty',
            title='%sTrackway Pes Length vs Width' % titlePrefix,
            xLabel='Width (m)',
            yLabel='Length (m)')

        makeTrackwayScatter(
            name='%strackway-manus-length-width' % prefix,
            data=d[(d['Manus Width'] > 0) & (d['Manus Length'] > 0)],
            xName='Manus Width',
            yName='Manus Length',
            xErrName='Manus Width Uncertainty',
            yErrName='Manus Length Uncertainty',
            title='%sTrackway Manus Length vs Width' % titlePrefix,
            xLabel='Width (m)',
            yLabel='Length (m)')