气象统计 第八次实习

一、实习题目

二、实习程序

这次实习本来打算先用如下命令合并CTL和GRD转化为nc再开始计算的,但是不知道什么原因,平常用的合并方法一直出错,代码如下:

#ctl,grd数据转nc
ds = open_CtlDataset('SSTPX.ctl')
ctl = CtlDescriptor(file='SSTPX.ctl')
ds.attrs['pdef' ] = 'None'
ds.to_netcdf('SSTPX.nc')

那位大佬知道怎么错的可以给我讲讲,所以这次直接在linux下用os模块调用系统命令,用cdo完成合并CTL和GRD转化为nc,不过这样会导致nc文件的描述性部分不够详细,所以直接用vim 看描述性文件,#os.system('vim SSTPX.ctl')。然后就是这次出图代码有点乱。。。。。

# -*- coding: utf-8 -*-
import numpy as np
import os
from netCDF4 import Dataset
from eofs.standard import Eof
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import cartopy.mpl.ticker as cticker
from pylab import *                                 #支持中文
mpl.rcParams['font.sans-serif'] = ['SimHei']os.system('cdo -b F64 -f nc import_binary SSTPX.ctl SSTPX.nc')
#os.system('vim SSTPX.ctl')
nc_obj=Dataset('SSTPX.nc')#打开nc文件
print('---------------------------------------')
#查看nc文件中的变量
print("变量")
print(nc_obj.variables.keys())
for i in nc_obj.variables.keys():print(i)
print('---------------------------------------')
#读取数据值
time=np.array((nc_obj.variables['time'][:]))
st=np.array((nc_obj.variables['s'][:]))###eof分解
k=5          ##模态数
eof = Eof(st)
st_eof = eof.eofsAsCorrelation(neofs=k)
st_pc = eof.pcs(npcs=k, pcscaling=1)
st_var = eof.varianceFraction(neigs=k)###north检验
a=eof.northTest(neigs=k)
b=eof.eigenvalues(neigs=k)
for i in range (0,k-1):if (b[i+1]+a[i+1])<(b[i]-a[i]):print('第%d模态和第%d模态显著分离,通过north检验'%(i+1,i+2))else:print('第%d模态和第%d模态分离不显著,没有通过north检验'%(i+1,i+2))
for i in range (0,4):print('第%d模态:%.2f'%(i+1,st_var[i]*100)+'%')##画图函数
##data画图数据矩阵leftlon, rightlon, lowerlat经纬度范围,a数据经度,name图片名称
def draw1(data,leftlon, rightlon, lowerlat, upperlat,name):lon=np.arange(leftlon, rightlon+0.01,10)lat=np.arange(lowerlat, upperlat+0.01,5)#建立画布proj = ccrs.PlateCarree(central_longitude=210) # 设置投影fig, f2_ax1 = plt.subplots(figsize=(15,15), subplot_kw=dict(projection=ccrs.PlateCarree(central_longitude=210)))leftlon, rightlon, lowerlat, upperlat = (leftlon, rightlon, lowerlat, upperlat)#在画布的绝对坐标建立子图f2_ax1.set_extent([leftlon, rightlon, lowerlat, upperlat], crs=ccrs.PlateCarree(central_longitude=0))#绘制data1=f2_ax1.contourf(lon,lat,data,cmap='bwr',transform=ccrs.PlateCarree(central_longitude=0),levels=np.linspace(-0.8,0.4,13),extend='both')#海岸线,50m精度f2_ax1.add_feature(cfeature.COASTLINE.with_scale('50m'))#湖泊数据f2_ax1.add_feature(cfeature.LAKES, alpha=0.5)#以下6条语句是定义地理坐标标签格式f2_ax1.set_xticks(np.arange(leftlon,rightlon,10), crs=ccrs.PlateCarree())f2_ax1.set_yticks(np.arange(lowerlat,upperlat,10), crs=ccrs.PlateCarree())lon_formatter = cticker.LongitudeFormatter()lat_formatter = cticker.LatitudeFormatter()f2_ax1.xaxis.set_major_formatter(lon_formatter)f2_ax1.yaxis.set_major_formatter(lat_formatter)f2_ax1.set_title(name,loc='center',fontsize =20)# shrink 控制 colorbar 长度,pad 控制colorbar和图的距离plt.rcParams['axes.unicode_minus'] = False##负号显示问题plt.colorbar(data1, shrink=0.3, pad=0.02)#orientation='horizontal'位置参数##画模态EOF图
draw1(st_eof[0,:,:],120,290,-27.5,27.5,'EOF1 22.41%')
draw1(st_eof[1,:,:],120,290,-27.5,27.5,'EOF2 5.41%')
##画模态PC图
time=np.linspace(1948,1991,516)
k=0
fig1= plt.figure(figsize=(20,15))
f2_ax= fig1.add_axes([0.65, 0.8, 0.5, 0.3])
f2_ax.set_title('PC1',loc='left',fontsize=20)
f2_ax.set_ylim(-2.5,2.5)
f2_ax.set_xlim(1948,1991)
f2_ax.axhline(0,linestyle="--")
f2_ax.plot(time,st_pc[:,k])k=1
fig1= plt.figure(figsize=(20,15))
f2_ax= fig1.add_axes([0.65, 0.8, 0.5, 0.3])
f2_ax.set_title('PC2',loc='left',fontsize=20)
f2_ax.set_ylim(-2.5,2.5)
f2_ax.set_xlim(1948,1991)
f2_ax.axhline(0,linestyle="--")
f2_ax.plot(time,st_pc[:,k])

三、例图



四、代码及源文件

实习八

程序中如有疏漏欢迎指正

气象统计 第八次实习 EOF分析相关推荐

  1. 气象统计 第三次实习 落后交叉相关系数和偏相关系数

    气象统计 第三次实习 一.实习题目 二.实习程序 import pandas as pd import numpy as np##读文件 data1=np.array(pd.read_table('m ...

  2. grads 相关系数_气象统计方法实习报告材料

    <气象统计方法实习报告材料>由会员分享,可在线阅读,更多相关<气象统计方法实习报告材料(56页珍藏版)>请在人人文库网上搜索. 1.实用标准文档目录实习一求500hPa高度场气 ...

  3. 气象统计方法短期气候预测代码汇总

    公布这些代码的目的之一肯定是解决大家实习课的困难,二是想让大家看到更简洁易懂的代码. 之前或多或少看过别人写的例如气象统计方法实习or短期气候预测实习的代码,那些代码大多冗余繁杂,不够简洁易懂,里面大 ...

  4. 气象统计方法期末知识点小结

    气象统计方法知识点小结 小知识点 气象统计诊断的基本步骤 资料收集 资料预处理 选取诊断方法 科学综合与诊断分析 气象统计预测的基本步骤 资料收集 选择合适的统计模型 统计检验 预测结论 一些概念 气 ...

  5. R语言在气象、水文中数据处理及结果分析、绘图

    R语言是一门由统计学家开发的用于统计计算和作图的语言(a Statistic Language developed for Statistic by Statistician),由S语言发展而来,以统 ...

  6. java写类似百度统计_资讯 | 与百度统计功能类似的产品—360分析系统

    原标题:资讯 | 与百度统计功能类似的产品-360分析系统 360自主研发的商业推广投放效果统计分析产品"360分析"近日已全流量上线,该产品为广告主量身定制,可实现对360推广点 ...

  7. pta7-3 统计不及格人数_应用统计专硕院校专业难度分析【青岛大学、苏大、西安交通大学】...

    原文链接: 应用统计专硕院校专业难度分析[第十二期]​mp.weixin.qq.com 应用统计专硕院校专业难度分析 [第十二期] TO: 哈喽,小可爱们早上给你好呀! 今天安安姐给你们更新经济类6个 ...

  8. 城市智慧路灯综合管理平台、图监控、灯箱实时监控、策略管理、故障报警、灯具管理、数据统计、故障分析、开关灯记录分析、区域管理、分组管理、DIV+CSS布局设计、HTML/Bootstrp/jQuery

    源码类别: 后台模板     文件大小: 21.5 MB    源码内容:城市智慧路灯综合管理平台后台模板 前端技术: HTML/CSS/Bootstrap/jQuery    模板语言: 简体中文  ...

  9. R语言survival包clogit函数构建条件logistic回归模型、summary函数查看模型汇总统计信息、通过似然比检验分析结果判断模型有无统计学意义

    R语言survival包clogit函数构建条件logistic回归模型.summary函数查看模型汇总统计信息.通过似然比检验分析结果判断模型有无统计学意义 目录

  10. netstat--查看服务器[有效]连接数--统计端口并发数--access.log分析

    简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Member ...

最新文章

  1. 【linux驱动】嵌入式 Linux 对内存的直接读写(devmem)
  2. 我们公司是如何把项目中的2100个if-else彻底干掉的!
  3. CSS中绝对定位依据谁进行定位?
  4. java list 最小值_Java 实例 – 查找 List 中的最大最小值
  5. 回填用土好还是砂石料好_养羊喂撒粉料好还是颗粒料好?
  6. 【Android 应用开发】分析各种Android设备屏幕分辨率与适配 - 使用大量真实安卓设备采集真实数据统计
  7. 将数据、代码、栈放入不同的段
  8. Python词云学习之旅
  9. Linux中shell变量作用域笔记
  10. C语言 二叉树顺序存储结构的先序遍历算法
  11. mysql常用的备份命令有哪些_MySQL常用备份还原命令
  12. 嵌入式linux系统运行程序,嵌入式Linux系统启动过程
  13. UNIX环境高级编程(第2版)
  14. 工具推荐:JDownloader - 下载网盘资料的好工具
  15. 三菱服务器显示rb是什么故障,​三菱伺服驱动器常见报警代码及解决办法
  16. SSM汽车租赁管理系统毕业设计源码052158
  17. Maven学习(七)Maven工程单一架构案例
  18. golang-ffmpeg-goav拉流解码器,支持视频拉流解码并转换为YUV、BGR24或RGB24等图像像素数据
  19. 基于EEG信号与面部表情的连续情绪识别
  20. docker MySQL 双主_DockerMysql数据库实现双主同步配置详细·TesterHome

热门文章

  1. 19、【易混淆概念集】第十一章3 应急计划 VS 弹回计划 实施风险应对 监督风险
  2. jszip 解压压缩包_Node.js使用jszip实现打包zip压缩包
  3. 把 14 亿中国人都拉到一个微信群在技术上能实现吗?
  4. 移动端日历插件_“滴答清单”移动端产品分析报告
  5. hive sql 行列转换
  6. c语言根据日期求星期蔡勒公式,利用蔡勒公式获得给定日期的星期数
  7. java猜成语,成语疯狂猜-疯狂猜成语下载-javaweb下载站
  8. pygame教程:第一课 初始化和主循环
  9. PHP将GD库生成的图片输出到字节流及创建临时文件
  10. 检测是否有效的手机号码