windows下python安装basemap,画世界地图以及根据经纬度标点

环境安装

1、确定自己的python环境安装完毕且已配置好环境变量

2、安装geos:pip install geos

3、直接使用pip3 install pyproj 可能会安装错误,所以需要自己去下载.whl文件网址https://www.lfd.uci.edu/~gohlke/pythonlibs/
(可以直接ctrl+f搜索)
依次下载:
(1)pyproj-版本号-
(2)basemap-版本号-
(一定要特别注意自己的是什么位计算机,什么版本的python,我第一次就是下了3.9的python文件,然后安装出错)

4、接下来就将下载好的.whl文件放到python安装目录下的scripts文件夹下(两个都是)
在这里插入图片描述

5、打开cmd进入python安装目录的script文件夹下,然后开始安装
先安装pyproj:
pip3 install 文件名
再安装basemap
pip3 install 文件名

6、看到说successfully就安装成功了

使用basemap画世界地图

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

fig = plt.figure(figsize=(12, 8), facecolor='cornsilk')#窗口大小
m = Basemap()  # 初始化 map

def drawMap():
    #绘制地图
    m.drawcoastlines()    # 绘制海岸线
    m.drawcountries()    # 绘制国界线

    # 填充陆地、胡泊、海洋的颜色
    m.fillcontinents(color='darkolivegreen',    # 陆地颜色
                    lake_color='aqua',    # 湖泊颜色

                     )
    m.drawmapboundary(fill_color='aqua')    # 填充海洋

def set_lonlat(_m, lon_list, lat_list, lon_labels, lat_labels, lonlat_size):
    """
    为Basemap实例画带tick标的经纬度注释
    自带画水平线和竖直线标注方式不带刻度标
    当然函数仍调用了自带标注函数只是在此基础上加了tick标
    :param _m: Basemap实例
    :param lon_list: 经度 详见Basemap.drawmeridians函数介绍
    :param lat_list: 纬度 同上
    :param lon_labels: 标注位置 [左, 右, 上, 下] bool值 默认只标注左上待完善 可使用twinx和twiny实现
    :param lat_labels: 同上
    :param lonlat_size: 字体大小
    :return:
    """
    lon_dict = _m.drawmeridians(lon_list, labels=lon_labels, color='grey', fontsize=lonlat_size)
    lat_dict = _m.drawparallels(lat_list, labels=lat_labels, color='grey', fontsize=lonlat_size)
    lon_list = []
    lat_list = []
    for lon_key in lon_dict.keys():
        try:
            lon_list.append(lon_dict[lon_key][1][0].get_position()[0])
        except:
            continue

    for lat_key in lat_dict.keys():
        try:
            lat_list.append(lat_dict[lat_key][1][0].get_position()[1])
        except:
            continue
    ax = plt.gca()
    ax.xaxis.tick_top()
    ax.set_yticks(lat_list)
    ax.set_xticks(lon_list)
    ax.tick_params(labelcolor='none')

drawMap()
set_lonlat(m, range(0, 360, 30), range(-90, 90, 30), [0, 0, 1, 0], [1, 0, 0, 0], 12)

#你也可以根据经纬度标注点
m.plot(54.23, 65.16, marker='o', color="r")

plt.show()
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值