forked from stpaine/FERS
-
Notifications
You must be signed in to change notification settings - Fork 1
File based RCS
David Young edited this page Apr 30, 2025
·
2 revisions
Provides angle-dependent Radar Cross-Section (RCS) for a target by loading data from an external XML file. This mode is enabled by setting the rcs element's type attribute to "file" and providing the path via the filename attribute within the target definition.
- Assumes the specified XML RCS file exists, is accessible, and is well-formed according to the expected structure.
- Assumes the XML file contains distinct
<elevation>and<azimuth>sections. - Assumes these sections contain
<rcssample>entries, each having<angle>and<rcs>child elements. - Assumes the angles specified within the
<angle>tags are in the expected units (e.g., degrees or radians β needs verification). - Assumes the internal angle calculation logic (
t_angle = inAngle + outAngleused for lookup index determination likeazimuth/2,elevation/2) is appropriate for the intended use case (e.g., correctly represents the necessary bistatic or monostatic scattering angle based on the file format). - Assumes combining the looked-up azimuth and elevation RCS values using
sqrt(azi_value * elev_value)is a physically representative way to get the final RCS for the given file data format. - Assumes the
interp::InterpSetclass performs suitable interpolation (e.g., linear, spline β needs verification) between the discrete sample points defined in the file. - Assumes the RCS values provided within the
<rcs>tags are in square meters (mΒ²).
-
XML Format Rigidity: Only supports the specific XML structure parsed by the internal
loadTargetGainAxisfunction. - Limited RCS Format Support: No built-in support exists for parsing or using other common RCS data formats (e.g., standard measured data tables, outputs from CAD-based electromagnetic simulation tools).
-
Azimuth/Elevation Combination Method: The method of combining azimuth and elevation components (
sqrt(azi_value * elev_value)) implicitly assumes the 3D RCS pattern is separable into independent azimuth and elevation components. This may not accurately represent complex, non-separable 3D scattering patterns. -
Interpolation Dependency/Uncertainty: The accuracy of the RCS value between defined sample points depends entirely on the behavior of the
interp::InterpSetclass (e.g., linear, spline). The exact interpolation method used requires verification. - Error Handling: Throws a fatal error (likely causing simulation termination) if an RCS lookup fails (e.g., if the calculated angle falls outside the range defined by the samples in the XML file).
- Polarization Not Supported: Cannot model polarization-dependent scattering effects; the relevant code appears to be commented out or removed.
- XML Parsing:
xml_parser.cpp::parseTarget(Readstypeandfilenameattributes) - Core Class:
target.h::FileTarget(Implements the file-based RCS logic) - Factory Function:
target.h::createFileTarget(InstantiatesFileTarget) - File Loading:
target.cpp::FileTarget::FileTarget(Constructor that loads the XML) - Sample Parsing:
target.cpp::loadTargetGainAxis(Parses<rcssample>entries) - Data Storage/Interpolation:
interp::InterpSetclass (Used withinFileTargetto hold and interpolate samples) - RCS Lookup Logic:
target.cpp::FileTarget::getRcs(Calculates angles, performs lookups, combines results) - Usage Context:
sim_threading.cpp::solveRe(CallsgetRcsduring simulation)
-
Needs Verification:
- Expected units for
<angle>tags in the RCS XML file (degrees or radians?). - The specific interpolation method implemented by
interp::InterpSet. - Whether the angle calculation (
inAngle + outAngle,azimuth/2,elevation/2) correctly maps to the intended physical angle represented by the XML data structure.
- Expected units for
-
Key Areas for Validation:
- Robustness of parsing various valid and invalid RCS XML file structures.
- Accuracy of the angle calculation logic under different bistatic/monostatic geometries.
- Correctness of the
sqrt(azi * elev)combination method against known separable patterns. - Behavior and accuracy of the interpolation between sample points.
- Handling of angles exactly matching sample points vs. falling between them.
- Correctness of error handling when lookup angles are out of the defined range.
- Verification that RCS values are interpreted correctly in mΒ².
- Priority: High (Due to significant assumptions about format, angle calculation, combination method, and external file dependency)