Updated fitness_diff_dB function to return inverse of difference which is required as optimisation method looks for when fitness is greater than stopping value; converted responses to NumPy arrays.

这个提交包含在:
Craig Warren
2015-12-18 10:41:54 +00:00
父节点 b756473216
当前提交 9f38515b66

查看文件

@@ -128,7 +128,7 @@ def fitness_diff_dB(filename, args):
f = h5py.File(args['refresp'], 'r') f = h5py.File(args['refresp'], 'r')
tmp = f['/rxs/rx1/'] tmp = f['/rxs/rx1/']
fieldname = list(tmp.keys())[0] fieldname = list(tmp.keys())[0]
refresp = tmp[fieldname] refresp = np.array(tmp[fieldname])
# Load (from gprMax output file) the response # Load (from gprMax output file) the response
f = h5py.File(filename, 'r') f = h5py.File(filename, 'r')
@@ -138,13 +138,13 @@ def fitness_diff_dB(filename, args):
tmp = f['/rxs/rx' + str(rx) + '/'] tmp = f['/rxs/rx' + str(rx) + '/']
if tmp.attrs['Name'] in args['outputs']: if tmp.attrs['Name'] in args['outputs']:
fieldname = list(tmp.keys())[0] fieldname = list(tmp.keys())[0]
modelresp = tmp[fieldname] modelresp = np.array(tmp[fieldname])
# Calculate sum of differences # Calculate sum of differences
diffdB = np.abs(modelresp - refresp) / np.amax(np.abs(refresp)) diffdB = np.abs(modelresp - refresp) / np.amax(np.abs(refresp))
diffdB = 20 * np.log10(np.sum(diffdB)) diffdB = 20 * np.log10(np.sum(diffdB))
return diffdB return 1 / diffdB