-1

下面是我用来将我的 CSV 文件转换为 KML 到 Google Earth Pro 中的代码;但是,当我上传到文件时,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")
4

1 回答 1

0

在 GE Pro 中创建具有超过 100,000 个地标的 KML 可能会出现性能问题。在您的情况下,您的 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/

地区

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

请参阅区域文档、基于区域的网络链接的“智能”加载部分和KML中的区域教程。

区域是 KML 的一项更高级的功能,因此如果存在将数据拆分为组的逻辑方法,建议首先查看 NetworkLinks 并创建多个 kml 文件。

于 2021-08-02T19:45:48.437 回答