2017-05-12 7 views
0

Ich habe CSV-Daten mit Breiten- und Längengrad. Ich möchte eine "Heatmap" erstellen, bei der einige Ortsmarken bestimmte Farben haben, die auf Werten basieren, die jedem lat + long Punkt im CSV entsprechen.Erstellen einer kml-Datei für Google Earth - Wärme-/Farbkarte erforderlich

import simplekml 
import csv 


kml = simplekml.Kml() 
kml.document.name = "Test" 

with open('final.csv', 'rb') as f: 
    reader = csv.reader(f) 
    first_row = reader.next() # removes csv header string 

    long = col[1] 
    lat = col[2] 
    for col in reader: 
     pnt = kml.newpoint() 
     pnt.name = 'test-name' 

     pnt.coords = [(long, lat, 10000)] 
     pnt.description = col[0]   # timestamp data 
     pnt.style.labelstyle.color = 'ff0000ff' 




kml.save("test.kml") 

Dieses Skript erstellt eine KML-Datei, die die Datenpunkte mit Google Earth Inspektion präsentiert, aber ich mag eine Art von grafischer Eingabe auch.

Es scheint nicht wie simplekml Paket unterstützt solche Dinge .. Haben Sie einen Ratschlag, was Python-Paket ist am besten, um eine "Heatmap" oder etwas in diese Richtung? Oder sogar ich kann KML-Elemente direkt in das Skript einfügen, aber die Dokumentation scheint für die von mir benötigten Lösungen eher begrenzt zu sein.

Dank

Antwort

0

Klingt wie Sie suchen eine „thematische Karte“, kein „Heatmap“ zu erstellen.

Sieht aus, als ob Sie pnt.style.labelstyle.color = ... verwenden, um Farben hinzuzufügen. LabelStyle bezieht sich auf die Textbeschriftungen, die mit Symbolen verknüpft sind, nicht auf die Symbole selbst. Wahrscheinlich möchten Sie anhand Ihrer Attributwerte auf andersfarbige Symbole verweisen. Sie können dies mit: pnt.style.iconstyle.icon.href = ... tun. Geben Sie entweder ein farbiges Symbolbild an oder verwenden Sie ein weißes Bild und wenden Sie eine Farbe mit style.iconstyle.color = ... an.

Best Practice für KML wäre, mehrere freigegebene Stile einzurichten, einen für jede Symbolfarbe, und dann den entsprechenden Stil auf jeden Punkt mit pnt.style = ... anzuwenden.

Implementierungsdetails sind in der simplekml documentation.