任何使用 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)
Basemap构造器有很多参数,而且均为可选参数:
- resolution : 控制 coastlines,lake等的精度。可选值有:c (crude,为默认值), l (low), i (intermediate), h (high), f (full) or None 当使用 shapefile 替代内置文件时,设置为 None可以提升性能
- area_thresh : 没有绘制 coast line 或 lake 时的阈值。默认为 10000,1000, 100, 10, 1,分别对应 c,l,i,h,f
- rsphere:设置投影的球的半径。默认为 6370997 m。如果给定一个序列,前两个参数作为椭球的半径
- ellps:椭球名,比如 ‘WGS84’。可能的值被定义在 pyproj.pj_ellps
- suppress_ticks:防止在地图投影坐标中自动绘制轴 tick 和 labels
- fix_aspect:固定绘图宽高比和投影区域宽高比相匹配。默认为 True
- anchor:绘图时地图被固定的位置。默认为C,即地图中心。允许的值有C, SW, S, SE, E, NE, N, NW, 及 W
- celestial:对于经度使用天文学约定(即 0 以东为负经度)。默认为False,表明 resolution 为 None
- ax:设置默认的 axes 实例。(译注:此参数对绘制多个图时将相当方便)
设置边界框
下列参数被用于设置地图范围。
关于设置边界框的例子及解释在 Basemap系列教程:管理投影 的 扩展 部分。
- 第一种方式是在地理学坐标中定义地图边界框来设置地图范围 参数 描述llcrnrlon地理坐标左下角经度llcrnrlat地理坐标左下角纬度urcrnrlon 地理坐标右上角经度urcrnrlat地理坐标右上角纬度
- 使用投影单元设置边界框 参数 描述llcrnrx 投影单元中左下角 x 坐标llcrnry投影单元中左下角 y 坐标 urcrnrx投影单元中右上角 x 坐标 urcrnry投影单元中右上角 y 坐标
- 通过设置地理坐标中的中心点,投影单元域的宽,高设置边界框 参数描述width投影单元中地图的宽 height投影单元中地图的高lon_0地图中心的经度lat_0地图中心的纬度
使用Basemap实例转换单位
此部分在 Basemap系列教程:管理投影 的 扩展 部分已进行了讲解。
Basemap 对象的 fields
当Basemap对象被创建时,会有一些含有数据的fields被创建
- 这些 fields中有一部分包含有精度参数的polygon。所有都是 matplotlib Polygon对象。 1) landpolygons 2) lakepolygons 3) boundarylons 4) coastpolygons 5) coastpolygontypes 6) coastsegs
- 其它一些 fields 给出了所使用的投影的信息 1) proj4string : 包含所使用的投影的定义 2) projection : 所使用的投影的代码 3) projparams :投影参数的字典。 4) rmajor:所用投影的椭球的长半轴 5) rminor:所用投影的椭球的短半轴 6) xmax, ymax, xmin, ymin : 投影单元中的边界框
7) anchor:地图轴坐标起始点。默认为地图的中心,但可以改变
8) celestial : 表示是否 格林威治 以西经度为负