步骤

功能

具体操作

目标

第一步

库包引用

import xarray as xr

import numpy as np

import matplotlib.pyplot as plt

import cartopy.crs as ccrs

from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter

①引导学生分析问题、选择库包;

②熟悉各库包的引用方式;

③坐标轴经纬度显示需要的函数。

第二步

数据读取

f = xr.open_dataset(r"D:\sst.mean.anom.nc")

①掌握xarray提供的NetCDF文件的读取函数open_dataset();

②熟悉绝对路径的书写格式。

第三步

数据处理

lat = f['lat'][:]

lon = f['lon'][:]

ssta = f['sst'].loc['2015-11-01']

①掌握xarray.DataArray数据结构中维度、气象数据等的索引方式。

第四步

可视化

proj = ccrs.PlateCarree()

fig = plt.figure(figsize = (9,6), dpi = 800)

ax = fig.add_axes([0.1,0.1,0.85,0.85], projection = ccrs.PlateCarree(central_longitude = 180.0))

region = [142.5, 302.5, -30, 30]

ax.set_extent(region, crs = proj)

tc = ax.contourf(lon, lat, ssta, transform = proj, levels = np.arange(-4,5,1), cmap = 'RdBu_r')

tc2 = ax.contour(lon, lat, ssta, transform = proj, levels = np.arange(-4,5,1), colors = 'k', linestyles = '-', linewidths = 1, alpha = 0.5)

cbar = fig.colorbar(tc, ax = ax, orientation = "horizontal", aspect = 25, pad = 0.1, shrink = 1)

ax.xaxis.set_major_formatter(LongitudeFormatter(zero_direction_label = True))

ax.yaxis.set_major_formatter(LatitudeFormatter())

ax.set_xticks(np.arange(142.5, 302.6, 30), crs = proj)

ax.set_yticks(np.arange(-30, 30.1, 15), crs = proj)

for tick in ax.xaxis.get_major_ticks():

tick.label1.set_fontsize(12)

for tick in ax.yaxis.get_major_ticks():

tick.label1.set_fontsize(12)

ax.coastlines('10m')

①熟练掌握绘图四步曲(画布,绘图区add_axes(),绘图,辅助设置);

②掌握二维图的绘制函数contour()、contourf();

③熟悉常见的地图投影方式;

④掌握colorbar()函数;

⑤了解时间横轴显示设计

⑥掌握经纬度坐标刻度的设置;

⑦了解纵坐标刻度范围的设置函数;

⑧熟练掌握for循环的应用;

⑨掌握在线添加海岸线的方式。

第五步

结果保存

fig.savefig('D:/2015-11.png', dpi = 800, bbox_inches = "tight")

①应用savefig()命令保存图片

②引导学生对图片进行简单分析