XML   33

AxisCarGeolocation

Guest on 5th May 2022 05:23:02 PM

  1. <sml:SensorML xmlns:gml="http://www.opengis.net/gml" xmlns:sml="http://www.opengis.net/sensorML/1.0" xmlns:swe="http://www.opengis.net/swe/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/sensorML/1.0 file:///C:\eclipse_workspace\schema\sensorML\sensorML.xsd" version="1.0">
  2. <sml:member>
  3. <sml:ProcessChain gml:id="GEOLOCATION">
  4. <gml:description> This process chain determines the car-mounted camera position vector and the ECEF view vector. </gml:description>
  5. <gml:name>Camera</gml:name>
  6. <sml:inputs>
  7. <sml:InputList>
  8. <sml:input name="xPixel">
  9. <swe:Quantity/>
  10. </sml:input>
  11. <sml:input name="yPixel">
  12. <swe:Quantity/>
  13. </sml:input>
  14. <sml:input name="zoom">
  15. <swe:Quantity>
  16. <!--  <swe:value>1020</swe:value>  -->
  17. <swe:value>600</swe:value>
  18. </swe:Quantity>
  19. </sml:input>
  20. <sml:input name="pan">
  21. <swe:Quantity>
  22. <swe:value>0</swe:value>
  23. </swe:Quantity>
  24. </sml:input>
  25. <sml:input name="tilt">
  26. <swe:Quantity>
  27. <swe:value>1.3</swe:value>
  28. <swe:uom code="rad"/>
  29. </swe:Quantity>
  30. </sml:input>
  31. <sml:input name="zeroHeading">
  32. <swe:Quantity>
  33. <swe:value>0</swe:value>
  34. </swe:Quantity>
  35. </sml:input>
  36. <sml:input name="navigationData">
  37. <swe:DataRecord>
  38. <swe:field name="time">
  39. <swe:Time definition="urn:ogc:phenomenon:time" referenceTime="1970-01-01T00:00:00Z">
  40. <swe:uom code="s"/>
  41. </swe:Time>
  42. </swe:field>
  43. <swe:field name="latitude">
  44. <swe:Quantity definition="urn:ogc:phenomenon:latitude:wgs84">
  45. <swe:uom code="deg"/>
  46. </swe:Quantity>
  47. </swe:field>
  48. <swe:field name="longitude">
  49. <swe:Quantity definition="urn:ogc:phenomenon:longitude:wgs84">
  50. <swe:uom code="deg"/>
  51. </swe:Quantity>
  52. </swe:field>
  53. <swe:field name="trueHeading">
  54. <swe:Quantity definition="urn:ogc:phenomenon:angle">
  55. <swe:uom code="deg"/>
  56. </swe:Quantity>
  57. </swe:field>
  58. <swe:field name="pitch">
  59. <swe:Quantity definition="urn:ogc:phenomenon:angle">
  60. <swe:uom code="deg"/>
  61. </swe:Quantity>
  62. </swe:field>
  63. <swe:field name="roll">
  64. <swe:Quantity definition="urn:ogc:phenomenon:angle">
  65. <swe:uom code="deg"/>
  66. </swe:Quantity>
  67. </swe:field>
  68. <swe:field name="derivedTH">
  69. <swe:Quantity definition="urn:ogc:phenomenon:angle">
  70. <swe:uom code="deg"/>
  71. </swe:Quantity>
  72. </swe:field>
  73. <swe:field name="groundElevation">
  74. <swe:Quantity definition="urn:ogc:phenomenon:angle">
  75. <swe:uom code="m"/>
  76. </swe:Quantity>
  77. </swe:field>
  78. <swe:field name="derivedPitch">
  79. <swe:Quantity definition="urn:ogc:phenomenon:angle">
  80. <swe:uom code="deg"/>
  81. </swe:Quantity>
  82. </swe:field>
  83. </swe:DataRecord>
  84. </sml:input>
  85. </sml:InputList>
  86. </sml:inputs>
  87. <sml:outputs>
  88. <sml:OutputList>
  89. <sml:output name="terrainElevation">
  90. <swe:Quantity>
  91. <swe:uom code="m"/>
  92. </swe:Quantity>
  93. </sml:output>
  94. <sml:output name="ECEF_location">
  95. <swe:Vector definition="urn:ogc:def:data:locationVector" referenceFrame="urn:ogc:def:crs:ECEF_wgs84">
  96. <swe:coordinate name="x">
  97. <swe:Quantity>
  98. <swe:uom code="m"/>
  99. </swe:Quantity>
  100. </swe:coordinate>
  101. <swe:coordinate name="y">
  102. <swe:Quantity>
  103. <swe:uom code="m"/>
  104. </swe:Quantity>
  105. </swe:coordinate>
  106. <swe:coordinate name="z">
  107. <swe:Quantity>
  108. <swe:uom code="m"/>
  109. </swe:Quantity>
  110. </swe:coordinate>
  111. </swe:Vector>
  112. </sml:output>
  113. <sml:output name="ECEF_view_vector">
  114. <swe:Vector definition="urn:ogc:def:data:viewVector" referenceFrame="urn:ogc:def:crs:ECEF_wgs84">
  115. <swe:coordinate name="x">
  116. <swe:Quantity>
  117. <swe:uom code="m"/>
  118. </swe:Quantity>
  119. </swe:coordinate>
  120. <swe:coordinate name="y">
  121. <swe:Quantity>
  122. <swe:uom code="m"/>
  123. </swe:Quantity>
  124. </swe:coordinate>
  125. <swe:coordinate name="z">
  126. <swe:Quantity>
  127. <swe:uom code="m"/>
  128. </swe:Quantity>
  129. </swe:coordinate>
  130. </swe:Vector>
  131. </sml:output>
  132. </sml:OutputList>
  133. </sml:outputs>
  134. <sml:components>
  135. <sml:ComponentList>
  136. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  137. <!--  LUT along-scan angle -->
  138. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  139. <sml:component name="LUTxFOV">
  140. <sml:ProcessModel>
  141. <sml:inputs>
  142. <sml:InputList>
  143. <sml:input name="Zoom">
  144. <swe:Quantity definition="urn:ogc:def:data:normalizedIndex"/>
  145. </sml:input>
  146. </sml:InputList>
  147. </sml:inputs>
  148. <sml:outputs>
  149. <sml:OutputList>
  150. <sml:output name="xFOV">
  151. <swe:Quantity definition="urn:ogc:def:phenomenon:angle">
  152. <swe:uom code="rad"/>
  153. </swe:Quantity>
  154. </sml:output>
  155. </sml:OutputList>
  156. </sml:outputs>
  157. <sml:parameters>
  158. <sml:ParameterList>
  159. <sml:parameter name="interpolationMethod">
  160. <swe:Category>
  161. <swe:value>linear</swe:value>
  162. </swe:Category>
  163. </sml:parameter>
  164. <sml:parameter name="table">
  165. <swe:Curve>
  166. <swe:elementCount>
  167. <swe:Count>
  168. <swe:value>14</swe:value>
  169. </swe:Count>
  170. </swe:elementCount>
  171. <swe:elementType>
  172. <swe:SimpleDataRecord>
  173. <swe:field name="Zoom">
  174. <swe:Quantity/>
  175. </swe:field>
  176. <swe:field name="xFOV">
  177. <swe:Quantity/>
  178. </swe:field>
  179. </swe:SimpleDataRecord>
  180. </swe:elementType>
  181. <swe:encoding>
  182. <swe:TextBlock tokenSeparator="," blockSeparator=" " decimalSeparator="."/>
  183. </swe:encoding>
  184. <swe:values>1,0.982253087 81,0.841955671 205,0.64380847 298,0.507277076 399,0.457038489 597,0.352850296 919,0.26634455 1397,0.19898833 1997,0.149312146 3054,0.106456723 3986,0.083967025 6074,0.05940875 7940,0.049170419 9999,0.047122426</swe:values>
  185. </swe:Curve>
  186. </sml:parameter>
  187. </sml:ParameterList>
  188. </sml:parameters>
  189. <sml:method xlink:href="urn:ogc:def:process:LUT1D:1.0"/>
  190. </sml:ProcessModel>
  191. </sml:component>
  192. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  193. <!--  Binary arithmeric to get along-scan FOV  -->
  194. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  195. <sml:component name="Binary_along_y_FOV">
  196. <sml:ProcessModel>
  197. <sml:inputs>
  198. <sml:InputList>
  199. <sml:input name="operand1">
  200. <swe:Quantity/>
  201. </sml:input>
  202. <sml:input name="operand2">
  203. <swe:Quantity>
  204. <swe:value>0.6827880512091038406827880512091</swe:value>
  205. </swe:Quantity>
  206. </sml:input>
  207. </sml:InputList>
  208. </sml:inputs>
  209. <sml:outputs>
  210. <sml:OutputList>
  211. <sml:output name="result">
  212. <swe:Quantity/>
  213. </sml:output>
  214. </sml:OutputList>
  215. </sml:outputs>
  216. <sml:parameters>
  217. <sml:ParameterList>
  218. <sml:parameter name="operator">
  219. <swe:Category>
  220. <swe:value>multiplication</swe:value>
  221. </swe:Category>
  222. </sml:parameter>
  223. </sml:ParameterList>
  224. </sml:parameters>
  225. <sml:method xlink:href="urn:vast:def:process:binaryOperation:1.0"/>
  226. </sml:ProcessModel>
  227. </sml:component>
  228. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  229. <!--  Binary arithmeric to get along-scan FOV  -->
  230. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  231. <sml:component name="equationSolverOnX">
  232. <sml:ProcessModel>
  233. <sml:inputs>
  234. <sml:InputList>
  235. <sml:input name="V1">
  236. <swe:Quantity/>
  237. </sml:input>
  238. <sml:input name="V2">
  239. <swe:Quantity/>
  240. </sml:input>
  241. <sml:input name="V3">
  242. <swe:Quantity/>
  243. </sml:input>
  244. <sml:input name="V4">
  245. <swe:Quantity/>
  246. </sml:input>
  247. </sml:InputList>
  248. </sml:inputs>
  249. <sml:outputs>
  250. <sml:OutputList>
  251. <sml:output name="result">
  252. <swe:Quantity/>
  253. </sml:output>
  254. </sml:OutputList>
  255. </sml:outputs>
  256. <sml:parameters>
  257. <sml:ParameterList>
  258. <sml:parameter name="equation">
  259. <swe:Category>
  260. <swe:value>x=5*(-V1/703*V2+176/352*V1)+V3+V4</swe:value>
  261. </swe:Category>
  262. </sml:parameter>
  263. </sml:ParameterList>
  264. </sml:parameters>
  265. <sml:method xlink:href="urn:vast:def:process:equationSolver:1.0"/>
  266. </sml:ProcessModel>
  267. </sml:component>
  268. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  269. <!--  Binary arithmeric to get along-scan FOV  -->
  270. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  271. <sml:component name="equationSolverOnY">
  272. <sml:ProcessModel>
  273. <sml:inputs>
  274. <sml:InputList>
  275. <sml:input name="V1">
  276. <swe:Quantity/>
  277. </sml:input>
  278. <sml:input name="V2">
  279. <swe:Quantity/>
  280. </sml:input>
  281. <sml:input name="V3">
  282. <swe:Quantity/>
  283. </sml:input>
  284. </sml:InputList>
  285. </sml:inputs>
  286. <sml:outputs>
  287. <sml:OutputList>
  288. <sml:output name="result">
  289. <swe:Quantity/>
  290. </sml:output>
  291. </sml:OutputList>
  292. </sml:outputs>
  293. <sml:parameters>
  294. <sml:ParameterList>
  295. <sml:parameter name="equation">
  296. <swe:Category>
  297. <swe:value>x=2*(-V1/479*V2+120/240*V1)+V3</swe:value>
  298. </swe:Category>
  299. </sml:parameter>
  300. </sml:ParameterList>
  301. </sml:parameters>
  302. <sml:method xlink:href="urn:vast:def:process:equationSolver:1.0"/>
  303. </sml:ProcessModel>
  304. </sml:component>
  305. <!--  Actual chain doing the geolocation job  -->
  306. <sml:component name="geo" xlink:href="./geo.xml#GEOLOCATION"/>
  307. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  308. <!--  LLA to ECEF  -->
  309. <!-- ~~~~~~~~~~~~~~~~~~~~ -->
  310. <!--          <sml:component name="LLAtoECEF">
  311.                  <sml:ProcessModel>
  312.                     <sml:inputs>
  313.                        <sml:InputList>
  314.                           <sml:input name="LLA_location">
  315.                              <swe:Vector definition="urn:ogc:def:data:locationVector" referenceFrame="urn:ogc:def:crs:epsg4329">
  316.                                 <swe:coordinate name="latitude">
  317.                                    <swe:Quantity definition="urn:ogc:def:phenomenon:angle">
  318.                                       <swe:uom code="rad"/>
  319.                                    </swe:Quantity>
  320.                                 </swe:coordinate>
  321.                                 <swe:coordinate name="longitude">
  322.                                    <swe:Quantity definition="urn:ogc:def:phenomenon:angle">
  323.                                       <swe:uom code="rad"/>
  324.                                    </swe:Quantity>
  325.                                 </swe:coordinate>
  326.                                 <swe:coordinate name="altitude">
  327.                                    <swe:Quantity definition="urn:ogc:def:phenomenon:distance">
  328.                                       <swe:uom code="m"/>
  329.                                    </swe:Quantity>
  330.                                 </swe:coordinate>
  331.                              </swe:Vector>
  332.                           </sml:input>
  333.                        </sml:InputList>
  334.                     </sml:inputs>
  335.                     <sml:outputs>
  336.                        <sml:OutputList>
  337.                           <sml:output name="ECEF_location">
  338.                              <swe:Vector definition="urn:ogc:def:data:locationVector" referenceFrame="urn:ogc:def:crs:ecef_wgs84">
  339.                                 <swe:coordinate name="x">
  340.                                    <swe:Quantity definition="urn:ogc:def:phenomenon:distance">
  341.                                       <swe:uom code="m"/>
  342.                                    </swe:Quantity>
  343.                                 </swe:coordinate>
  344.                                 <swe:coordinate name="y">
  345.                                    <swe:Quantity definition="urn:ogc:def:phenomenon:distance">
  346.                                       <swe:uom code="m"/>
  347.                                    </swe:Quantity>
  348.                                 </swe:coordinate>
  349.                                 <swe:coordinate name="z">
  350.                                    <swe:Quantity definition="urn:ogc:def:phenomenon:distance">
  351.                                       <swe:uom code="m"/>
  352.                                    </swe:Quantity>
  353.                                 </swe:coordinate>
  354.                              </swe:Vector>
  355.                           </sml:output>
  356.                        </sml:OutputList>
  357.                     </sml:outputs>
  358.                     <sml:method xlink:href="urn:ogc:def:process:LLAtoECEF:2.0"/>
  359.                  </sml:ProcessModel>
  360.               </sml:component>   -->
  361. </sml:ComponentList>
  362. </sml:components>
  363. <!-- ~~~~~~~~~~~~~ -->
  364. <!--  Connections  -->
  365. <!-- ~~~~~~~~~~~~~ -->
  366. <sml:connections>
  367. <sml:ConnectionList>
  368. <!--  chain inputs to processes inputs  -->
  369. <sml:connection>
  370. <sml:Link>
  371. <sml:source ref="this/inputs/navigationData"/>
  372. <sml:destination ref="geo/inputs/navigationData"/>
  373. </sml:Link>
  374. </sml:connection>
  375. <sml:connection>
  376. <sml:Link>
  377. <sml:source ref="this/inputs/zoom"/>
  378. <sml:destination ref="LUTxFOV/inputs/Zoom"/>
  379. </sml:Link>
  380. </sml:connection>
  381. <sml:connection>
  382. <sml:Link>
  383. <sml:source ref="LUTxFOV/outputs/xFOV"/>
  384. <sml:destination ref="equationSolverOnX/inputs/V1"/>
  385. </sml:Link>
  386. </sml:connection>
  387. <sml:connection>
  388. <sml:Link>
  389. <sml:source ref="this/inputs/xPixel"/>
  390. <sml:destination ref="equationSolverOnX/inputs/V2"/>
  391. </sml:Link>
  392. </sml:connection>
  393. <sml:connection>
  394. <sml:Link>
  395. <sml:source ref="this/inputs/pan"/>
  396. <sml:destination ref="equationSolverOnX/inputs/V3"/>
  397. </sml:Link>
  398. </sml:connection>
  399. <sml:connection>
  400. <sml:Link>
  401. <sml:source ref="this/inputs/zeroHeading"/>
  402. <sml:destination ref="equationSolverOnX/inputs/V4"/>
  403. </sml:Link>
  404. </sml:connection>
  405. <sml:connection>
  406. <sml:Link>
  407. <sml:source ref="LUTxFOV/outputs/xFOV"/>
  408. <sml:destination ref="Binary_along_y_FOV/inputs/operand1"/>
  409. </sml:Link>
  410. </sml:connection>
  411. <sml:connection>
  412. <sml:Link>
  413. <sml:source ref="Binary_along_y_FOV/outputs/result"/>
  414. <sml:destination ref="equationSolverOnY/inputs/V1"/>
  415. </sml:Link>
  416. </sml:connection>
  417. <sml:connection>
  418. <sml:Link>
  419. <sml:source ref="this/inputs/yPixel"/>
  420. <sml:destination ref="equationSolverOnY/inputs/V2"/>
  421. </sml:Link>
  422. </sml:connection>
  423. <sml:connection>
  424. <sml:Link>
  425. <sml:source ref="this/inputs/tilt"/>
  426. <sml:destination ref="equationSolverOnY/inputs/V3"/>
  427. </sml:Link>
  428. </sml:connection>
  429. <sml:connection>
  430. <sml:Link>
  431. <sml:source ref="equationSolverOnX/outputs/result"/>
  432. <sml:destination ref="geo/inputs/alongScanAngle"/>
  433. </sml:Link>
  434. </sml:connection>
  435. <sml:connection>
  436. <sml:Link>
  437. <sml:source ref="equationSolverOnY/outputs/result"/>
  438. <sml:destination ref="geo/inputs/alongTrackAngle"/>
  439. </sml:Link>
  440. </sml:connection>
  441. <sml:connection>
  442. <sml:Link>
  443. <sml:source ref="geo/outputs/geolocationData/ECEF_location"/>
  444. <sml:destination ref="this/outputs/ECEF_location"/>
  445. </sml:Link>
  446. </sml:connection>
  447. <sml:connection>
  448. <sml:Link>
  449. <sml:source ref="geo/outputs/geolocationData/ECEF_view_vector"/>
  450. <sml:destination ref="this/outputs/ECEF_view_vector"/>
  451. </sml:Link>
  452. </sml:connection>
  453. <sml:connection>
  454. <sml:Link>
  455. <sml:source ref="geo/outputs/terrainElevation"/>
  456. <sml:destination ref="this/outputs/terrainElevation"/>
  457. </sml:Link>
  458. </sml:connection>
  459. </sml:ConnectionList>
  460. </sml:connections>
  461. </sml:ProcessChain>
  462. </sml:member>
  463. </sml:SensorML>

Raw Paste


Login or Register to edit or fork this paste. It's free.