You've already forked OpenUxAS-SoI
mirror of
https://github.com/AdaCore/OpenUxAS-SoI.git
synced 2026-02-12 13:04:49 -08:00
65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
#! /usr/bin/env python
|
|
|
|
import xml.dom.minidom
|
|
from xml.dom.minidom import Node
|
|
import pandas as pd
|
|
import glob
|
|
import sys
|
|
# import the conversion module
|
|
import LocalCoords
|
|
|
|
def ProcessEntityStateFile(filename):
|
|
|
|
isGoodMessage = True
|
|
entityState = []
|
|
doc2 = xml.dom.minidom.parse(filename)
|
|
if doc2.hasChildNodes():
|
|
try:
|
|
entityId = 0
|
|
elements = doc2.getElementsByTagName('ID')
|
|
if elements and elements[0].firstChild and elements[0].firstChild.nodeType == Node.TEXT_NODE:
|
|
entityId = int(elements[0].firstChild.data)
|
|
latitude = 0.0
|
|
longitude = 0.0
|
|
altitude = 0.0
|
|
elements = doc2.getElementsByTagName('Location')
|
|
if len(elements):
|
|
locationNode = elements[0].getElementsByTagName('Location3D')
|
|
if len(locationNode):
|
|
elements = locationNode[0].getElementsByTagName('Latitude')
|
|
if elements:
|
|
latitude = float(elements[0].firstChild.data)
|
|
elements = locationNode[0].getElementsByTagName('Longitude')
|
|
if elements:
|
|
longitude = float(elements[0].firstChild.data)
|
|
elements = locationNode[0].getElementsByTagName('Altitude')
|
|
if elements:
|
|
altitude = float(elements[0].firstChild.data)
|
|
heading = 0
|
|
elements = doc2.getElementsByTagName('Heading')
|
|
if len(elements):
|
|
heading = float(elements[0].firstChild.data)
|
|
|
|
except Exception:
|
|
print('### Error encountered while processing the EntityState ###')
|
|
isGoodMessage = False
|
|
except:
|
|
print('### Error encountered while processing the EntityState ###Unexpected error:', sys.exc_info()[0])
|
|
isGoodMessage = False
|
|
if isGoodMessage:
|
|
return [entityId,latitude,longitude,altitude,heading]
|
|
|
|
return entityState
|
|
|
|
def main():
|
|
vehicleStateArray = []
|
|
for entityStateFile in glob.glob('EnityState_Id*'):
|
|
print('loading [' + entityStateFile + ']')
|
|
vehicleStateArray.append(ProcessEntityStateFile(entityStateFile))
|
|
vehicleStatesPd = pd.DataFrame(data = vehicleStateArray,columns=['vehicleID','latitude','longitude','altitude','heading'])
|
|
print('saving [VehicleStates.pkl]')
|
|
vehicleStatesPd.to_pickle('VehicleStates.pkl')
|
|
|
|
if __name__ == '__main__':
|
|
main()
|