# 需要导入
# -*- coding: utf-8 -*-
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
map = Basemap() # 实例化地图对象
map.drawcoastlines() # 调用惯性线层
plt.show() # 展示图片
plt.savefig(‘./test.png‘)
# fillcontinents() color 大陆颜色 , lake_color湖泊颜色
# drawmapboundary() fill_color填充地图颜色
map = Basemap(projection=‘ortho‘,lat_0=0,lon_0=0)
map.drawmapboundary(fill_color=‘aqua‘)
# lake_color 是湖泊的变色
map.fillcontinents(color=‘coral‘,lake_color=‘#1f77b4‘)
map.drawcoastlines()
plt.show()
map = Basemap(projection=‘cyl‘)
map.drawmapboundary(fill_color=‘aqua‘)
map.fillcontinents(color=‘coral‘,lake_color=‘aqua‘)
map.drawcoastlines()
plt.show()
map = Basemap(projection=‘aeqd‘,lon_0=10,lat_0=50)
map.drawmapboundary(fill_color=‘aqua‘)
map.fillcontinents(color=‘coral‘,lake_color=‘aqua‘)
map.drawcoastlines()
plt.show()
‘‘‘espg是数字命名的投影,‘‘‘
# 使用 UTM 投影 展示 梅诺卡岛
map = Basemap(llcrnrlon=3.75,llcrnrlat=39.75,urcrnrlon=4.35,urcrnrlat=40.15,resolution=‘h‘,epsg=5520)
map.drawmapboundary(fill_color=‘aqua‘)
map.fillcontinents(color=‘coral‘,lake_color=‘aqua‘)
map.drawcoastlines()
plt.show()
#### 笔记: cyl , merc, mill,cea,gall投影时, 假定角:为 -180,-90,180,90为全地球
map = Basemap(llcrnrlon = -10.5,llcrnrlat=35,urcrnrlon=4,urcrnrlat=44,
resolution=‘i‘,projection=‘tmerc‘,lat_0=39.5,lon_0=-3.25)
map.drawmapboundary(fill_color=‘aqua‘)
map.fillcontinents(color=‘coral‘,lake_color=‘aqua‘)
map.drawcoastlines()
plt.show()
# 要么是因为绘制了所有地球仪,要么是因为无法根据地理坐标计算出扩展名。
map = Basemap(resolution=‘l‘, satellite_height=3000000,
projection=‘nsper‘, lat_0=30, lon_0=-27,
llcrnrx=500000, llcrnry=500000, urcrnrx=2700000, urcrnry=2700000)
map.drawmapboundary(fill_color=‘aqua‘)
map.fillcontinents(color=‘coral‘, lake_color=‘aqua‘)
map.drawcoastlines()
plt.show()
map = Basemap(projection=‘aeqd‘,lon_0 = 0,lat_0 =90,width=10000000,height=10000000)map.drawmapboundary(fill_color=‘aqua‘)map.fillcontinents(color=‘coral‘,lake_color=‘aqua‘)map.drawcoastlines()# 标注点for i in range(0,10000000,1000000): map.plot(i,i,marker=‘o‘,color=‘y‘)plt.show()
map = Basemap(projection=‘ortho‘,lat_0=0,lon_0=0)map.drawmapboundary(fill_color=‘aqua‘)map.fillcontinents(color=‘coral‘,lake_color=‘aqua‘)map.drawcoastlines()x, y =map(0,0)# laction 关键字设置为True, x,y是经纬度(单位度)map.plot(x,y,marker=‘D‘,color=‘m‘)plt.show()
### 10. 散点map = Basemap(projection=‘ortho‘,lat_0=0,lon_0=0)map.drawmapboundary(fill_color=‘aqua‘)map.fillcontinents(color=‘coral‘,lake_color=‘aqua‘)map.drawcoastlines()lons =[0,10,-20,-20] # 经线lats = [0,-10,40,-20] # 纬线x,y = map(lons,lats) # 经纬线 组合,# scattermap.scatter(x,y,marker=‘D‘,color=‘m‘)plt.show()
from osgeo import gdalfrom numpy import linspace,meshgridmap = Basemap(projection=‘tmerc‘,lat_0=0,lon_0=3, llcrnrlon=1.819757266426611, llcrnrlat=41.583851612359275, urcrnrlon=1.841589961763497, urcrnrlat=41.598674173123)ds = gdal.Open(‘./dem.tiff‘)data = ds.ReadAsArray()### 在绘制轮廓之前,必须创建两个矩阵,其中包含数据矩阵中每个点的x和y坐标位置# - linspace , 使用n个元素创建一个从初始值到最终值得数组# 地图坐标从0到 map.urcrnrx或者map.urcrnry.# 并且具有与数据数组data.shape[1] 和 data.shape[0]相同的大小 .# - meshgrid , 接收两个数组并使用他们创建一个矩阵. x的坐标在每一列中重复,x在每一行中重复x = linspace(0,map.urcrnrx,data.shape[1])y = linspace(0,map.urcrnry,data.shape[0])xx,yy = meshgrid(x,y)# contourf 方法 将采用x,y 和数据巨准. 并将他们绘制在默认的颜色表中(jet),自动绘制# 级别数据, 在数据组装之后定义 # - 指示级别数据是整数, 数据数组的极值将指示色标的极值 # - 包含每个级别的值得列表. 范围功能可用于设置他们 range(0,3000,100) ,每100个单位的级别map.contourf(xx,yy,data)plt.show()
map = Basemap(projection=‘tmerc‘, lat_0=0,lon_0=3, llcrnrlon=1.819757266426611, llcrnrlat=41.583851612359275, urcrnrlon=1.841589961763497, urcrnrlat=41.598674173123)ds = gdal.Open(‘dem.tiff‘)data = ds.ReadAsArray()x = linspace(0,map.urcrnrx,data.shape[1])y = linspace(0,map.urcrnrx,data.shape[0])xx,yy = meshgrid(x,y)# 使用 contour 来处理# 处理海拔高度 : 400m - 1400m , 每100m都会创建一条轮廓# 颜色不是默认喷射的 , 是通过cubehelix颜色图传递给cmap参数来完成# 可以将标签设置为轮廓线方法() # - 内联 使要删除的轮廓线,在该线下 # - fmt 格式化数字 # - fontsize 设置标签字体的大小 # - colors 设置标签而颜色. 默认情况下,与轮廓线相同cs = map.contour(xx,yy,data,range(400,1500,100),cmap=plt.cm.cubehelix)plt.clabel(cs,inline=True,fmt=‘%1.0f‘,fontsize=12,colors=‘k‘)plt.show()
map = Basemap(projection=‘tmerc‘,lat_0=0,lon_0=3, llcrnrlon=1.819757266426611, llcrnrlat=41.583851612359275, urcrnrlon=1.841589961763497, urcrnrlat=41.598674173123 )ds = gdal.Open(‘dem.tiff‘)data = ds.ReadAsArray()x = linspace(0,map.urcrnrx,data.shape[1])y = linspace(0,map.urcrnrx,data.shape[0])xx,yy = meshgrid(x,y)map.pcolormesh(xx,yy,data)plt.show()
map = Basemap(projection=‘aeqd‘,lon_0=10,lat_0=50)print map(10,50)# inverse 为False 输出的经度和纬度,# inverse 为True 输出相反print map(20015077.3712, 20015077.3712, inverse=True)
原文:https://www.cnblogs.com/dengz/p/14835576.html