1 | def animatesww2d_alt(sww_filename, movie_filename, range): |
---|

2 | """Plot cross section of model output |
---|

3 | """ |
---|

4 | |
---|

5 | # Read SWW file |
---|

6 | from Scientific.IO.NetCDF import NetCDFFile |
---|

7 | fid = NetCDFFile(sww_filename, 'r') |
---|

8 | |
---|

9 | x = fid.variables['x'] |
---|

10 | y = fid.variables['y'] |
---|

11 | volumes = fid.variables['volumes'] |
---|

12 | |
---|

13 | elevation = fid.variables['elevation'] |
---|

14 | time = fid.variables['time'] |
---|

15 | stage = fid.variables['stage'] |
---|

16 | xmomentum = fid.variables['xmomentum'] |
---|

17 | ymomentum = fid.variables['ymomentum'] |
---|

18 | |
---|

19 | |
---|

20 | # Set up plot |
---|

21 | |
---|

22 | spacing=10 # grid interval in metres |
---|

23 | hmax=5 # ?? |
---|

24 | |
---|

25 | |
---|

26 | #figure(1); |
---|

27 | |
---|

28 | #if nargin > 1 |
---|

29 | # figure(1);set(gcf,'Position',[200 400 800 300]); |
---|

30 | # mov=avifile(movie_filename,'FPS',5) |
---|

31 | #end |
---|

32 | |
---|

33 | #i=find(V_y==0); |
---|

34 | |
---|

35 | #[xi,yi]=meshgrid(min(V_x):spacing:max(V_x),min(V_y):spacing:max(V_y)); |
---|

36 | |
---|

37 | #elev=griddata(V_x,V_y,V_elevation,xi,yi); |
---|

38 | |
---|

39 | #if nargin < 3 |
---|

40 | # range=[min(V_x) max(V_x) min(min(V_stage))-1 max(max(V_stage))+1]; |
---|

41 | #end |
---|

42 | |
---|

43 | #m=V_stage(1,i); |
---|

44 | |
---|

45 | #for t=1:length(V_time) |
---|

46 | |
---|

47 | # m=max(m,V_stage(t,i)); |
---|

48 | # plot(V_x(i),V_stage(t,i),V_x(i),V_elevation(i),V_x(i),m,'.'); |
---|

49 | |
---|

50 | # axis(range) |
---|

51 | |
---|

52 | |
---|

53 | # title(num2str(V_time(t)));drawnow; |
---|

54 | |
---|

55 | # if nargin>1 |
---|

56 | # F=getframe(gcf); |
---|

57 | # mov=addframe(mov,F); |
---|

58 | # end |
---|

59 | |
---|

60 | #end |
---|

61 | |
---|

62 | #if nargin > 1 |
---|

63 | # mov=close(mov); |
---|

64 | #end |
---|

65 | |
---|

66 | |
---|

67 | if __name__ == '__main__': |
---|

68 | |
---|

69 | import sys |
---|

70 | animatesww2d_alt(sys.argv[1], 'cross_section_plot', 5) |
---|

71 | |
---|