The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
In high frequency radar (HF-Radar) systems, the antenna pattern is a crucial component for obtaining accurate current measurements from the reflected radar signal. This radiation pattern, which theoretically consists of two opposite ellipses for each antenna loop, is disturbed by obstacles and other interference (Codar Ocean Sensors 2003) . The presence of buildings, trees or any other nearby structure can distort the antenna pattern, leading to incorrect current measurement.
Antenna Pattern Measurement (APM) is essential to know the actual antenna pattern, allowing the system to be adjusted to compensate for these distortions and obstacles. This is vital to improve the accuracy of radar measurements (Lipa et al. 2018).
The main objective of the APM is to correct and recalibrate the actual antenna pattern. In doing so, the APM contributes to the significant improvement of the quality of the data collected by the HF-Radar.
MUSIC (Multiple Signal Classification) (Schmidt 1986) is an algorithm to estimate the direction of origin (DOA) of signals received by the radar. In systems such as SeaSonde, the MUSIC algorithm is applied to the complex voltages measured on the three antenna elements to estimate these parameters.
In the context of HF-Radar systems such as SeaSonde, the antenna pattern is conceptualized as the “transfer vector” between the incident signals and the measured voltages at the antennas, following the mathematical model proposed by (Stoica and Nehorai 1988):
\[ y(t) = A(\theta) x(t) + e(t), \quad t = 1, 2, \ldots, N \].
This transfer vector, or antenna pattern, is crucial to the MUSIC algorithm because it directly affects the covariance matrix of the complex voltages. By incorporating the actual antenna pattern obtained using APM, the DOA estimation results with MUSIC will be significantly more accurate and reliable.
In implementing the MUSIC algorithm, there are several assumptions and limitations to consider:
Single antenna responses: For two different DOAs, the responses of the three antennas must not be the same. Otherwise, one enters a type one ambiguity, where one cannot discern from which direction the signal is arriving (Schmidt 1986).
Uncorrelated noise: The noise at all antennas is assumed to have zero mean and the same standard deviation. The noises should also not be correlated with each other.
Not fully coherent signals: The incident signals should not be completely coherent with each other. This is a reasonable assumption, especially when dealing with echoes reflected from the sea surface (Lipa et al. 2006).
\(N > m\): The number of measured samples (\(N\)) at each antenna must be greater than \(m\) (Lipa et al. 2006).
The APM procedure involves several software steps and specialized tools:
It is crucial to use the same version of Radial Suite for both APM data and TimeSeries files to ensure consistency in the processed data.
SeaSondeRAPM
ClassThe SeaSondeRAPM
class in the SeaSondeR
package is designed to handle antenna pattern calibration data,
primarily for SeaSonde radar systems. This class aims to provide a
comprehensive and standardized framework to store, manipulate, and
validate antenna pattern calibration data and its associated metadata.
The class relies on several core functions that perform various tasks
from object creation to data validation. Here is a brief overview of
these functions:
seasonder_createSeaSondeRAPM
This function is the constructor for creating a
SeaSondeRAPM
object. It takes a complex matrix
(calibration_matrix
) as its primary argument, which stores
the calibration data for various bearings. The function performs
validations, initializes additional attributes, and returns a
SeaSondeRAPM
object.
Usage:
seasonder_initializeAttributesSeaSondeRAPM
Called internally by seasonder_createSeaSondeRAPM
, this
function initializes the various attributes for a
SeaSondeRAPM
object. Attributes include metadata and
properties like quality_matrix
, BEAR
,
Creator
, SiteName
, etc. It returns a list of
initialized attributes.
seasonder_validateCalibrationMatrixSeaSondeRAPM
This function ensures that the given calibration matrix meets the required specifications. For instance, it checks if the matrix has exactly two rows and contains only complex numbers.
seasonder_validateAttributesSeaSondeRAPM
This function validates the various attributes of a
SeaSondeRAPM
object. It performs rigorous checks to make
sure each attribute meets predefined conditions. It’s called internally
to validate attributes during object creation or modification.
validate_SeaSondeRAPM_*
A suite of functions that validate individual attributes of a
SeaSondeRAPM
object, like
validate_SeaSondeRAPM_quality_matrix
,
validate_SeaSondeRAPM_BEAR
,
validate_SeaSondeRAPM_SiteOrigin
, etc.
In the SeaSondeRAPM system, each attribute is accompanied by a corresponding getter and setter function. These functions follow a specific naming pattern to make it easy to identify which attribute they manipulate.
The naming convention for these getter and setter functions is:
seasonder_setSeaSondeRAPM_<AttributeName>(seasonde_apm_obj, new_value)
:
for setting the value of an attribute.
seasonder_getSeaSondeRAPM_<AttributeName>(seasonde_apm_obj)
:
for retrieving the value of an attribute.
Here, <AttributeName>
is the name of the attribute
you are interested in manipulating.
To set the value of the ‘Type’ attribute in a
SeaSondeRAPM
object, you would use:
Here, seasonde_apm_obj
is the SeaSondeRAPM
object whose ‘Type’ attribute you want to set, and
new_value
is the value you want to assign to it.
To get the value of the ‘Type’ attribute from a
SeaSondeRAPM
object, you would use:
Here, seasonde_apm_obj
is the SeaSondeRAPM
object whose ‘Type’ attribute you want to retrieve.
By following these naming conventions and examples, you can easily
set or get any attribute for a SeaSondeRAPM
object.
seasonder_readSeaSondeRAPMFile
This function allows users to read a SeaSonde APM file from a given
path and parse it into a SeaSondeRAPM
object.
By utilizing this class and its associated functions, users can maintain a high level of integrity and standardization in managing SeaSonde antenna pattern calibration data.
The SeaSondeRAPM object has various attributes to capture the
specifics of the Antenna Pattern Measurement (APM) data. These
attributes can be initialized using the
seasonder_initializeAttributesSeaSondeRAPM()
function.
The seasonder_initializeAttributesSeaSondeRAPM
function
initializes various attributes for a SeaSondeRAPM object, taking a
calibration matrix as a mandatory argument and any number of additional
named attributes to override the default settings.
Arguments:
calibration_matrix
: A 2 x b complex matrix, where b
represents the number of bearings for calibration....
: Additional named attributes that may override
default values.The function returns a list containing initialized attributes for a SeaSondeRAPM object.
quality_matrix
: A 2 x b complex matrix for quality
data, where b represents the number of bearings.BEAR
: A numeric vector for bearings (degrees).Type
: Character string representing the antenna pattern
type.FileName
: The name of the MeasPattern.txt file from
which the APM data was read.CreateTimeStamp
: The creation time of the APM
file.Creator
: The name of the entity that created the
SeaSondeRAPM object. Defaults to an empty character vector.SiteName
: The name of the site (different from
SiteCode
). Defaults to an empty character vector.SiteOrigin
: A numeric vector representing the GPS
location of the station. Defaults to c(0,0)
.ProcessingSteps
: A character vector that keeps track of
all the processing steps applied to the object. Defaults to an empty
character vector.AmplitudeFactors
: A numeric vector for amplitude
factors. Defaults to c(0,0)
.AntennaBearing
: A numeric vector for antenna bearing.
Defaults to an empty numeric vector.StationCode
: A 4-character code for the station.
Defaults to an empty character vector.BearingResolution
: A numeric value indicating bearing
resolution in degrees. Defaults to an empty numeric vector.Smoothing
: A numeric vector indicating the smoothing
applied to the antenna pattern. Defaults to an empty numeric
vector.CommentLine
: Metadata lines from the data file not
matching any other attribute. Defaults to an empty character
vector.FileID
: File’s UUID. Defaults to an empty character
vector.PhaseCorrections
: A numeric vector for phase
corrections. Defaults to c(0,0)
.# Initialize attributes with a custom 'Type'
attr_list_custom <- seasonder_initializeAttributesSeaSondeRAPM(calibration_matrix = cal_matrix, Type = "Custom Pattern")
str(attr_list_custom)
By understanding these attributes and their corresponding getter and setter methods, you can more effectively interact with SeaSondeRAPM objects.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.