使用Python从KML文件中提取船舶位置?

时间:2014-07-03 10:44:52

标签: python kml

我想知道是否有可能从http://aprs.fi/提供的KML文件(相对于某个位置)将每艘船的经度和纬度等船舶数据提取到CSV文件中Python脚本?

KML文件

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<NetworkLink>
    <name>APRS: All targets in view</name>
    <open>1</open>
    <Snippet maxLines="2">43°13.00&apos; N 27°55.00&apos; E - Real-time APRS network tracking of all APRS targets in the world</Snippet>
    <description><![CDATA[<p>Initial view: 43°13.00' N 27°55.00' E</p>
        <p>Google Earth application by <a href='http://aprs.fi/'>aprs.fi</a></p>]]>                                        </description>
<LookAt>
    <longitude>-0.3226803743656781</longitude>
    <latitude>53.60036183734124</latitude>
    <altitude>0</altitude>
    <heading>-11.4292926524615</heading>
    <tilt>1.734758838337611</tilt>
    <range>67610.58111833796</range>
    <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<Link>
    <href>http://aprs.fi/aprsupdate.kml?units=metric&amp;units_temp=C&amp;</href>
    <refreshMode>onExpire</refreshMode>
    <viewRefreshMode>onStop</viewRefreshMode>
    <viewRefreshTime>1</viewRefreshTime>
</Link>
</NetworkLink>
</kml>

上述网站提供的KML文件集成到Google地球中,并显示每个船舶在世界各地的实时订阅源。

我最终想要做的是每次运行Python脚本时,它都会将每个船舶在这个KML文件中的特定位置的坐标提取到CSV文件中。

Python脚本每60秒运行一次,因此会更新CSV文件中的坐标。

如果有人能指出我正确的方向,那么我将永远感激不尽。谢谢!

1 个答案:

答案 0 :(得分:0)

KMLXML文件,因此您可以使用模块lxmlBeautifulSoupxml.dom.minidomcsv来保存它。要从服务器读取文件,您可以使用requestspyCurl

从服务器刮取数据非常受欢迎,因此还有Scrapy框架。

如果你使用Linux,你可以使用cron / cronjob每60秒运行一次脚本。