May-08-2018, 06:50 PM
(This post was last modified: May-08-2018, 06:50 PM by disruptfwd8.)
Need help finding out why I'm getting an error. Here the data from the CSV file:
olat,olon,dlat,dlon,route
41.48,-81.8,39.96,-75.2,1
36.09,-115.38,42.38,-71.14,2
34,-84.47,42.38,-71.14,3
40.85,-73.91,34.12,-117.71,4
25.7,-80.4,41.31,-72.92,5
42.9,-112.39,41.78,-87.6,6
37.78,-122.24,34.07,-118.44,7
33.59,-112.1,42.37,-71.11,8
36.11,-115.27,42.37,-71.11,9
44.47,-69.29,41.31,-72.92,10
35.69,-108.98,37.41,-122.17,11
13.53,144.88,29.72,-95.42,12
42.31,-88.43,34.02,-118.29,13
35.26,-96.93,35.21,-97.44,14
36.09,-111.13,43.7,-72.27,15
34,-84.47,42.38,-71.14,16
36.11,-115.27,42.37,-71.11,17
38.84,-94.78,37.87,-122.25,18
40.58,-73.95,40.81,-73.95,19
33.61,-84.49,40.81,-73.95,20
olat,olon,dlat,dlon,route
41.48,-81.8,39.96,-75.2,1
36.09,-115.38,42.38,-71.14,2
34,-84.47,42.38,-71.14,3
40.85,-73.91,34.12,-117.71,4
25.7,-80.4,41.31,-72.92,5
42.9,-112.39,41.78,-87.6,6
37.78,-122.24,34.07,-118.44,7
33.59,-112.1,42.37,-71.11,8
36.11,-115.27,42.37,-71.11,9
44.47,-69.29,41.31,-72.92,10
35.69,-108.98,37.41,-122.17,11
13.53,144.88,29.72,-95.42,12
42.31,-88.43,34.02,-118.29,13
35.26,-96.93,35.21,-97.44,14
36.09,-111.13,43.7,-72.27,15
34,-84.47,42.38,-71.14,16
36.11,-115.27,42.37,-71.11,17
38.84,-94.78,37.87,-122.25,18
40.58,-73.95,40.81,-73.95,19
33.61,-84.49,40.81,-73.95,20
# impoprt packages: from geographiclib.geodesic import Geodesic import pandas as pd from lxml import etree as ET # set up kml structure: kml = ET.Element('kml') document = ET.SubElement(kml, 'Document') # read data df = pd.read_csv('datapoints.csv') # loop through routes, calculate waypoints: for x in (df.index): olat = df.iloc[x,1] olon = df.iloc[x,2] dlat = df.iloc[x,3] dlon = df.iloc[x,4] route = df.iloc[x,5] p = Geodesic.WGS84.Inverse(olat, olon, dlat, dlon) l = Geodesic.WGS84.Line(p['lat1'], p['lon1'], p['azi1']) if (p['s12'] >= 1000000): num = int(p['s12'] / 100000) # number of waypoints depending on length else: num = 10 output = '' for i in range(num + 1): b = l.Position(i * p['s12'] / num, Geodesic.STANDARD | Geodesic.LONG_UNROLL) output += repr(b['lon2']) + "," + repr(b['lat2']) + ",0 " # print(str(x)+"/"+str(len(df))) #progess counter # inner part of kml file: placemark = ET.SubElement(document, 'Placemark') name = ET.SubElement(placemark, 'name') name.text = route description = ET.SubElement(placemark, 'description') description.text = 'route ID: ' + str(x) + '; distance: ' + str(p['s12']) linestring = ET.SubElement(placemark, 'LineString') coordinates = ET.SubElement(linestring, 'coordinates') coordinates.text = output # complete kml file and save: tree = ET.ElementTree(kml) tree.write('wfdistance.kml', pretty_print=True, xml_declaration=True, encoding="utf-8")
Error:line 20, in <module>
route = df.iloc[x,5]
Error:Unresolved attribute reference 'WGS84' for class 'Geodesic'
Please help.