The environment variable CLAW should be set before starting the notebook:
import os
CLAW = os.environ['CLAW']
print CLAW
/Users/rjl/git/clawpack
Move to the desired directory:
os.chdir(CLAW + '/classic/examples/acoustics_1d_example1/')
print os.getcwd()
/Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1
%%system
make output
['rm -f .output', 'python /Users/rjl/git/clawpack/clawutil/src/python/clawutil/runclaw.py xclaw _output \\', '\tTrue False . False', 'Reading data file: claw.data ', ' first 5 lines are comments and will be skipped', ' running...', ' ', 'Reading data file: setprob.data ', ' first 5 lines are comments and will be skipped', 'CLAW1EZ: Frame 1 output files done at time t = 0.5000D-01', '', 'CLAW1EZ: Frame 2 output files done at time t = 0.1000D+00', '', 'CLAW1EZ: Frame 3 output files done at time t = 0.1500D+00', '', 'CLAW1EZ: Frame 4 output files done at time t = 0.2000D+00', '', 'CLAW1EZ: Frame 5 output files done at time t = 0.2500D+00', '', 'CLAW1EZ: Frame 6 output files done at time t = 0.3000D+00', '', 'CLAW1EZ: Frame 7 output files done at time t = 0.3500D+00', '', 'CLAW1EZ: Frame 8 output files done at time t = 0.4000D+00', '', 'CLAW1EZ: Frame 9 output files done at time t = 0.4500D+00', '', 'CLAW1EZ: Frame 10 output files done at time t = 0.5000D+00', '', 'CLAW1EZ: Frame 11 output files done at time t = 0.5500D+00', '', 'CLAW1EZ: Frame 12 output files done at time t = 0.6000D+00', '', 'CLAW1EZ: Frame 13 output files done at time t = 0.6500D+00', '', 'CLAW1EZ: Frame 14 output files done at time t = 0.7000D+00', '', 'CLAW1EZ: Frame 15 output files done at time t = 0.7500D+00', '', 'CLAW1EZ: Frame 16 output files done at time t = 0.8000D+00', '', '==> runclaw: Will take data from /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1', '==> runclaw: Will write output to /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', '==> runclaw: Removing all old fort files in /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', '', '==> runclaw: Finished executing', '', '==> runclaw: Done executing /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/xclaw via clawutil.runclaw.py', '==> runclaw: Output is in /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output']
%%system
make plots
['rm -f .plots', 'python /Users/rjl/git/clawpack/visclaw/src/python/visclaw/plotclaw.py _output _plots setplot.py ', 'Importing setplot.setplot from /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1.', 'Executed setplot successfully', 'Will plot 17 frames numbered: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]', 'Will make 1 figure(s) for each frame, numbered: [1]', '', '-----------------------------------', '', '', 'Creating html pages for figures...', '', "Directory '/Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_plots' ", ' already exists, files may be overwritten ', 'Now making png files for all figures...', ' Reading Frame 0 at t = 0 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 0 at time t = 0.0', ' Reading Frame 1 at t = 0.05 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 1 at time t = 0.05', ' Reading Frame 2 at t = 0.1 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 2 at time t = 0.1', ' Reading Frame 3 at t = 0.15 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 3 at time t = 0.15', ' Reading Frame 4 at t = 0.2 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 4 at time t = 0.2', ' Reading Frame 5 at t = 0.25 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 5 at time t = 0.25', ' Reading Frame 6 at t = 0.3 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 6 at time t = 0.3', ' Reading Frame 7 at t = 0.35 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 7 at time t = 0.35', ' Reading Frame 8 at t = 0.4 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 8 at time t = 0.4', ' Reading Frame 9 at t = 0.45 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 9 at time t = 0.45', ' Reading Frame 10 at t = 0.5 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 10 at time t = 0.5', ' Reading Frame 11 at t = 0.55 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 11 at time t = 0.55', ' Reading Frame 12 at t = 0.6 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 12 at time t = 0.6', ' Reading Frame 13 at t = 0.65 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 13 at time t = 0.65', ' Reading Frame 14 at t = 0.7 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 14 at time t = 0.7', ' Reading Frame 15 at t = 0.75 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 15 at time t = 0.75', ' Reading Frame 16 at t = 0.8 from outdir = /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_output', 'Frame 16 at time t = 0.8', '', '-----------------------------------', '', 'Creating latex file...', "Directory '/Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_plots' ", ' already exists, files may be overwritten ', '', 'Latex file created: ', ' /Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_plots/plots.tex', '', 'Use pdflatex to create pdf file', 'Created JSAnimation for figure 1', '', '--------------------------------------------------------', '', 'Point your browser to:', ' file:///Users/rjl/git/clawpack/classic/examples/acoustics_1d_example1/_plots/_PlotIndex.html', 'python(45105,0x7fff76101180) malloc: *** error for object 0x10413f410: pointer being freed was not allocated', '*** set a breakpoint in malloc_error_break to debug', 'make: *** [plots] Abort trap: 6']
from IPython.display import Image
frameno = 2
fname = '_plots/frame00%sfig1.png' % str(frameno).zfill(2)
print "showing ",fname
i = Image(fname)
display(i)
showing _plots/frame0002fig1.png
import glob
from matplotlib import image
from clawpack.visclaw.JSAnimation import IPython_display
from matplotlib import animation
figno = 1
fname = '_plots/*fig' + str(figno) + '.png'
filenames=sorted(glob.glob(fname))
fig = plt.figure()
im = plt.imshow(image.imread(filenames[0]))
def init():
im.set_data(image.imread(filenames[0]))
return im,
def animate(i):
image_i=image.imread(filenames[i])
im.set_data(image_i)
return im,
animation.FuncAnimation(fig, animate, init_func=init,
frames=len(filenames), interval=20, blit=True)
Based on the pyclaw example at https://www.wakari.io/usermgmt/nb/pyclaw/Figure_7_2
This only works if the notebook is running, whereas the above animation should play from nbviewer.
import matplotlib.pyplot as plt
import time
from IPython.display import clear_output
def solution_plot(n,setplot=None,outdir='./_output'):
from clawpack.visclaw import data, frametools
plotdata = data.ClawPlotData()
plotdata.outdir = outdir
if setplot is None:
from setplot import setplot
plotdata.setplot = setplot
plotdata = frametools.call_setplot(setplot,plotdata)
frametools.plotframe(n,plotdata)
for n in range(5):
solution_plot(n)
time.sleep(0.2)
clear_output()
f=plt.gcf()
display(f)
plt.clf()
<matplotlib.figure.Figure at 0x106b9bad0>