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.

Antenna Pattern

library(SeaSondeR)

Introduction

Importance of an HF-Radar Antenna Pattern

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.

Need for Antenna Pattern Measurement (APM)

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).

Antenna Pattern Measurement (APM)

APM Objective

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 algorithm and APM

Direction Finding with MUSIC

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.

Application of the MUSIC algorithm to SeaSonde

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.

Limitations and Challenges

In implementing the MUSIC algorithm, there are several assumptions and limitations to consider:

  1. \(m > n\): The number of antenna elements (\(m\)) must be strictly greater than the number of incident signals (\(n\)). In the SeaSonde context, this limits the number of incident signals that can be considered for each Doppler frequency to one or two (Lipa et al. 2006).

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).

  1. 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.

  2. 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).

  3. \(N > m\): The number of measured samples (\(N\)) at each antenna must be greater than \(m\) (Lipa et al. 2006).

How APM is Applied

The APM procedure involves several software steps and specialized tools:

  1. GPS Tracker: Processes the GPS track to create a TRACK file to be used in subsequent steps.
  2. SeaSondeAcquisition: Combines the data acquired by the radar with the GPS TRACK, generating a LOOP file.
  3. CrossLoopPatterner: Processes the LOOP file to generate the antenna pattern.
  4. Installation of the new antenna pattern in the system.

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.

Introduction to the SeaSondeRAPM Class

The 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:

Core 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:

apm <- seasonder_createSeaSondeRAPM(calibration_matrix)

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.

Getters and Setters

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.

Naming Convention

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.

Examples

Setting an Attribute

To set the value of the ‘Type’ attribute in a SeaSondeRAPM object, you would use:

seasonder_setSeaSondeRAPM_Type(seasonde_apm_obj, new_value)

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.

Getting an Attribute

To get the value of the ‘Type’ attribute from a SeaSondeRAPM object, you would use:

value = seasonder_getSeaSondeRAPM_Type(seasonde_apm_obj)

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.

Example Use Cases

# Create a SeaSondeRAPM object
cal_matrix <- matrix(complex(real = c(1, 2), imaginary = c(3, 4)), nrow = 2)
apm <- seasonder_createSeaSondeRAPM(cal_matrix)

# Read from an APM file
apm_from_file <- seasonder_readSeaSondeRAPMFile("path/to/file.apm")

Key Features

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.

Detailed Attributes for SeaSondeRAPM Objects

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.

Initialization 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.

Syntax

seasonder_initializeAttributesSeaSondeRAPM(calibration_matrix, ...)

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.

Returns

The function returns a list containing initialized attributes for a SeaSondeRAPM object.

Attributes

Examples

Initialize Attributes with Default Settings

# Create a calibration_matrix
cal_matrix <- matrix(complex(real = c(1, 2), imaginary = c(3, 4)), nrow = 2, ncol = 2)

# Initialize attributes
attr_list <- seasonder_initializeAttributesSeaSondeRAPM(calibration_matrix = cal_matrix)
str(attr_list)

Initialize Attributes with Custom ‘Type’

# 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.

References

Codar Ocean Sensors. 2003. User’s Guide for:SeaSonde® Radial Site: Operating Theory. 1000 Fremont Ave., Suite 145, Los Altos, CA 94024-6057 USA: Codar Ocean Sensors, Ltd. https://codar.com/.
Lipa, Belinda, Maeve Daugharty, Maria Fernandes, Donald Barrick, Andres Alonso-Martirena, Hugh Roarty, Chad Whelan Jaden Dicopoulos, and Chad Whelan. 2018. Developments in Compact HF-Radar OceanWave Measurement.” In Physical Sensors, Sensor Networks and Remote Sensing, edited by Sergey Y. Yurish. Vol. 5. Advances in Sensors: Reviews. Barcelona (Spain): International Frequency Sensor Association Publishing (IFSA).
Lipa, Belinda, Bruce Nyden, David S. Ullman, and Eric Terrill. 2006. SeaSonde Radial Velocities: Derivation and Internal Consistency.” IEEE Journal of Oceanic Engineering 31 (4): 850–61. https://doi.org/10.1109/joe.2006.886104.
Schmidt, R. 1986. Multiple emitter location and signal parameter estimation.” IEEE Transactions on Antennas and Propagation 34 (3): 276–80. https://doi.org/10.1109/tap.1986.1143830.
Stoica, P., and A. Nehorai. 1988. MUSIC, maximum likelihood and Cramer-Rao bound.” ICASSP-88., International Conference on Acoustics, Speech, and Signal Processing, 2296–2299 vol.4. https://doi.org/10.1109/icassp.1988.197097.

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.