Génération d'un fichier KML heatmap de jeu de données de [lat, lon, la densité]
Je suis à la recherche de construire un statique KML (Google Earth balisage) fichier qui affiche une heatmap de style de rendu de quelques donné des ensembles de données sous la forme de [lat, lon, la densité] n-uplets.
Un très simple jeu de données que j'ai est pour la densité de population.
Mes besoins sont:
- Doit être en mesure de les alimenter en données de lat, lon
- Doit être capable de spécifier la densité des données de lat, lon
- Doivent exporter au format KML
Les exigences linguistiques agnostique pour ce projet que je la génération de ces fichiers hors connexion dans le but de construire le fichier KML utilisé ailleurs.
J'ai regardé quelques projets, notamment heatmap.py, qui est un port de gheat en Python avec KML à l'exportation. J'ai frappé un mur de briques dans le sens que les projets que j'ai trouvé à ce jour reposent toutes sur la construction de la matrice de classification de la densité de [lat, lon] points de la fed dans l'algorithme.
Si je suis absent une façon évidente d'adapter mon jeu de données pour nourrir tout simplement de la [lat, lon] n-uplets, mais le réglage de la façon dont je les nourrir à l'aide de la densité des valeurs que j'ai, j'aimerais savoir!
OriginalL'auteur Will Croft | 2010-03-05
Vous devez vous connecter pour publier un commentaire.
Hey Va, heatmap.py est moi. Votre demande est assez un et est sur ma liste de choses à régler. Je ne suis pas tout à fait sûr, mais comment faire dans une façon générale; dans heatmap.py le langage, il serait simple d'avoir un par point
dotsize
au lieu d'un mondial dotsize comme il est maintenant, mais je ne suis pas sûr que ce sera l'adresse de vrai besoin. Je vise un été version 2010, mais vous pourriez probablement faire de ce mod vous-même.Vous pouvez essayer la recherche de Densité Du Noyau De L'Estimateur outils; c'est ce que les statisticiens appellent cartes de chaleur. R a quelques bons outils intégrés que vous pouvez utiliser qui peut satisfaire votre besoin plus rapidement.
bonne chance!
J'ai trouvé que le Zoom 0-9 doit avoir la parole dotsize, Zoom de 15 à 19 ans ont de plafond, et d'échelle entre les deux. J'ai trouvé au 0-9, seulement 1 pixel points sont viables et 15 ans à 19 ans, il n'est pas logique d'être plus 64px. Voyez-vous un moyen d'intégrer cette gamme dans votre KML méthodologie?
OriginalL'auteur J.J.
Je pense, une façon de faire cela est de créer une (grande) liste de tuples avec chaque point répète en fonction de la densité à ce point. Un point avec une haute densité est représentée par beaucoup de points sur le dessus les uns des autres, tandis que d'un point avec une faible densité a quelques points. Ainsi, au lieu de:
[(120.7, 82.5, 2), (130.6, 81.5, 1)]
vous utilisez[(120.7, 82.5), (120.7, 82.5), (130.6, 81.5)]
(assez terne dataset).Un problème possible est que votre densités peuvent bien être les chars, pas de nombres entiers, de sorte que vous devrait à banaliser et à arrondir les données. Une manière de faire de la conversion est quelque chose comme ceci:
(ce qui n'est pas très pythonic, mais semble fonctionner pour le simple cas de test). Ce sous-programme doit convertir vos données en une forme qui est accepté par heatmap.py. Avec un peu d'effort je pense que la sous-routine peut être réduit à deux lignes.
OriginalL'auteur Andrew Walker
J'ai mis à jour le
heatmap.py
script de sorte que vous pouvez spécifier une densité de chaque point. Je téléchargé mes modifications sur mon blog. Vous ne savez pas si il va faire exactement ce que vous voulez bien!Cheers,
Alex
OriginalL'auteur Alex Little