cartopy地图之圆柱投影

发布时间:2024年01月24日

简介

cartopy是英国气象局开发的一款用于地理空间数据处理的python库,支持创建并发布高质量地图,随着basemap的停止维护,cartopy已成Python中地理绘图的首选模块,示例如下

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines()
plt.show()

在这里插入图片描述

圆柱投影

PlateCarree是可利投影,圆柱投影的原理是将地物投影到圆柱面上再展开,cartopy中支持的圆柱投影如下表所示

圆柱投影类型参数备注
PlateCarree L c , g L_c, g Lc?,g将地物投影到圆柱面上再展开,常用来绘制世界地图
Lambert
Cylindrical
兰伯特等积投影 L c L_c Lc?也是绘制世界地图的一种常用方案
Miller米勒投影 L c L_c Lc?
Mercator墨卡托投影较多正轴等角割圆柱投影。经纬线为相互垂直的平行直线,图上无角度变形,但面积变形较大。该投影常用于制作航海图或赤道附近区域的地图。
Transverse
Mercator
横轴墨卡托投影较多对标准墨卡托投影的一种变换。
UTMUTM投影制图中最常用的一种投影方法之一。

参数说明:

  • L c L_c Lc? central_longitude:中央经线,默认为 0
  • g g g globe:椭球定义,默认为 WGS84。
  • min_latitude:显示的最小纬线(最南端)
  • max_latitude:显示的最大纬线(最北端)
  • latitude_true_scale:长度不变形的纬线
  • central_latitude:中央纬线
  • false_easting:X 轴坐标(东方向)的偏移量,以米为单位;
  • false_northing:Y 轴坐标(北方向)的偏移量,以米为单位;
  • scale_factor:中央经线处的长度变形因子
  • zone:所绘地区的 6° 经度区间带号
  • southern_hemisphere:投影带是否在南半球
  • globe:椭球定义,默认为 WGS84
Mercator(central_longitude=0.0, min_latitude=-80.0, max_latitude=84.0,
    latitude_true_scale=0.0, globe=None)
TransverseMercator(central_longitude=0.0, central_latitude=0.0,
    false_easting=0.0, false_northing=0.0, scale_factor=1.0, globe=None)
UTM(zone, southern_hemisphere=False, globe=None)

绘图

下面使用默认参数,对这六种圆柱投影进行绘制

projDct = {
    "Plate Carree": ccrs.PlateCarree(),
    "Lambert Cylindrical": ccrs.LambertCylindrical(),
    "Miller": ccrs.Miller(),
    "Mercator": ccrs.Mercator(),
    "TM" : ccrs.TransverseMercator(),
    "UTM" : ccrs.UTM(1)
}

fig = plt.figure()
for i,key in enumerate(projDct,1):
    try:
        ax = fig.add_subplot(2,3,i,projection=projDct[key])
        ax.coastlines()
        plt.title(key)
    except:
        continue

plt.show()

如图所示

在这里插入图片描述

文章来源:https://blog.csdn.net/m0_37816922/article/details/135671086
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。