diff --git a/gprMax/cmds_multiuse.py b/gprMax/cmds_multiuse.py index b151cb9a..385f6f92 100644 --- a/gprMax/cmds_multiuse.py +++ b/gprMax/cmds_multiuse.py @@ -871,7 +871,7 @@ class Rx(UserObjectMulti): try: r.ID = self.kwargs["id"] - outputs = [self.kwargs["outputs"]] + outputs = list(self.kwargs["outputs"]) except KeyError: # If no ID or outputs are specified, use default r.ID = f"{r.__class__.__name__}({str(r.xcoord)},{str(r.ycoord)},{str(r.zcoord)})" diff --git a/setup.py b/setup.py index 743af3c6..409a97bd 100644 --- a/setup.py +++ b/setup.py @@ -253,7 +253,7 @@ else: ) # Parse long_description from README.rst file. - with open("README.rst", "r") as fd: + with open("README.rst", "r", encoding="utf-8") as fd: long_description = fd.read() setup( diff --git a/toolboxes/AntennaPatterns/initial_save.py b/toolboxes/AntennaPatterns/initial_save.py index 1c849ab4..7a7fe4cb 100644 --- a/toolboxes/AntennaPatterns/initial_save.py +++ b/toolboxes/AntennaPatterns/initial_save.py @@ -13,10 +13,15 @@ import h5py import matplotlib.pyplot as plt import numpy as np -import gprMax.config as config +from scipy.constants import c +from scipy.constants import epsilon_0 as e0 +from scipy.constants import mu_0 as m0 + logger = logging.getLogger(__name__) +# Impedance of free space (Ohms) +z0 = np.sqrt(m0 / e0) # Parse command line arguments parser = argparse.ArgumentParser( @@ -59,9 +64,9 @@ traceno = np.s_[:] # All traces # Critical angle and velocity if epsr: mr = 1 - z1 = np.sqrt(mr / epsr) * config.sim_config.em_consts["z0"] - v1 = config.sim_config.em_consts["c"] / np.sqrt(epsr) - thetac = np.round(np.arcsin(v1 / config.sim_config.em_consts["c"]) * (180 / np.pi)) + z1 = np.sqrt(mr / epsr) * z0 + v1 = c / np.sqrt(epsr) + thetac = np.round(np.arcsin(v1 / c * (180 / np.pi)) wavelength = v1 / f # Print some useful information @@ -189,8 +194,8 @@ for radius in range(0, len(radii)): Ethetasum[index] = np.sum(Etheta[:, index] ** 2) / z1 Hthetasum[index] = np.sum(Htheta[:, index] ** 2) / z1 else: - Ethetasum[index] = np.sum(Etheta[:, index] ** 2) / config.sim_config.em_consts["z0"] - Hthetasum[index] = np.sum(Htheta[:, index] ** 2) / config.sim_config.em_consts["z0"] + Ethetasum[index] = np.sum(Etheta[:, index] ** 2) / z0 + Hthetasum[index] = np.sum(Htheta[:, index] ** 2) / z0 index += 1 diff --git a/toolboxes/AntennaPatterns/plot_fields.py b/toolboxes/AntennaPatterns/plot_fields.py index d6f85e4b..b43160ed 100644 --- a/toolboxes/AntennaPatterns/plot_fields.py +++ b/toolboxes/AntennaPatterns/plot_fields.py @@ -12,11 +12,17 @@ import os import matplotlib.pyplot as plt import numpy as np -import gprMax.config as config +from scipy.constants import c +from scipy.constants import epsilon_0 as e0 +from scipy.constants import mu_0 as m0 + logger = logging.getLogger(__name__) +# Impedance of free space (Ohms) +z0 = np.sqrt(m0 / e0) + # Parse command line arguments parser = argparse.ArgumentParser( description="Plot field patterns from a simulation with receivers positioned in circles around an antenna. This module should be used after the field pattern data has been processed and stored using the initial_save.py module.", @@ -56,9 +62,9 @@ step = 12 # Critical angle and velocity if epsr: mr = 1 - z1 = np.sqrt(mr / epsr) * config.sim_config.em_consts["z0"] - v1 = config.sim_config.em_consts["c"] / np.sqrt(epsr) - thetac = np.round(np.rad2deg(np.arcsin(v1 / config.sim_config.em_consts["c"]))) + z1 = np.sqrt(mr / epsr) * z0 + v1 = c / np.sqrt(epsr) + thetac = np.round(np.rad2deg(np.arcsin(v1 / c))) wavelength = v1 / f # Print some useful information