【问题标题】:How to make an animated geographic heat map?如何制作动画地理热图?
【发布时间】:2013-03-16 12:05:58
【问题描述】:

我有一个分布在 24 小时内的坐标和时间戳列表。我想创建一个动画热图,它将全天显示该地图。

我试过查看Basemap's example gallery,但代码似乎有点过于复杂,我什至无法想出基本的热图。具体我不明白的是contourf()函数的data参数。

我该怎么做?

PS:示例数据:

[{'date': datetime.datetime(2013, 3, 12, 6, 13, 0), 'loc': (46.448269, 16.363296)},
 {'date': datetime.datetime(2013, 3, 12, 6, 13, 1), 'loc': (37.702152, -120.127964)},
 {'date': datetime.datetime(2013, 3, 12, 6, 13, 1), 'loc': (14.484318, 121.037639)},
 ...]

【问题讨论】:

    标签: python matplotlib matplotlib-basemap


    【解决方案1】:

    data 是您希望轮廓表示的数据。要绘制等高线,您需要将值 z 与地图上的每个 (x, y) 点相关联。 data 是 z。例如,如果您想制作温度等值线图,data 就是温度。

    鉴于您的样本数据,我不明白您要绘制什么。您有时间戳和位置,但没有与这些值关联的数据。仅用它来绘制轮廓是没有意义的(除非您每个位置只有一个时间戳,并且您想绘制一个以时间为 z 值的单个静态地图)。您不能只拥有“全天的动画等高线图”,您需要全天拥有某物(即其他数量)的动画等高线图。您希望地图上显示的值代表什么?你的因变量是什么?

    如果您希望变量是“这些坐标处的数据点数”,那么您应该首先计算它。也就是说,按坐标/时间对数据进行分组,并计算每个地点/时间的数据点数。你想要一个类似的表:

    X    Y   Time   Points
    -10  2   10:30  4
    -10  2   11:00  10
    4    -10 10:30  6
    4    -10 11:00  8
    

    然后您可以生成一系列等高线图,其中您的data 变量取自“点”列。我建议您查看 pandas 库,了解切片和聚合数据的便捷方法(例如,按坐标和/或时间分组)。

    另一种可能性是使用here 描述的技术。

    【讨论】:

    【解决方案2】:

    按照文档的建议,请尝试阅读matplotlib.pyplot.contourf 的说明以获取有关数据参数的详细信息。代码看起来很复杂,因为它正在从网络加载地理数据。并绘制大陆、海洋和经线。

    我对Basemap的使用有点生疏,但核心函数调用(给出页面中的示例)是:

    # create the map, i.e. the plot surface as a map projection given
    # the type of projection you need and the point you want as center of the map
    map = Basemap(projection='ortho', lat_0=45, lon_0=-100, resolution='l')
    
    # draw the continents lines
    map.drawcountries(linewidth=0.25)
    
    # draw the contour plot
    cs = map.contour(x, y, data, 15, linewidths=1.5)
    

    我想这再简单不过了。如果您需要更详细的解决方案,请分享您的问题的详细信息、您拥有的数据结构以及您尝试过的一些代码。

    【讨论】:

    • 是的,我已经有了类似的东西,但我仍然不知道在 data 中放什么,因为文档不是特别明确。有关示例数据,请参阅我的编辑。
    • 您对此有何看法?你找到解决办法了吗?
    猜你喜欢
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    相关资源
    最近更新 更多