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_from_file | fmcw_from_file | cw | fmcw_linear_chirp | fmcw_triangle | stepped_frequency))>
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_from_file EMPTY>
64 <!ATTLIST cw_from_file filename CDATA #REQUIRED>
65 <!ELEMENT fmcw_from_file EMPTY>
66 <!ATTLIST fmcw_from_file filename CDATA #REQUIRED>
67 <!ELEMENT cw EMPTY>
68 <!ELEMENT fmcw_linear_chirp (chirp_bandwidth, chirp_duration, chirp_period, start_frequency_offset?, chirp_count?)>
69 <!ATTLIST fmcw_linear_chirp direction (up|down) #REQUIRED>
70 <!ELEMENT fmcw_triangle (chirp_bandwidth, chirp_duration, start_frequency_offset?, triangle_count?)>
71 <!ELEMENT stepped_frequency (start_frequency_offset, step_size, step_count, dwell_time, step_period, sweep_count?)>
72 <!ELEMENT chirp_bandwidth (#PCDATA)>
73 <!ELEMENT chirp_duration (#PCDATA)>
74 <!ELEMENT chirp_period (#PCDATA)>
75 <!ELEMENT start_frequency_offset (#PCDATA)>
76 <!ELEMENT step_size (#PCDATA)>
77 <!ELEMENT step_count (#PCDATA)>
78 <!ELEMENT dwell_time (#PCDATA)>
79 <!ELEMENT step_period (#PCDATA)>
80 <!ELEMENT sweep_count (#PCDATA)>
81 <!-- Per-schedule-segment maximum chirp count; each scheduled period may emit up to this many chirps. -->
82 <!ELEMENT chirp_count (#PCDATA)>
83 <!-- Per-schedule-segment maximum full triangle count; each scheduled period may emit up to this many triangles. -->
84 <!ELEMENT triangle_count (#PCDATA)>
85
86 <!-- Timing Source -->
87 <!ELEMENT timing (frequency,freq_offset?,random_freq_offset_stdev?,phase_offset?,random_phase_offset_stdev?,noise_entry*)>
88 <!-- Timing source. Sets frequency -->
89 <!ATTLIST timing
90 name CDATA #REQUIRED
91 synconpulse (true|false) "false">
92
93 <!-- Frequency (Hz) -->
94 <!ELEMENT frequency (#PCDATA)>
95
96 <!-- Noise Entry for timing -->
97 <!ELEMENT noise_entry (alpha,weight)>
98 <!-- Noise category alpha -->
99 <!ELEMENT alpha (#PCDATA)>
100 <!-- Weighting of noise in the category -->
101 <!ELEMENT weight (#PCDATA)>
102 <!-- Offset from system frequency -->
103 <!ELEMENT freq_offset (#PCDATA)>
104 <!-- Random frequency offset standard deviation -->
105 <!ELEMENT random_freq_offset_stdev (#PCDATA)>
106 <!-- Phase offset -->
107 <!ELEMENT phase_offset (#PCDATA)>
108 <!-- Random phase offset standard deviation -->
109 <!ELEMENT random_phase_offset_stdev (#PCDATA)>
110
111 <!-- Antenna -->
112 <!ELEMENT antenna (alpha?,beta?,gamma?,diameter?,azscale?,elscale?,efficiency?)>
113 <!ATTLIST antenna
114 name CDATA #REQUIRED
115 pattern CDATA #REQUIRED
116 filename CDATA #IMPLIED>
117
118 <!-- Parameters of antenna model -->
119 <!-- Element for beta -->
120 <!ELEMENT beta (#PCDATA)>
121 <!-- Element for gamma -->
122 <!ELEMENT gamma (#PCDATA)>
123 <!-- Diameter of the antenna -->
124 <!ELEMENT diameter (#PCDATA)>
125 <!-- Azimuth scale for a Gaussian pattern -->
126 <!ELEMENT azscale (#PCDATA)>
127 <!-- Elevation scale for Gaussian pattern -->
128 <!ELEMENT elscale (#PCDATA)>
129 <!-- The antenna efficiency factor -->
130 <!ELEMENT efficiency (#PCDATA)>
131
132 <!-- Platform -->
133 <!ELEMENT platform (motionpath,(rotationpath|fixedrotation),(monostatic|transmitter|receiver|target)*)>
134 <!ATTLIST platform
135 name CDATA #REQUIRED>
136
137 <!-- Motion paths and Position Waypoints -->
138 <!ELEMENT motionpath (positionwaypoint+)>
139 <!ATTLIST motionpath interpolation (static|linear|cubic) "static">
140
141 <!-- Position Waypoints -->
142 <!ELEMENT positionwaypoint (x,y,altitude,time)>
143 <!-- x position of waypoint -->
144 <!ELEMENT x (#PCDATA)>
145 <!-- y position of waypoint -->
146 <!ELEMENT y (#PCDATA)>
147 <!-- z (altitude) position of waypoint -->
148 <!ELEMENT altitude (#PCDATA)>
149 <!-- Time the platform is at the waypoint -->
150 <!ELEMENT time (#PCDATA)>
151
152 <!-- Constant Rate Rotation -->
153 <!ELEMENT fixedrotation (startazimuth,startelevation,azimuthrate,elevationrate)>
154 <!-- Azimuth at time 0 -->
155 <!ELEMENT startazimuth (#PCDATA)>
156 <!-- Elevation at time 0 -->
157 <!ELEMENT startelevation (#PCDATA)>
158 <!-- Rate of change of azimuth -->
159 <!ELEMENT azimuthrate (#PCDATA)>
160 <!-- Rate of change of elevation -->
161 <!ELEMENT elevationrate (#PCDATA)>
162
163 <!-- Rotation Paths and Waypoints -->
164 <!ELEMENT rotationpath (rotationwaypoint+)>
165 <!ATTLIST rotationpath interpolation (static|linear|cubic) #REQUIRED>
166 <!ELEMENT rotationwaypoint (azimuth,elevation,time)>
167 <!ELEMENT azimuth (#PCDATA)>
168 <!ELEMENT elevation (#PCDATA)>
169
170 <!-- Elements for defining radar operational modes -->
171 <!ELEMENT pulsed_mode (prf, window_skip?, window_length?)>
172 <!ELEMENT cw_mode EMPTY>
173 <!ELEMENT fmcw_mode (dechirp_reference?, if_sample_rate?, if_filter_bandwidth?, if_filter_transition_width?)>
174 <!ATTLIST fmcw_mode dechirp_mode (none|physical|ideal) "none">
175 <!ELEMENT sfcw_mode EMPTY>
176 <!ELEMENT dechirp_reference EMPTY>
177 <!ATTLIST dechirp_reference
178 source (attached|transmitter|custom) #REQUIRED
179 transmitter_name CDATA #IMPLIED
180 waveform_name CDATA #IMPLIED
181 >
182 <!ELEMENT if_sample_rate (#PCDATA)>
183 <!ELEMENT if_filter_bandwidth (#PCDATA)>
184 <!ELEMENT if_filter_transition_width (#PCDATA)>
185
186 <!ELEMENT schedule (period+)>
187 <!ELEMENT period EMPTY>
188 <!ATTLIST period
189 start CDATA #REQUIRED
190 end CDATA #REQUIRED
191 >
192
193 <!-- Monostatic radar installations -->
194 <!ELEMENT monostatic ((pulsed_mode | cw_mode | fmcw_mode | sfcw_mode), noise_temp?, schedule?)>
195 <!ATTLIST monostatic
196 name CDATA #REQUIRED
197 antenna CDATA #REQUIRED
198 waveform CDATA #REQUIRED
199 timing CDATA #REQUIRED
200 nodirect (true|false) "false"
201 nopropagationloss (true|false) "false">
202 <!ELEMENT prf (#PCDATA)>
203 <!ELEMENT noise_temp (#PCDATA)>
204
205 <!-- Standalone Transmitter -->
206 <!ELEMENT transmitter ((pulsed_mode | cw_mode | fmcw_mode | sfcw_mode), schedule?)>
207 <!ATTLIST transmitter
208 name CDATA #REQUIRED
209 waveform CDATA #REQUIRED
210 antenna CDATA #REQUIRED
211 timing CDATA #REQUIRED>
212
213 <!-- Standalone Receiver -->
214 <!ELEMENT receiver ((pulsed_mode | cw_mode | fmcw_mode | sfcw_mode), noise_temp?, schedule?)>
215 <!ATTLIST receiver
216 name CDATA #REQUIRED
217 antenna CDATA #REQUIRED
218 timing CDATA #REQUIRED
219 nodirect (true|false) "false"
220 nopropagationloss (true|false) "false">
221 <!-- Time to skip after start of pulse before starting receiving (seconds) -->
222 <!ELEMENT window_skip (#PCDATA)>
223 <!-- Length of the range gate (seconds) -->
224 <!ELEMENT window_length (#PCDATA)>
225
226 <!-- Target -->
227 <!ELEMENT target (rcs,model?)>
228 <!ATTLIST target
229 name CDATA #REQUIRED>
230
231 <!-- RCS can either have a 'value' element or a 'filename' attribute -->
232 <!-- Target RCS -->
233 <!ELEMENT rcs (value?)>
234 <!ATTLIST rcs type CDATA #REQUIRED
235 filename CDATA #IMPLIED>
236
237 <!-- RCS value -->
238 <!ELEMENT value (#PCDATA)>
239
240 <!-- Model element with 'type' as an attribute and optional k element -->
241 <!ELEMENT model (k?)>
242 <!ATTLIST model type CDATA #REQUIRED>
243 <!ELEMENT k (#PCDATA)>
244
245 <!-- Include another XML file -->
246 <!ELEMENT include (#PCDATA)>