步骤 | 功能 | 具体操作 | 目标 |
第一步 | 库包引用 | 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()命令保存图片 ②引导学生对图片进行简单分析 |