【问题标题】:Converting CSV to KML for just lat and lon将 CSV 转换为 KML 仅用于 lat 和 lon
【发布时间】:2021-08-02 12:13:38
【问题描述】:

下面是我用来将我的 CSV 文件转换为 KML 到 Google 地球专业版的代码;但是,当我上传到文件时,Google 地球专业版继续崩溃。经纬度坐标的数量太大,Google 地球专业版无法处理?我在这段代码中遗漏了什么吗?我有一些 CSV 文件,坐标超过 100,000 个。试图避免这个错误....

import simplekml
import pandas
df=pandas.read_csv("FILE NAME.CSV")

kml=simplekml.Kml()

for lon,lat in zip(df["Longitude"],df["Latitude"]):
    kml.newpoint(coords=[(lon,lat)])

kml.save("OUTPUT.KML")

【问题讨论】:

  • 您可以通过在for 循环中添加break 来确定您的代码是否正确但数量太大。然后它应该只导出一个点。如果读取正确,您可以尝试导出较小批量的文件并检查这些是否有效。
  • 这不是错误,它是一条信息性消息,看起来很清楚
  • @MarkTolonen 公平点......有没有办法解决它?我问原因,如果我单击导入所有 Google 地球专业版会崩溃。数据量太大,无法处理
  • 可能不会。如果 2500 开始导致性能问题,您期望超过该限制 400 倍?
  • @Mark Tolonen 说得通。我刚刚用 500 分对其进行了测试,它运行良好,所以这肯定是一个性能问题。因此,如果我编写一个代码以在每 2000 个坐标处导出一个 KML 文件,理论上它应该可以工作。有点像导出线向量。有点……

标签: python kml google-earth simplekml


【解决方案1】:

创建具有超过 100,000 个地标的 KML 可能会在 GE Pro 中出现性能问题。在您的情况下,您的 KML 文件正在使 GE Pro 崩溃。

将 CSV 文件直接导入 GE Pro 是有限的,但自定义在 Python 中生成的 KML 可为您提供更多选项,帮助您根据需要定制输出。

KML 提供了使用时间、区域或高度级别过滤来控制显示哪些要素或子 KML 文件的机制。

您需要根据数据的特征考虑什么是有意义的。如果您的数据在地理上分散,并且您可以将数据分类到不同的地理子区域,那么每个子区域都可以写入单独的 KML 文件,并且主 KML 文件可以具有到每个子 kml 文件的网络链接但首次加载时不可见。

可以使用以下技术扩展大型 KML 文件:

  • 网络链接
  • 地区

SimpleKML 支持创建 NetworkLinks 和 Regions。您可以使用shapely 模块来确定一个点是否在矩形或多边形内,以将这些点合并到适当的子区域。

网络链接

NetworkLink 允许 KML 文件包含另一个 KML 文件。您可以在根 KML 文件中拥有任何级别的网络链接,从平面(具有网络链接的单个 KML 文件到 KMZ 中的所有其他 KML 文件)到深度(每个 KML 文件都有一个 NetworkLink 到其他 KML 文件,每个文件都有自己的 NetworkLink) .取决于您需要如何构建 KML 以及数据有多大。

关键是 Google 地球选择第一个 KML 作为根 KML 文件,因此您必须确保第一个文件(通常命名为 doc.kml)是通过网络链接加载其他 KML 文件的根 KML 文件。一个常见的结构是在“kml”子文件夹中包含其他 KML 文件,以便在将它们打包到 KMZ 文件中时将其与根 KML 文件区分开来。

有效使用网络链接的教程
https://www.google.com/earth/outreach/learn/using-network-links-effectively/

地区

Region 会影响地标几何图形或叠加层图像的可见性。区域与 NetworkLink 相结合,可以访问 KML 文件中的大量数据。一个区域可以选择有一个最小和最大高度,用于高度级别过滤。

请参阅有关区域的文档,"Smart" Loading of Region-Based Network LinksRegions in KML的教程。

区域是 KML 的一项更高级的功能,因此建议您首先查看 NetworkLinks 并创建多个 kml 文件,如果有一种合理的方式将您的数据分成组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-14
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    相关资源
    最近更新 更多