FERS 0.1.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
fers-xml.dtd
Go to the documentation of this file.
1<!--
2 FERS XML simulation script Document Type Definition (DTD).
3
4 Copyright (C) 2006-2008 Marc Brooker.
5 Copyright (C) 2008-present FERS contributors (see AUTHORS.md).
6
7 This file is part of FERS. FERS is free software, licensed under the GPLv2.
8-->
9 <!-- Note: DTD cannot enforce the XSD's implicit requirement of "at least one of each" of waveform, timing, etc. in any order. -->
10 <!-- This model enforces that parameters is present, followed by at least one of the other main elements, preserving flexible ordering. -->
11 <!ELEMENT simulation (parameters, (waveform | timing | antenna | platform | include)+)>
12 <!ATTLIST simulation name CDATA #REQUIRED>
13
14 <!-- Simulation Parameters -->
15 <!ELEMENT parameters (starttime,endtime,rate,c?,simSamplingRate?,randomseed?,adc_bits?,oversample?,rotationangleunit?,origin?,coordinatesystem?)>
16 <!-- Start time of simulation -->
17 <!ELEMENT starttime (#PCDATA)>
18 <!-- End time of simulation -->
19 <!ELEMENT endtime (#PCDATA)>
20 <!-- Propagation speed -->
21 <!ELEMENT c (#PCDATA)>
22 <!-- Fidelity of the underlying physics simulation (Hz) -->
23 <!ELEMENT simSamplingRate (#PCDATA)>
24 <!-- Override the rendering sample rate with the specified one (Hz) -->
25 <!ELEMENT rate (#PCDATA)>
26 <!-- Random seed for noise -->
27 <!ELEMENT randomseed (#PCDATA)>
28 <!-- ADC bits for resolution -->
29 <!ELEMENT adc_bits (#PCDATA)>
30 <!-- Oversampling factor -->
31 <!ELEMENT oversample (#PCDATA)>
32 <!-- Rotation angle unit for external interfaces -->
33 <!ELEMENT rotationangleunit (#PCDATA)>
34 <!-- Geodetic origin used only for ENU KML/geospatial export -->
35 <!ELEMENT origin EMPTY>
36 <!ATTLIST origin
37 latitude CDATA #REQUIRED
38 longitude CDATA #REQUIRED
39 altitude CDATA "0"
40 >
41 <!-- Coordinate system used only for KML/geospatial export -->
42 <!ELEMENT coordinatesystem EMPTY>
43 <!ATTLIST coordinatesystem
44 frame (ENU|UTM|ECEF) #REQUIRED
45 zone CDATA #IMPLIED
46 hemisphere (N|S) #IMPLIED
47 >
48
49 <!-- Waveform definition -->
50 <!ELEMENT waveform (power, carrier_frequency, (pulsed_from_file | cw | fmcw_linear_chirp | fmcw_triangle))>
51 <!ATTLIST waveform
52 name CDATA #REQUIRED>
53
54 <!-- Waveform power and carrier frequency -->
55 <!-- Pulse power (Watts) -->
56 <!ELEMENT power (#PCDATA)>
57 <!-- Carrier frequency (Hz) -->
58 <!ELEMENT carrier_frequency (#PCDATA)>
59
60 <!-- Waveform types -->
61 <!ELEMENT pulsed_from_file EMPTY>
62 <!ATTLIST pulsed_from_file filename CDATA #REQUIRED>
63 <!ELEMENT cw EMPTY>
64 <!ELEMENT fmcw_linear_chirp (chirp_bandwidth, chirp_duration, chirp_period, start_frequency_offset?, chirp_count?)>
65 <!ATTLIST fmcw_linear_chirp direction (up|down) #REQUIRED>
66 <!ELEMENT fmcw_triangle (chirp_bandwidth, chirp_duration, start_frequency_offset?, triangle_count?)>
67 <!ELEMENT chirp_bandwidth (#PCDATA)>
68 <!ELEMENT chirp_duration (#PCDATA)>
69 <!ELEMENT chirp_period (#PCDATA)>
70 <!ELEMENT start_frequency_offset (#PCDATA)>
71 <!-- Per-schedule-segment maximum chirp count; each scheduled period may emit up to this many chirps. -->
72 <!ELEMENT chirp_count (#PCDATA)>
73 <!-- Per-schedule-segment maximum full triangle count; each scheduled period may emit up to this many triangles. -->
74 <!ELEMENT triangle_count (#PCDATA)>
75
76 <!-- Timing Source -->
77 <!ELEMENT timing (frequency,freq_offset?,random_freq_offset_stdev?,phase_offset?,random_phase_offset_stdev?,noise_entry*)>
78 <!-- Timing source. Sets frequency -->
79 <!ATTLIST timing
80 name CDATA #REQUIRED
81 synconpulse (true|false) "false">
82
83 <!-- Frequency (Hz) -->
84 <!ELEMENT frequency (#PCDATA)>
85
86 <!-- Noise Entry for timing -->
87 <!ELEMENT noise_entry (alpha,weight)>
88 <!-- Noise category alpha -->
89 <!ELEMENT alpha (#PCDATA)>
90 <!-- Weighting of noise in the category -->
91 <!ELEMENT weight (#PCDATA)>
92 <!-- Offset from system frequency -->
93 <!ELEMENT freq_offset (#PCDATA)>
94 <!-- Random frequency offset standard deviation -->
95 <!ELEMENT random_freq_offset_stdev (#PCDATA)>
96 <!-- Phase offset -->
97 <!ELEMENT phase_offset (#PCDATA)>
98 <!-- Random phase offset standard deviation -->
99 <!ELEMENT random_phase_offset_stdev (#PCDATA)>
100
101 <!-- Antenna -->
102 <!ELEMENT antenna (alpha?,beta?,gamma?,diameter?,azscale?,elscale?,efficiency?)>
103 <!ATTLIST antenna
104 name CDATA #REQUIRED
105 pattern CDATA #REQUIRED
106 filename CDATA #IMPLIED>
107
108 <!-- Parameters of antenna model -->
109 <!-- Element for beta -->
110 <!ELEMENT beta (#PCDATA)>
111 <!-- Element for gamma -->
112 <!ELEMENT gamma (#PCDATA)>
113 <!-- Diameter of the antenna -->
114 <!ELEMENT diameter (#PCDATA)>
115 <!-- Azimuth scale for a Gaussian pattern -->
116 <!ELEMENT azscale (#PCDATA)>
117 <!-- Elevation scale for Gaussian pattern -->
118 <!ELEMENT elscale (#PCDATA)>
119 <!-- The antenna efficiency factor -->
120 <!ELEMENT efficiency (#PCDATA)>
121
122 <!-- Platform -->
123 <!ELEMENT platform (motionpath,(rotationpath|fixedrotation),(monostatic|transmitter|receiver|target)*)>
124 <!ATTLIST platform
125 name CDATA #REQUIRED>
126
127 <!-- Motion paths and Position Waypoints -->
128 <!ELEMENT motionpath (positionwaypoint+)>
129 <!ATTLIST motionpath interpolation (static|linear|cubic) "static">
130
131 <!-- Position Waypoints -->
132 <!ELEMENT positionwaypoint (x,y,altitude,time)>
133 <!-- x position of waypoint -->
134 <!ELEMENT x (#PCDATA)>
135 <!-- y position of waypoint -->
136 <!ELEMENT y (#PCDATA)>
137 <!-- z (altitude) position of waypoint -->
138 <!ELEMENT altitude (#PCDATA)>
139 <!-- Time the platform is at the waypoint -->
140 <!ELEMENT time (#PCDATA)>
141
142 <!-- Constant Rate Rotation -->
143 <!ELEMENT fixedrotation (startazimuth,startelevation,azimuthrate,elevationrate)>
144 <!-- Azimuth at time 0 -->
145 <!ELEMENT startazimuth (#PCDATA)>
146 <!-- Elevation at time 0 -->
147 <!ELEMENT startelevation (#PCDATA)>
148 <!-- Rate of change of azimuth -->
149 <!ELEMENT azimuthrate (#PCDATA)>
150 <!-- Rate of change of elevation -->
151 <!ELEMENT elevationrate (#PCDATA)>
152
153 <!-- Rotation Paths and Waypoints -->
154 <!ELEMENT rotationpath (rotationwaypoint+)>
155 <!ATTLIST rotationpath interpolation (static|linear|cubic) #REQUIRED>
156 <!ELEMENT rotationwaypoint (azimuth,elevation,time)>
157 <!ELEMENT azimuth (#PCDATA)>
158 <!ELEMENT elevation (#PCDATA)>
159
160 <!-- Elements for defining radar operational modes -->
161 <!ELEMENT pulsed_mode (prf, window_skip?, window_length?)>
162 <!ELEMENT cw_mode EMPTY>
163 <!ELEMENT fmcw_mode (dechirp_reference?, if_sample_rate?, if_filter_bandwidth?, if_filter_transition_width?)>
164 <!ATTLIST fmcw_mode dechirp_mode (none|physical|ideal) "none">
165 <!ELEMENT dechirp_reference EMPTY>
166 <!ATTLIST dechirp_reference
167 source (attached|transmitter|custom) #REQUIRED
168 transmitter_name CDATA #IMPLIED
169 waveform_name CDATA #IMPLIED
170 >
171 <!ELEMENT if_sample_rate (#PCDATA)>
172 <!ELEMENT if_filter_bandwidth (#PCDATA)>
173 <!ELEMENT if_filter_transition_width (#PCDATA)>
174
175 <!ELEMENT schedule (period+)>
176 <!ELEMENT period EMPTY>
177 <!ATTLIST period
178 start CDATA #REQUIRED
179 end CDATA #REQUIRED
180 >
181
182 <!-- Monostatic radar installations -->
183 <!ELEMENT monostatic ((pulsed_mode | cw_mode | fmcw_mode), noise_temp?, schedule?)>
184 <!ATTLIST monostatic
185 name CDATA #REQUIRED
186 antenna CDATA #REQUIRED
187 waveform CDATA #REQUIRED
188 timing CDATA #REQUIRED
189 nodirect (true|false) "false"
190 nopropagationloss (true|false) "false">
191 <!ELEMENT prf (#PCDATA)>
192 <!ELEMENT noise_temp (#PCDATA)>
193
194 <!-- Standalone Transmitter -->
195 <!ELEMENT transmitter ((pulsed_mode | cw_mode | fmcw_mode), schedule?)>
196 <!ATTLIST transmitter
197 name CDATA #REQUIRED
198 waveform CDATA #REQUIRED
199 antenna CDATA #REQUIRED
200 timing CDATA #REQUIRED>
201
202 <!-- Standalone Receiver -->
203 <!ELEMENT receiver ((pulsed_mode | cw_mode | fmcw_mode), noise_temp?, schedule?)>
204 <!ATTLIST receiver
205 name CDATA #REQUIRED
206 antenna CDATA #REQUIRED
207 timing CDATA #REQUIRED
208 nodirect (true|false) "false"
209 nopropagationloss (true|false) "false">
210 <!-- Time to skip after start of pulse before starting receiving (seconds) -->
211 <!ELEMENT window_skip (#PCDATA)>
212 <!-- Length of the range gate (seconds) -->
213 <!ELEMENT window_length (#PCDATA)>
214
215 <!-- Target -->
216 <!ELEMENT target (rcs,model?)>
217 <!ATTLIST target
218 name CDATA #REQUIRED>
219
220 <!-- RCS can either have a 'value' element or a 'filename' attribute -->
221 <!-- Target RCS -->
222 <!ELEMENT rcs (value?)>
223 <!ATTLIST rcs type CDATA #REQUIRED
224 filename CDATA #IMPLIED>
225
226 <!-- RCS value -->
227 <!ELEMENT value (#PCDATA)>
228
229 <!-- Model element with 'type' as an attribute and optional k element -->
230 <!ELEMENT model (k?)>
231 <!ATTLIST model type CDATA #REQUIRED>
232 <!ELEMENT k (#PCDATA)>
233
234 <!-- Include another XML file -->
235 <!ELEMENT include (#PCDATA)>