Basemap()函数参数详解

整理自官方文档:https://matplotlib.org/basemap/api/basemap_api.html#mpl_toolkits.basemap.Basemap

  • Basemap() 的用途:我们最开始画静态地图的数据可视化,总得先有个地图吧,所以basemap()就是用于最开始设定一个地图用的,可以在该函数中设置地图投影方式,海岸线等等。
  • 参数列表:
mpl_toolkits.basemap.Basemap(
llcrnrlon=None, llcrnrlat=None, 
urcrnrlon=None, urcrnrlat=None, 
llcrnrx=None, llcrnry=None,
urcrnrx=None, urcrnry=None,
width=None, height=None, 
  projection='cyl', resolution='c',
   area_thresh=None, 
   rsphere=6370997.0, 
   ellps=None, lat_ts=None, 
   lat_1=None, lat_2=None, 
   lat_0=None, lon_0=None, 
   lon_1=None, lon_2=None, 
   o_lon_p=None, o_lat_p=None, 
   k_0=None, no_rot=False, 
   suppress_ticks=True, 
   satellite_height=35786000,
    boundinglat=None, 
    fix_aspect=True, anchor='C', 
    celestial=False, 
    round=False, epsg=None, ax=None)
  • 地球从不同的角度看,就有不同的画面,于是就有如下这么多种可以选择的投影方式:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 投影方式指定方法有两种:(我给出了英文和翻译,英文有助于理解这个关键词为什么是这样一串字母)
  • 第一种指定方法,用这四个:

  • llcrnrlon:longitude of lower left hand corner of the desired map domain (degrees).所需映射域左下角的经度(度)。

  • llcrnrlat:latitude of lower left hand corner of the desired map domain (degrees).所需映射域左下角的纬度(度)。

  • urcrnrlon:longitude of upper right hand corner of the desired map domain (degrees).所需映射域右上角的经度(度)。

  • urcrnrlat: latitude of upper right hand corner of the desired map domain (degrees).所需映射域右上角的纬度(度)。

  • 第二种指定方法,用这四个:

  • width: 投影坐标中所需地图域的宽度(米)。

  • height:期望地图域在投影坐标中的高度(米)。

  • lon_0:所需映射域的中心(以度为单位)。

  • lat_0:所需映射域的中心(以度为单位)。


  • 对于sinu、moll、hammer、npstere、spstere、nplaea、splaea、npaeqd、spaeqd、robin、eck4、kav7、mbtfpq, llcrnrlon、llcrnrlat、urcrnrlon、urcrnrlat、width和height的值将被忽略(因为它们要么在内部计算,要么总是绘制整个地球)。
  • 对于圆柱形投影(cyl, merc, mill, cea和gall),默认是使用llcrnrlon=-180,llcrnrlat=-90, urcrnrlon=180和urcrnrlat=90)。对于除ortho、geos和nsper之外的所有其他投影,角的纬度/经度值或宽度和高度必须由用户指定。
  • 对于ortho, geos和nsper,可以指定角的纬度/经度值,或者在全局投影(x=0,y=0在全局投影中心)的坐标系中指定角的x/y值(llcrnrx,llcrnry,urcrnrx,urcrnry)。如果没有指定角,则绘制整个球体。
  • 对于rotpole,未旋转球体上各角的纬度/经度值可以提供为llcrnrlon,llcrnrlat,urcrnrlon,urcrnrlat,或旋转球体上各角的纬度/经度值可以提供为llcrnrx,llcrnry,urcrnrx,urcrnry。

  • 其他参数详解:
  • resolution:数据库使用的边界分辨率。可以是c(粗),l(低),i(中),h(高),f(全)或无。如果为None,则不会读取边界数据,数据集之间的分辨率会下降大约80%。高分辨率的数据集绘制起来要慢得多。海岸线数据来自GSHHS。来自Generic Mapping Tools的州、国家和河流数据集。
  • area_thresh:海岸线或湖泊的面积小于平方公里的面积将不会被绘制出来。默认分辨率为10000,1000,100,10,1对应 c, l, i, h, f。
  • rsphere: 用于定义地图投影的球体半径(默认为6370997米,接近地球的算术平均半径)。如果给出一个序列,前两个元素解释为椭球的长轴和短轴的半径。注:有时椭球是由长轴和反扁平化参数(if)来指定的。小轴(b)可由长轴(a)和逆变展平参数(if = a/(a-b))计算得到。
  • ellps: 描述椭球体(’ GRS80 ‘或’ WGS84 ',例如)的字符串。如果同时给出了rsphere和ellps,则忽略rsphere。默认None。(See pyproj.pj_ellps for allowed values.)
  • suppress_ticks: 禁止在地图投影坐标中自动绘制轴线刻度和标签。默认为True,因此可以改为标记平行和子午线。如果要求进行平行或经线标记(使用drawparallels和drawmeridia方法),即使suppress_ticks=False,自动刻度标记也会被抑制。
    如果您希望使用自己的自定义刻度格式化器,或者希望让matplotlib使用地图投影坐标以米为单位标记坐标轴,则suppress_ticks=False非常有用。
  • fix_aspect: 修正plot的宽高比,以匹配地图投影区域的宽高比(默认为True)。
  • anchor:确定如何在轴矩形中放置map(传递给axis .set_aspect)。默认值是C,这意味着地图居中。取值范围:C、SW、S、SE、E、NE、N、NW和W。
  • celestial :对经度使用天文惯例(即0以东的负经度)。默认为False。意味着分辨率=没有。
  • ax:设置默认轴实例(默认 None)matplotlib.pyplot.gca()可以用来获取当前的axes实例)。如果你不想导入matplotlib.pyplot,您可以将其设置为一个预定义的轴实例,或者在每个进行绘图的Basemap方法调用中使用ax关键字。在第一种情况下,所有的Basemap方法调用都将绘制到相同的轴实例。在第二种情况下,您可以使用相同的Basemap实例绘制到不同的轴。您还可以在各个方法调用中使用ax关键字来有选择地覆盖默认轴实例。
  • 以下关键字是地图投影参数,默认值均为None。并非所有投影都使用所有参数,有些参数会被忽略。模块变量projection_params是一个字典,它列出了哪些参数适用于哪些投影。(说实话我也没有足够的地理知识看懂,先放在这里)
  • lat_ts: 真尺度纬度。可选的立体,圆柱等面积和墨卡托投影。对于立体投影,默认值是lat_0。墨卡托投影和柱面等距投影的默认值为0。
  • lat_1: 朗伯正形,阿尔伯斯等面积和等距二次曲线的第一标准平行线。斜墨卡托投影中线上两点之一的纬度。如果lat_1不给定,而lat_0为,则对于lambert保形,albers等面积和等距二次曲线,lat_1设为lat_0。
  • lat_2:朗伯正形、albers等面积和等距二次曲线的第二标准平行。斜墨卡托投影中线上两点之一的纬度。对于朗伯正形,albers等面积和等距二次曲线,如果不给出lat_2,则设为lat_1。
  • lon_1: 经度斜墨卡托投影中线上两点之一的经度
  • lon_2:经度斜墨卡托投影中线上两点之一的经度
  • k_0: 自然起源的规模因子(由’ tmerc ', ’ omerc ', ’ stere ‘和’ lcc '使用)。
    只有斜墨卡托才用。如果设置为True,地图投影坐标将不会旋转到真北。默认为False(投影坐标会自动旋转)。
  • lat_0: 中心纬度(y轴原点)-用于所有的投影。
  • lon_0:中央子午线(x轴原点)-所有投影都使用。
  • o_lat_p: latitude of rotated pole (only used by ‘rotpole’)
  • o_lon_p: 旋转磁极的经度(仅由’ rotpole '使用)
  • boundinglat: 极点中心投影的边界纬度(npstere,spstere,nplaea,splaea,npaeqd,spaeqd)。这些投影是以南极或北极为中心的正方形区域。经度lon_0在6点处,纬度圈的边界与地图lon_0处的边缘相切。
    圆形截断极心投影在边界(因此绘图是一个圆而不是一个正方形)。仅适用于npstere,spstere,nplaea,splaea,npaeqd或spaeqd投影。默认False。
  • satellite_height: 卫星赤道以上高度(m) -仅与地球静止和近侧透视(geos或nsper)投影相关。默认的35786公里。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐