mirror of
https://github.com/AdaCore/OpenUxAS.git
synced 2026-02-12 13:07:16 -08:00
65 lines
3.7 KiB
Plaintext
65 lines
3.7 KiB
Plaintext
file << "#! /usr/bin/env python" << std::endl;
|
|
file << "" << std::endl;
|
|
file << "import xml.dom.minidom" << std::endl;
|
|
file << "from xml.dom.minidom import Node" << std::endl;
|
|
file << "import pandas as pd" << std::endl;
|
|
file << "import glob" << std::endl;
|
|
file << "import sys" << std::endl;
|
|
file << "# import the conversion module" << std::endl;
|
|
file << "import LocalCoords" << std::endl;
|
|
file << "" << std::endl;
|
|
file << "def ProcessEntityStateFile(filename):" << std::endl;
|
|
file << "" << std::endl;
|
|
file << "\tisGoodMessage = True" << std::endl;
|
|
file << "\tentityState = []" << std::endl;
|
|
file << "\tdoc2 = xml.dom.minidom.parse(filename)" << std::endl;
|
|
file << "\tif doc2.hasChildNodes():" << std::endl;
|
|
file << "\t\ttry:" << std::endl;
|
|
file << "\t\t\tentityId = 0" << std::endl;
|
|
file << "\t\t\telements = doc2.getElementsByTagName('ID')" << std::endl;
|
|
file << "\t\t\tif elements and elements[0].firstChild and elements[0].firstChild.nodeType == Node.TEXT_NODE:" << std::endl;
|
|
file << "\t\t\t\tentityId = int(elements[0].firstChild.data)" << std::endl;
|
|
file << "\t\t\tlatitude = 0.0" << std::endl;
|
|
file << "\t\t\tlongitude = 0.0" << std::endl;
|
|
file << "\t\t\taltitude = 0.0" << std::endl;
|
|
file << "\t\t\telements = doc2.getElementsByTagName('Location')" << std::endl;
|
|
file << "\t\t\tif len(elements):" << std::endl;
|
|
file << "\t\t\t\tlocationNode = elements[0].getElementsByTagName('Location3D')" << std::endl;
|
|
file << "\t\t\t\tif len(locationNode):" << std::endl;
|
|
file << "\t\t\t\t\telements = locationNode[0].getElementsByTagName('Latitude')" << std::endl;
|
|
file << "\t\t\t\t\tif elements:" << std::endl;
|
|
file << "\t\t\t\t\t\tlatitude = float(elements[0].firstChild.data)" << std::endl;
|
|
file << "\t\t\t\t\telements = locationNode[0].getElementsByTagName('Longitude')" << std::endl;
|
|
file << "\t\t\t\t\tif elements:" << std::endl;
|
|
file << "\t\t\t\t\t\tlongitude = float(elements[0].firstChild.data)" << std::endl;
|
|
file << "\t\t\t\t\telements = locationNode[0].getElementsByTagName('Altitude')" << std::endl;
|
|
file << "\t\t\t\t\tif elements:" << std::endl;
|
|
file << "\t\t\t\t\t\taltitude = float(elements[0].firstChild.data)" << std::endl;
|
|
file << "\t\t\theading = 0" << std::endl;
|
|
file << "\t\t\telements = doc2.getElementsByTagName('Heading')" << std::endl;
|
|
file << "\t\t\tif len(elements):" << std::endl;
|
|
file << "\t\t\t\theading = float(elements[0].firstChild.data)" << std::endl;
|
|
file << "" << std::endl;
|
|
file << "\t\texcept Exception:" << std::endl;
|
|
file << "\t\t\tprint('### Error encountered while processing the EntityState ###')" << std::endl;
|
|
file << "\t\t\tisGoodMessage = False" << std::endl;
|
|
file << "\t\texcept:" << std::endl;
|
|
file << "\t\t\tprint('### Error encountered while processing the EntityState ###Unexpected error:', sys.exc_info()[0])" << std::endl;
|
|
file << "\t\t\tisGoodMessage = False" << std::endl;
|
|
file << "\tif isGoodMessage:" << std::endl;
|
|
file << "\t\treturn [entityId,latitude,longitude,altitude,heading]" << std::endl;
|
|
file << "" << std::endl;
|
|
file << "\treturn entityState" << std::endl;
|
|
file << "" << std::endl;
|
|
file << "def main():" << std::endl;
|
|
file << "\tvehicleStateArray = []" << std::endl;
|
|
file << "\tfor entityStateFile in glob.glob('EnityState_Id*'):" << std::endl;
|
|
file << "\t\tprint('loading [' + entityStateFile + ']')" << std::endl;
|
|
file << "\t\tvehicleStateArray.append(ProcessEntityStateFile(entityStateFile))" << std::endl;
|
|
file << "\tvehicleStatesPd = pd.DataFrame(data = vehicleStateArray,columns=['vehicleID','latitude','longitude','altitude','heading'])" << std::endl;
|
|
file << "\tprint('saving [VehicleStates.pkl]')" << std::endl;
|
|
file << "\tvehicleStatesPd.to_pickle('VehicleStates.pkl')" << std::endl;
|
|
file << "" << std::endl;
|
|
file << "if __name__ == '__main__':" << std::endl;
|
|
file << " main()" << std::endl;
|