|
[Rivet-svn] r2314 - trunk/binblackhole at projects.hepforge.org blackhole at projects.hepforge.orgSun Mar 7 13:41:05 GMT 2010
Author: fsiegert Date: Sun Mar 7 13:41:05 2010 New Revision: 2314 Log: Two improvements for make-plots: - allow plotting in subdirectory: 'make-plots foo/plot.dat' created 'foo/plot.ps' - add output format option --pspng which creates both a ps and a preview png (I'll use this option in rivet-mkhtml) rivet-mkhtml: - Run make-plots with all generated .dat files at once to make use of its superb multithreading option. - use --pspng option of make-plots instead of doing it manually Modified: trunk/bin/make-plots trunk/bin/rivet-mkhtml Modified: trunk/bin/make-plots ============================================================================== --- trunk/bin/make-plots Thu Mar 4 23:49:06 2010 (r2313) +++ trunk/bin/make-plots Sun Mar 7 13:41:05 2010 (r2314) @@ -1472,20 +1472,22 @@ import shutil def process_datfile(datfile): global opts - - filename = datfile.replace('.dat','') if not os.access(datfile, os.R_OK): raise Exception("Could not read data file '%s'" % datfile) + dirname = os.path.dirname(datfile) + datfile = os.path.basename(datfile) + filename = datfile.replace('.dat','') + ## Create a temporary directory cwd = os.getcwd() - datpath = os.path.join(cwd, datfile) + datpath = os.path.join(cwd, dirname, datfile) tempdir = tempfile.mkdtemp('.make-plots') tempdatpath = os.path.join(tempdir, datfile) shutil.copy(datpath, tempdir) ## Make TeX file - inputdata = Inputdata(filename) + inputdata = Inputdata(os.path.join(dirname,filename)) texpath = os.path.join(tempdir, '%s.tex' % filename) texfile = open(texpath, 'w') p = Plot(inputdata) @@ -1525,6 +1527,8 @@ dvipsargs += ' -f | ps2eps > %s.eps 2> /dev/null' % filename elif opts.OUTPUT_FORMAT == "PNG": dvipsargs += ' -f | convert -density 250 -flatten - %s.png' % filename + elif opts.OUTPUT_FORMAT == "PSPNG": + dvipsargs += ' -o %s.ps && convert -density 100 -flatten %s.ps %s.png' % (filename, filename, filename) else: dvipsargs += ' -o %s.ps' % filename dvcmd = 'dvips %s %s' % (filename, dvipsargs) @@ -1536,11 +1540,17 @@ ## Copy results back to main dir outbasename = filename outname = outbasename + "." + opts.OUTPUT_FORMAT.lower() - outpath = os.path.join(tempdir, outname) - if os.path.exists(outpath): - shutil.copy(outpath, cwd) + if opts.OUTPUT_FORMAT == "PSPNG": + outpath = os.path.join(tempdir, outbasename+".ps") + shutil.copy(outpath, os.path.join(cwd,dirname)) + outpath = os.path.join(tempdir, outbasename+".png") + shutil.copy(outpath, os.path.join(cwd,dirname)) else: - logging.error("No output file '%s' from processing %s" % (outname, datfile)) + outpath = os.path.join(tempdir, outname) + if os.path.exists(outpath): + shutil.copy(outpath, os.path.join(cwd,dirname)) + else: + logging.error("No output file '%s' from processing %s" % (outname, datfile)) ## Clean up if opts.NO_CLEANUP: @@ -1629,6 +1639,8 @@ help="Create Encapsulated PostScript output.") parser.add_option("--png", dest="OUTPUT_FORMAT", action="store_const", const="PNG", default="PS", help="Create PNG output.") + parser.add_option("--pspng", dest="OUTPUT_FORMAT", action="store_const", const="PSPNG", default="PS", + help="Create PS and PNG output.") parser.add_option("--tex", dest="OUTPUT_FORMAT", action="store_const", const="TEX", default="PS", help="Create TeX/LaTeX output.") parser.add_option("--no-cleanup", dest="NO_CLEANUP", action="store_true", default=False, Modified: trunk/bin/rivet-mkhtml ============================================================================== --- trunk/bin/rivet-mkhtml Thu Mar 4 23:49:06 2010 (r2313) +++ trunk/bin/rivet-mkhtml Sun Mar 7 13:41:05 2010 (r2314) @@ -90,6 +90,24 @@ ch_cmd.append("%s" % os.path.abspath(file)) Popen(ch_cmd, cwd=opts.OUTPUTDIR).wait() + +## run make-plots on all generated .dat files +mp_cmd = ["make-plots"] +mp_cmd.append("--pspng") +mp_cmd.append("--full-range") +for configfile in opts.CONFIGFILES: + if os.access(os.path.expanduser(configfile), os.R_OK): + mp_cmd.append("-c") + mp_cmd.append(os.path.expanduser(configfile)) +for analysis in sorted(analyses): + anapath = os.path.join(opts.OUTPUTDIR, analysis) + datfiles = glob.glob("%s/*.dat" % anapath) + for datfile in sorted(datfiles): + mp_cmd.append(datfile) +Popen(mp_cmd).wait() + + +## write webpage containing all plots style = """<style> html { font-family: sans-serif; } img { border: 0; } @@ -152,35 +170,21 @@ else: anaindex = index - datfiles = glob.glob("%s/*.dat" % anapath) - for fulldatfile in sorted(datfiles): - datfile = os.path.basename(fulldatfile) - obsname = datfile.replace(".dat", "") - - ## make-plots run for each .dat file - mp_cmd = ["make-plots"] - mp_cmd.append("--full-range") - for configfile in opts.CONFIGFILES: - if os.access(os.path.expanduser(configfile), os.R_OK): - mp_cmd.append("-c") - mp_cmd.append(os.path.expanduser(configfile)) - mp_cmd.append(datfile) - Popen(mp_cmd, cwd=anapath).wait() - + pngfiles = glob.glob("%s/*.png" % anapath) + for pngfile in sorted(pngfiles): + obsname = os.path.basename(pngfile).replace(".png", "") + pngfile = obsname+".png" psfile = obsname+".ps" - if os.access(os.path.join(anapath, psfile), os.R_OK): - # Convert to png and add to web page - pngfile = obsname+".png" - Popen(["convert", "-density", "100", psfile, pngfile], cwd=anapath) - if opts.SINGLE: - psfile = analysis+"/"+psfile - pngfile = analysis+"/"+pngfile - anaindex.write(' <div style="float:left; font-size:smaller; font-weight:bold;">\n') - anaindex.write(' <a href="#%s-%s">⚓</a> %s:<br>\n' % (analysis, obsname, psfile) ) - anaindex.write(' <a name="%s-%s"><a href="%s">\n' % (analysis,obsname,psfile) ) - anaindex.write(' <img src="%s">\n' % pngfile ) - anaindex.write(' </a></a>\n') - anaindex.write(' </div>\n') + if opts.SINGLE: + pngfile = analysis+"/"+pngfile + psfile = analysis+"/"+psfile + + anaindex.write(' <div style="float:left; font-size:smaller; font-weight:bold;">\n') + anaindex.write(' <a href="#%s-%s">⚓</a> %s:<br>\n' % (analysis, obsname, psfile) ) + anaindex.write(' <a name="%s-%s"><a href="%s">\n' % (analysis,obsname,psfile) ) + anaindex.write(' <img src="%s">\n' % pngfile ) + anaindex.write(' </a></a>\n') + anaindex.write(' </div>\n') if not opts.SINGLE: anaindex.write("</body>\n</html>\n")
More information about the Rivet-svn mailing list |