Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# get the coordinate string of the first KML coordinate element
coord_str = str(
linestring_doc.getroot().find(".//{http://www.opengis.net/kml/2.2}coordinates")
).strip()
for vertex in coord_str.split(' '):
(lon,lat,alt) = vertex.split(',')
flyto = GX.FlyTo(
GX.duration(2),
GX.flyToMode("smooth"),
KML.Camera(
KML.longitude(lon),
KML.latitude(lat),
KML.altitude(0),
KML.heading(-129.7),
KML.tilt(90.0),
KML.altitudeMode("relativeToGround"),
)
)
tour_doc[gxns+"Tour"].Playlist.append(flyto)
assert Schema('kml22gx.xsd').validate(tour_doc)
print etree.tostring(tour_doc, pretty_print=True)
# output a KML file (named based on the Python script)
outfile = file(__file__.rstrip('.py')+'.kml','w')
outfile.write(etree.tostring(tour_doc, pretty_print=True))
'name': d['properties']['name'][0],
'geo': d['properties']['geo'][0]['value']
}
coords.append(data)
except (IndexError, KeyError):
pass
return coords
if __name__ == '__main__':
parser = get_parser()
args = parser.parse_args()
doc = mf2py.parse(url=args.url)
coords = get_geo(doc)
folder = KML.Folder()
for item in coords[:args.n]:
lat, lon = item['geo'].split('; ')
place_coords = ','.join([lon, lat])
place = KML.Placemark(
KML.name(item['name']),
KML.Point(KML.coordinates(place_coords))
)
folder.append(place)
with open(args.output, 'w') as fout:
xml = etree.tostring(folder, pretty_print=True).decode('utf8')
fout.write(xml)
if mask[i, j]: # add point if it's not marked as masked out
lat = lats[i, j]
lon = lons[i, j]
row = rows[i, j]
col = cols[i, j]
ts = ts_data[:, i, j]
v = vel[i, j]
vc = vel_c[i, j]
vstd = vel_std[i, j]
tcoh = temp_coh[i, j]
# 2.3.1 Create KML icon style element
style = KML.Style(
KML.IconStyle(
KML.color(get_hex_color(vc, colormap, norm)),
KML.scale(0.5),
KML.Icon(KML.href("{}".format(dot_file)))
)
)
# 2.3.2 Create KML point element
point = KML.Point(KML.coordinates("{},{}".format(lon, lat)))
js_data_string = generate_js_datastring(dates, inps.dygraph_file, num_date, ts)
# 2.3.3 Create KML description element
stats_info = get_description_string((lat, lon), (row, col), v, vstd, ts[-1], tcoh=tcoh)
description = KML.description(stats_info, js_data_string)
# 2.3.4 Crate KML Placemark element to hold style, description, and point elements
placemark = KML.Placemark(style, description, point)
for i in range(0, length, step):
for j in range(0, width, step):
if mask[i, j]: # add point if it's not marked as masked out
lat = lats[i, j]
lon = lons[i, j]
row = rows[i, j]
col = cols[i, j]
ts = ts_data[:, i, j]
v = vel[i, j]
vc = vel_c[i, j]
vstd = vel_std[i, j]
tcoh = temp_coh[i, j]
# 2.3.1 Create KML icon style element
style = KML.Style(
KML.IconStyle(
KML.color(get_hex_color(vc, colormap, norm)),
KML.scale(0.5),
KML.Icon(KML.href("{}".format(dot_file)))
)
)
# 2.3.2 Create KML point element
point = KML.Point(KML.coordinates("{},{}".format(lon, lat)))
js_data_string = generate_js_datastring(dates, inps.dygraph_file, num_date, ts)
# 2.3.3 Create KML description element
stats_info = get_description_string((lat, lon), (row, col), v, vstd, ts[-1], tcoh=tcoh)
description = KML.description(stats_info, js_data_string)
# 2.3.4 Crate KML Placemark element to hold style, description, and point elements
#!/usr/bin/env python
'''Generate a KML string that matches the altitudemode example.
References:
http://code.google.com/apis/kml/documentation/kmlreference.html#gxaltitudemode
http://code.google.com/apis/kml/documentation/kmlfiles/altitudemode_reference.kml
'''
from lxml import etree
from pykml.parser import Schema
from pykml.factory import KML_ElementMaker as KML
from pykml.factory import GX_ElementMaker as GX
doc = KML.kml(
KML.Placemark(
KML.name("gx:altitudeMode Example"),
KML.LookAt(
KML.longitude(146.806),
KML.latitude(12.219),
KML.heading(-60),
KML.tilt(70),
KML.range(6300),
GX.altitudeMode("relativeToSeaFloor"),
),
KML.LineString(
KML.extrude(1),
GX.altitudeMode("relativeToSeaFloor"),
KML.coordinates(
"146.825,12.233,400 "
"146.820,12.222,400 "
"146.812,12.212,400 "
"146.796,12.209,400 "
[3,'ffff0000'],
[4,'ff00ff55'],
[5,'ffff00aa'],
[6,'ff00ffff'],
[7,'ff0000ff'],
]
# create a series of Icon Styles
for threshold,color in iconstyles:
doc.append(
KML.Style(
KML.IconStyle(
KML.color(color),
KML.scale(threshold/2),
KML.Icon(
KML.href("http://maps.google.com/mapfiles/kml/shapes/earthquake.png"),
),
KML.hotSpot(x="0.5",y="0",xunits="fraction",yunits="fraction"),
),
balloonstyle,
id="earthquake-style-{threshold}".format(threshold=threshold),
)
)
doc.append(KML.Folder())
# read in a csv file, and create a placemark for each record
url="http://earthquake.usgs.gov/earthquakes/catalogs/eqs7day-M2.5.txt"
fileobject = urllib2.urlopen(url)
for row in csv.DictReader(fileobject):
timestamp = datetime.strptime(row["Datetime"], "%A, %B %d, %Y %H:%M:%S %Z")
pm = KML.Placemark(
[5,'ffff00aa'],
[6,'ff00ffff'],
[7,'ff0000ff'],
]
# create a series of Icon Styles
for threshold,color in iconstyles:
doc.append(
KML.Style(
KML.IconStyle(
KML.color(color),
KML.scale(threshold/2),
KML.Icon(
KML.href("http://maps.google.com/mapfiles/kml/shapes/earthquake.png"),
),
KML.hotSpot(x="0.5",y="0",xunits="fraction",yunits="fraction"),
),
balloonstyle,
id="earthquake-style-{threshold}".format(threshold=threshold),
)
)
doc.append(KML.Folder())
# read in a csv file, and create a placemark for each record
url="http://earthquake.usgs.gov/earthquakes/catalogs/eqs7day-M2.5.txt"
fileobject = urllib2.urlopen(url)
for row in csv.DictReader(fileobject):
timestamp = datetime.strptime(row["Datetime"], "%A, %B %d, %Y %H:%M:%S %Z")
pm = KML.Placemark(
KML.name("Magnitude={0}".format(row['Magnitude'])),
KML.TimeStamp(