在地图上标绘车站

Posted

技术标签:

【中文标题】在地图上标绘车站【英文标题】:plotting stations on map 【发布时间】:2021-12-26 16:59:03 【问题描述】:

我有三个名为A, B, C 的电台。我想使用 matplotlib 底图将它们绘制在地图上。

station A: latitude=17.8 longitude=74.48
station B: latitude=-25.02 longitude=25.60
station C: latitude=44.58 longitude=-123.30

由于我是 python 和 matplotlib 的新手,我很困惑我应该如何绘制它。

我试过代码:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

plt.figure(figsize=(8, 8))
m = Basemap(projection='ortho', resolution=None, lat_0=50, lon_0=-100)
m.bluemarble(scale=0.5);

但它没有绘制我的任何电台。所以我希望专家可以帮助我。提前致谢。

【问题讨论】:

当然,因为您的代码中没有命令来绘制站点。您只绘制“原始”地图而没有任何其他对象。您是否尝试过使用PyGMT 来绘制您的电台?做你想做的事很容易。 noygmr @mgrund 你能推荐一个在 pygmt 上相同的代码 【参考方案1】:

这是一个基于您的数据的示例,您可能会使用它:

import pygmt
import pandas as pd

# create df with station information
data = 'lon':[74.48, 25.60, -123.30],
        'lat':[17.8, -25.02, 44.58],
        'station':['A', 'B', 'C']

df = pd.DataFrame(data)

fig = pygmt.Figure()
pygmt.config(MAP_GRID_PEN = '0.25p,gray')

fig.grdimage("@earth_day_10m", region="g", projection="G130/50/12c", frame="g")
fig.plot(x = df.lon, y = df.lat, style = "t1c", color = "red3", pen = "1p,white")
fig.show()

用户指南和gallery examples 中的教程是第一次使用 PyGMT 的一个很好的起点!

【讨论】:

先生,为什么另一个电台不可见?是否需要延长纬度,我需要在全球地图中用倒三角形显示所有站点 看看你的坐标。使用正交投影(就像您在示例代码中选择的那样)不允许同时显示所有三个位置,这仅仅是因为地球的球形形状。例如。尝试projection="Cyl_stere/30/-20/12c",您将看到所有三个位置,但是,基于另一个地图投影。可以使用style = "i1c" 生成倒三角形

以上是关于在地图上标绘车站的主要内容,如果未能解决你的问题,请参考以下文章

怎样在地图上标注自己的店铺?

如何在百度地图上标注多个地点

怎样在高德地图上标记位置?

在地图上标记位置名称?

怎样在高德地图上标记自己公司的位置?

如何在百度地图上标注很多个点