import struct

def readTornado():

	# Set some variables
	resX = 396
	resY = 440
	resZ = 100
	bytes = 4

	# Create the output file
	outFilePath = "/Users/kalina/Downloads/tornadoData.geo"
	outFile = open(outFilePath, "w")

	# Set up the header

	outFile.write("PGEOMETRY V2\n")
	outFile.write("NPoints 1 NPrims 1\n")
	outFile.write("NPointGroups 0 NPrimGroups 0\n")
	outFile.write("NPointAttrib 0 NVertexAttrib 0 NPrimAttrib 0 NAttrib 0\n\n")

	# Write a single point at 0,0,0
	outFile.write("0 0 0 1\n")

	# Set up the volume
	outFile.write("Volume 0 %d 0 0 0 %d 0 0 0 %d -2 %d %d %d constant 0 0 smoke 0 1\n" % (resX, resY, resZ, resX, resY, resZ))

	# Read the data file
	dataFilePath = "/Users/kalina/Downloads/tornadoData.gda"
	dataFile = open(dataFilePath, "rb")

	# Write out the data values
	for z in range(resZ):
		for y in range(resY):
			for x in range(resX):
				data = dataFile.read(bytes)
				value = struct.unpack("f", data)[0]
				outFile.write("%f " % (value))

	# End the file
	outFile.write("\nbeginExtra\n")
	outFile.write("endExtra\n")

