prouty-APRSISCE32/extractKMZPoints.py

36 lines
1.1 KiB
Python

#!/usr/bin/env python3
from lxml import etree
from lxml.builder import E
from zipfile import ZipFile
def makeXMLObject(name, description, coordinates):
return E.Object(
{'name': name},
E.Group('SAGs'),
E.Comment(description),
E.Table('/'),
E.Symbol('w'),
E.Latitude(coordinates.split(',')[1]),
E.Longitude(coordinates.split(',')[0]),
E.Interval('10'),
E.Enabled('1'),
E.ISEnabled('1'),
E.RFEnabled('1'),
E.RFPath('WIDE1-1,WIDE2-1'),
)
with ZipFile('2018 VT 50.kmz') as f:
xml = etree.fromstring(f.read('doc.kml'))
for placemark in xml.findall('.//{*}Placemark'):
point = placemark.find('{*}Point')
if point is not None:
name = placemark.find('{*}name').text.strip()
description = placemark.find('{*}description')
description = description.text.strip() if description is not None else ''
coordinates = point.find('{*}coordinates').text.strip()
print(etree.tostring(makeXMLObject(name, description, coordinates),
pretty_print=True, encoding='unicode'))