示例#1
0
        polyAnims.append(polyAnim)

    if args.xlims is not None and np.prod(grid.get_geometry()) > 0:
        grid[0].set_xlim(args.xlims)

    if args.ylims is not None and np.prod(grid.get_geometry()) > 0:
        grid[0].set_ylim(args.ylims)

    if args.saveImgFile is not None:
        if radAnim is not None:
            radAnim = [radAnim]
        else:
            radAnim = []
        animator.save(args.saveImgFile, extra_anim=radAnim + polyAnims)

    if args.doShow:
        plt.show()


if __name__ == '__main__':
    import argparse  # Command-line parsing

    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description="Produce an animation of"
                                     " the tracks")
    AddCommandParser('ShowAnims', parser)
    args = parser.parse_args()

    main(args)
示例#2
0
                         bbox_inches='tight',
                         pad_inches=0.25,
                         bbox_extra_artists=[legend])

    if args.doShow:
        plt.show()


if __name__ == '__main__':
    import argparse
    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description='Analyze the tracking results'
                                     ' of multiple scenarios of'
                                     ' multiple storm-track simulations')
    AddCommandParser('MultiScenarioAnalysis', parser)
    parser.add_argument("--signif",
                        dest="signif_from",
                        type=str,
                        help="Calculate the significance of the skill scores"
                        " for FROM from the skill scores of the rest of"
                        " the track runs. Default: None",
                        metavar="FROM",
                        default=None)
    parser.add_argument("--mode",
                        dest="dispMode",
                        help="Mode for x-axis (categorical (default),"
                        " ordinal, or bar). In categorical mode, error"
                        " bars are unconnected and non-overlapping. In"
                        " ordinal  mode, the errorbars for each plot are"
                        " connected, and are overlapping in the x-axis."
示例#3
0
    # Need to see if any new names match any of those in
    # the old list, which *could* cause collisions during the
    # rename process
    if any([(oldRun == newRun) for oldRun in trackRuns for newRun in newRuns]):
        raise ValueError(
            "This results in possible renaming collisions. Aborting...")

    # Need to make sure that the resulting names are unique
    if len(set(newRuns)) != len(newRuns):
        raise ValueError(
            "This results in renaming many track runs into fewer track runs.  Aborting..."
        )

    for aSim in simNames:
        # TODO: need to do some checking work to make sure that everything
        # will either be undone on error, or that we check ahead for any
        # such possibilities.
        RenameRuns(aSim, args.old, args.new, trackRuns, dirName=args.directory)


if __name__ == '__main__':
    import argparse
    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description="Rename the track runs")
    AddCommandParser('MoveRuns', parser)
    args = parser.parse_args()

    main(args)
示例#4
0
    multiParams = ParamUtils.Read_MultiSim_Params(paramFile)

    Multi_DownsampleTracks(multiParams,
                           args.skipCnt,
                           args.multiSim,
                           args.newName,
                           path=args.directory)


if __name__ == '__main__':
    import argparse  # command-line parsing
    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(
        description="Copy and downsample the simulations of a scenario")
    AddCommandParser('MultiDownsample', parser)
    """
    parser.add_argument("multiSim",
              help="Downsample the simulations of MULTISIM",
              metavar="MULTISIM")
    parser.add_argument("newName",
              help="Name of the downsampled multi-sim",
              metavar="NEWMULTI")
    parser.add_argument("skipCnt", type=int,
              help="Skip CNT frames for downsampling",
              metavar="CNT")
    parser.add_argument("-d", "--dir", dest="directory",
                        help="Base directory to find MULTISIM and NEWMULTI",
                        metavar="DIRNAME", default='.')
    """
示例#5
0
                   tag_filters=args.filters)

    for ax, verts in zip(grid, polyData):
        _to_polygons(verts[args.endFrame:args.endFrame + 1], ax)

    if args.xlims is not None and np.prod(grid.get_geometry()) > 0:
        grid[0].set_xlim(args.xlims)

    if args.ylims is not None and np.prod(grid.get_geometry()) > 0:
        grid[0].set_ylim(args.ylims)

    if args.saveImgFile is not None:
        theFig.savefig(args.saveImgFile)

    if args.doShow:
        plt.show()


if __name__ == '__main__':

    import argparse  # Command-line parsing

    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description="Produce a plain display of"
                                     " the tracks")
    AddCommandParser('ShowTracks2', parser)
    args = parser.parse_args()

    main(args)
示例#6
0
    trackrunConfs = dict([(runName, trackConfs[runName])
                          for runName in trackRuns])

    SingleTracking(simFile,
                   args.simName,
                   simParams,
                   trackrunConfs,
                   path=args.directory)


if __name__ == "__main__":
    import argparse  # Command-line parsing
    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description='Track the given centroids')
    AddCommandParser('DoTracking', parser)
    """
    parser.add_argument("simName",
                      help="Generate Tracks for SIMNAME",
                      metavar="SIMNAME")
    parser.add_argument("trackconfs", nargs='+',
                      help="Config files for the parameters for the trackers",
                      metavar="CONF")
    parser.add_argument("-d", "--dir", dest="directory",
                        help="Base directory to find SIMNAME",
                        metavar="DIRNAME", default='.')
    """

    args = parser.parse_args()

    main(args)
示例#7
0
            curAxis.set_ylabel("Latitude")

        theAnim.AddCornerVolume(corners)

    if args.xlims is not None and np.prod(grid.get_geometry()) > 0:
        grid[0].set_xlim(args.xlims)

    if args.ylims is not None and np.prod(grid.get_geometry()) > 0:
        grid[0].set_ylim(args.ylims)

    if args.saveImgFile is not None:
        if radAnim is not None:
            radAnim = [radAnim]
        theAnim.save(args.saveImgFile, extra_anim=radAnim)

    if args.doShow:
        plt.show()


if __name__ == '__main__':
    import argparse  # Command-line parsing

    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description="Produce an animation of"
                                     " the centroids")
    AddCommandParser('ShowCorners', parser)
    args = parser.parse_args()

    main(args)
示例#8
0
    multiParams = dict(simCnt=args.simCnt,
                       globalSeed=simParams['seed'],
                       simName=args.multiSim)

    MultiSimulation(multiParams, simConfs, simParams, path=args.directory)



if __name__ == '__main__' :
    import argparse
    from ZigZag.zigargs import AddCommandParser


    parser = argparse.ArgumentParser(description="Run and track several storm-track simulations")
    AddCommandParser('MultiSim', parser)
    """
    parser.add_argument("multiSim", type=str,
                      help="Generate Tracks for MULTISIM",
                      metavar="MULTISIM", default="NewMulti")
    parser.add_argument("simCnt", type=int,
              help="Repeat Simulation N times.",
              metavar="N", default=1)
    parser.add_argument("-d", "--dir", dest="directory",
                        help="Base directory to place MULTISIM",
                        metavar="DIRNAME", default='.')
    parser.add_argument("-c", "--conf", dest="simConfFiles",
                        nargs='+',
                        help="Configuration files for the simulation.",
                        metavar="CONFFILE", default=None)
    """
示例#9
0
        fig = plt.figure(figsize=args.figsize)
        ax = fig.gca()

        MakeErrorBars(btmean, btci, ax)
        ax.set_xticks(np.arange(len(btmean)) + 0.5)
        ax.set_xticklabels(shortNames, fontsize='medium')
        ax.set_xlim(0.0, len(shortNames))
        #ax.set_xlabel(xlab)
        ax.set_ylabel('Skill Score')
        ax.set_title(title)

        if args.saveImgFile is not None:
            fig.savefig("%s_%s.%s" %
                        (args.saveImgFile, skillname, args.imageType))

    if args.doShow:
        plt.show()


if __name__ == "__main__":
    import argparse  # Command-line parsing
    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(
        description=
        'Analyze the tracking results of multiple storm-track simulations')
    AddCommandParser('MultiAnalysis', parser)
    args = parser.parse_args()

    main(args)
示例#10
0
def main(args):

    simParams = ParamUtils.ParamsFromOptions(args)

    simConfFiles = args.simConfFiles if args.simConfFiles is not None else \
                                ["InitModels.conf", "MotionModels.conf",
                                 "GenModels.conf", "NoiseModels.conf",
                                 "SimModels.conf"]

    simConfs = ParamUtils.LoadSimulatorConf(simConfFiles)

    print "Sim Name:", args.simName
    print "The Seed:", simParams['seed']

    theSimulation = SingleSimulation(simConfs, **simParams)

    SaveSimulation(theSimulation, simParams, simConfs, path=args.directory)


if __name__ == '__main__':
    from ZigZag.zigargs import AddCommandParser
    import argparse  # Command-line parsing

    parser = argparse.ArgumentParser(description="Produce a track simulation")
    AddCommandParser('TrackSim', parser)
    ParamUtils.SetupParser(parser)

    args = parser.parse_args()

    main(args)
示例#11
0
    paramFile = os.path.join(dirName, "simParams.conf")
    simParams = ParamUtils.ReadSimulationParams(paramFile)

    # We only want to process the trackers as specified by the user
    trackRuns = ExpandTrackRuns(simParams['trackers'], args.trackRuns)

    analysis = AnalyzeTrackings(args.simName,
                                simParams,
                                args.skillNames,
                                trackRuns=trackRuns,
                                path=args.directory,
                                tag_filters=args.filters)

    analysis = analysis.insertaxis(axis=1, label=args.simName)
    for skill in args.skillNames:
        DisplaySkillScores(analysis.lix[[skill]], skill)
        print '\n\n'


if __name__ == '__main__':
    import argparse
    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description="Analyze the tracking results"
                                     " of a storm-track simulation")

    AddCommandParser('AnalyzeTracking', parser)
    args = parser.parse_args()

    main(args)
示例#12
0
                         (func(startXs), func(startYs), func(startFrames)))
            print("         End: X %8.3f  Y %8.3f  Frame %4d" %
                  (func(endXs), func(endYs), func(endFrames)))

        print
        print "Max  Frame-to-Frame Dist: %4d Frames, %8.3f" % \
                                (np.max(flatdeltaFrames), np.max(flatDists))
        print "Mean Frame-to-Frame Dist: %4d Frames, %8.3f" % \
                                (np.mean(flatdeltaFrames), np.mean(flatDists))
        print "Med  Frame-to-Frame Dist: %4d Frames, %8.3f" % \
                                (np.median(flatdeltaFrames),
                                 np.median(flatDists))
        print "Min  Frame-to-Frame Dist: %4d Frames, %8.3f" % \
                                (np.min(flatdeltaFrames),
                                 np.min(flatDists))
        print "Speed:", flatspeeds.min(), flatspeeds.mean(), flatspeeds.max()

    plt.show()


if __name__ == '__main__':
    import argparse
    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description="Report on each given"
                                     " trackfile.")
    AddCommandParser('TrackReports', parser)
    args = parser.parse_args()

    main(args)
示例#13
0
        noisyTrackData = FilterMHTTracks(*ReadTracks(os.path.join(dirName, simParams['noisyTrackFile'])))

        DownsampleTracks(args.skipCnt, args.simName, args.newName, simParams, volData,
                         origTrackData, noisyTrackData, path=args.directory)
    else :
        DownsampleCorners(args.skipCnt, args.simName, args.newName, simParams,
                          volData, path=args.directory)


if __name__ == "__main__" :
    import argparse             # command-line parsing
    from ZigZag.zigargs import AddCommandParser


    parser = argparse.ArgumentParser(description="Copy and downsample a simulation")
    AddCommandParser('DownsampleSim', parser)
    """
    parser.add_argument("simName",
              help="Downsample the tracks of SIMNAME",
              metavar="SIMNAME")
    parser.add_argument("newName",
              help="Name of the new simulation",
              metavar="NEWNAME")
    parser.add_argument("skipCnt", type=int,
              help="Skip CNT frames for downsampling",
              metavar="CNT")
    parser.add_argument("-d", "--dir", dest="directory",
                        help="Base directory to find SIMNAME and NEWNAME",
                        metavar="DIRNAME", default='.')
    """
    args = parser.parse_args()
示例#14
0
        for aRun in trackRuns :
            print(aRun)
    else :
        for simName in simNames :
            simParams = ParamUtils.ReadSimulationParams(os.path.join(args.directory, simName, 'simParams.conf'))
            for aRun in trackRuns :
                print os.path.join(args.directory, simName, simParams['result_file'] + '_' + aRun)


if __name__ == '__main__' :
    import argparse
    from ZigZag.zigargs import AddCommandParser


    parser = argparse.ArgumentParser(description="List the trackruns for a simulation.")
    AddCommandParser('ListRuns', parser)
    """
    parser.add_argument("simNames", nargs='+',
                        help="List track runs done for SIMNAME. If more than one, then list all common track runs.",
                        metavar="SIMNAME")
    parser.add_argument("-d", "--dir", dest="directory",
                        help="Base directory to find SIMNAME",
                        metavar="DIRNAME", default='.')
    parser.add_argument("-t", "--trackruns", dest="trackRuns",
                        nargs="+", help="Trackruns to list.  List all runs if none are given.",
                        metavar="RUN", default=None)
    parser.add_argument("-m", "--multi", dest='isMulti',
                        help="Indicate that SIMNAME(s) is actually a Multi-Sim so that we can process correctly.",
                        default=False, action='store_true')
    """
    args = parser.parse_args()
示例#15
0
                     fade=args.fade,
                     multiTags=multiTags,
                     tag_filters=args.filters)

    if args.xlims is not None and np.prod(grid.get_geometry()) > 0:
        grid[0].set_xlim(args.xlims)

    if args.ylims is not None and np.prod(grid.get_geometry()) > 0:
        grid[0].set_ylim(args.ylims)

    if args.saveImgFile is not None:
        theFig.savefig(args.saveImgFile)

    if args.doShow:
        plt.show()


if __name__ == '__main__':
    import argparse  # Command-line parsing

    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description="Produce a display of the"
                                     " tracks compared against"
                                     " truth data. Slightly "
                                     " different from ShowTracks2.")
    AddCommandParser('ShowCompare2', parser)
    args = parser.parse_args()

    main(args)
示例#16
0
    trackRuns = ExpandTrackRuns(trackConfs.keys(), args.trackRuns)

    trackrunConfs = dict([(runName, trackConfs[runName])
                          for runName in trackRuns])

    MultiTrack(args.multiSim, trackrunConfs, path=args.directory)


if __name__ == '__main__':
    import argparse  # Command-line parsing
    from ZigZag.zigargs import AddCommandParser

    parser = argparse.ArgumentParser(description='Track the given centroids')

    AddCommandParser("MultiTracking", parser)
    """
    parser.add_argument("multiSim",
                      help="Generate Tracks for MULTISIM",
                      metavar="MULTISIM")
    parser.add_argument("trackconfs", nargs='+',
                      help="Config files for the parameters for the trackers",
                      metavar="CONF")
    parser.add_argument("-t", "--trackruns", dest="trackRuns",
                        nargs="+", help="Trackruns to perform.  Perform all runs in CONF if none are given.",
                        metavar="RUN", default=None)
    parser.add_argument("-d", "--dir", dest="directory",
                        help="Base directory to find MULTISIM",
                        metavar="DIRNAME", default='.')
    """