-
Notifications
You must be signed in to change notification settings - Fork 1
/
antweb_to_kml.py
59 lines (51 loc) · 1.53 KB
/
antweb_to_kml.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#! /usr/bin/env python3
# antweb_to_kml.py by Your Name
# this script converts data from the example file
# 'ants.txt' to a kml format.
# create file object for input
in_file = open("ants.txt")
# read in file contents as list of strings (lines)
in_file_lines = in_file.readlines()
# create file object for ouput
out_file = open("ants.kml", "w")
# define header lines
header = """<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>"""
# write header to ouput
out_file.write(header)
# loop over each line of input
for line in in_file_lines:
# split line by tabs
split_line = line.split("\t")
#print(len(split_line))
# check if line has all the elements
# and define variables needed for placemark
if len(split_line) == 34:
specimen_code = split_line[0]
genus = split_line[2]
species = split_line[3]
latitude = split_line[27]
longitude = split_line[28]
# define and format the placemark string
placemark = """
<Placemark>
<name>{}</name>
<description>{} {}</description>
<Point>
<coordinates>{},{},0</coordinates>
</Point>
</Placemark>""".format(specimen_code, genus, species, longitude, latitude)
# print the placemark string
#print(placemark)
# write placemark from each line to output
out_file.write(placemark)
# define closing lines
ending = """</Document>
</kml>"""
# write closing lines to output
out_file.write(ending)
# close input file
in_file.close()
# close output file
out_file.close()