经纬度绘图_Python气象绘图教程(七)——兰博托投影
时间: 2023-07-31 22:14:05 浏览: 247
兰博托投影是一种常用的地图投影方式,它的特点是保留面积比例,因此适用于绘制地区分布图。本文将介绍如何使用 Python 绘制兰博托投影地图。
首先,需要导入以下模块:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
```
然后,设置绘图区域和投影方式:
```python
plt.figure(figsize=(8, 8))
m = Basemap(projection='lcc', resolution='h',
lat_0=37.5, lon_0=105,
width=1.2E7, height=1.2E7)
m.drawcoastlines(linewidth=0.5)
m.drawcountries(linewidth=0.5)
m.drawstates(linewidth=0.5)
```
其中,`projection` 参数指定投影方式,这里选择了兰博托投影(`'lcc'`),`resolution` 参数指定地图精度,`lat_0` 和 `lon_0` 参数指定地图中心位置,`width` 和 `height` 参数指定地图的宽度和高度。
接着,可以绘制地图上的数据。例如,可以使用 `scatter` 函数绘制经纬度坐标点:
```python
lons = [110.5, 112, 114, 116, 118]
lats = [36, 38, 40, 42, 44]
x, y = m(lons, lats)
m.scatter(x, y, marker='o', color='r', s=50)
```
其中,`lons` 和 `lats` 分别是经度和纬度的列表,`m` 对象的 `__call__` 方法可以将经纬度坐标转换为兰博托投影坐标。
最后,可以使用 `plt.show()` 函数显示地图:
```python
plt.show()
```
完整代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
plt.figure(figsize=(8, 8))
m = Basemap(projection='lcc', resolution='h',
lat_0=37.5, lon_0=105,
width=1.2E7, height=1.2E7)
m.drawcoastlines(linewidth=0.5)
m.drawcountries(linewidth=0.5)
m.drawstates(linewidth=0.5)
lons = [110.5, 112, 114, 116, 118]
lats = [36, 38, 40, 42, 44]
x, y = m(lons, lats)
m.scatter(x, y, marker='o', color='r', s=50)
plt.show()
```
运行代码,即可得到兰博托投影地图:
![image.png](attachment:image.png)
阅读全文