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)
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."
# 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)
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='.') """
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)
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)
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)
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) """
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)
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)
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)
(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)
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()
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()
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)
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='.') """