Some art have problems with non-square buffers. I'm not sure if this is an issue in buffer, DiamondSquare, or terrian specifically, but here's a trace for you:
ERROR:root:Exception: Traceback (most recent call last):
ERROR:root:Exception: File "art.py", line 159, in <module>
main()
ERROR:root:Exception: File "art.py", line 149, in main
run(arts, args)
ERROR:root:Exception: File "/Users/tgerdes/rop/opc/utils/prof.py", line 105, in f_timer
return f(*args, **kwargs)
ERROR:root:Exception: File "art.py", line 69, in run
art.refresh(matrix)
ERROR:root:Exception: File "/Users/tgerdes/rop/art/terrain.py", line 66, in refresh
matrix.copy(self.matrix, x, y)
ERROR:root:Exception: File "/Users/tgerdes/rop/opc/utils/prof.py", line 105, in f_timer
return f(*args, **kwargs)
ERROR:root:Exception: File "/Users/tgerdes/rop/opc/matrix.py", line 139, in copy
self.buf.panCopy(source.buf, x, y)
ERROR:root:Exception: File "/Users/tgerdes/rop/opc/utils/prof.py", line 105, in f_timer
return f(*args, **kwargs)
ERROR:root:Exception: File "/Users/tgerdes/rop/opc/buffer.py", line 114, in panCopy
self.buf[:][:] = window
ERROR:root:Exception: ValueError: could not broadcast input array from shape (26,50,3) into shape (25,50,3)