import csv import simplekml # Create a new KML document kml = simplekml.Kml() # Open the CSV file and read its contents with open('inputcoords.csv', 'r') as csvfile: reader = csv.reader(csvfile, delimiter=';') next(reader) # Skip the header row # Loop through each device in the CSV file for row in reader: name = row[0] lat_tel = float(row[1]) if row[1] else None lon_tel = float(row[2]) if row[2] else None lat_att = float(row[3]) if row[3] else None lon_att = float(row[4]) if row[4] else None # Ignore devices with "Gateway" in the name if "Gateway" in name or "Camera Trailer" in name: continue # Prefer latitude and longitude from "tel" columns if available lat = lat_tel or lat_att lon = lon_tel or lon_att # If no coordinates are available, print a warning message if not (lat and lon): print(f"No coordinates for device: {name}") continue # Create a new placemark for the device pnt = kml.newpoint(name=name, coords=[(lon, lat)]) # Save the KML document to a file (KMZ file) kml.savekmz("devices_tb.kmz")