Matlab地理信息绘图—数据诊断

文章目录

    • 数据诊断分析(均值方差)
    • Matlab代码实现
    • 结果展示

数据诊断分析(均值方差)

  • 均值方差检测是一种简单但有效的异常检测方法,主要基于样本的均值和方差的统计信息。该方法的核心思想是假设正常的样本点应该聚集在某个区域,而异常点则可能远离这个区域。
  • 3 σ 3\sigma 3σ准则:是一种统计学中常用的规则,用于衡量数据集中的值离均值的距离。该规则基于正态分布的性质,提供了一个衡量数据集中值的离散程度的指标。
  • 具体来说, 3 σ 3\sigma 3σ准则表明:
    • 对于一个正态分布的数据集,约有 68% 的数据值会落在均值的一个标准差范围内。
    • 约有 95% 的数据值会落在均值的两个标准差范围内。
    • 约有 99.7% 的数据值会落在均值的三个标准差范围内。

Matlab代码实现

%% Figrue4-14 【NSIDC-ECMWF】DOO与天气过程和频率的关系
clear;clc;close all
load('.\data\daily_sia_7920.mat');
sia=min(cdr_sia./1e11);% 1e5 km2
for ii=1:42sia_day(ii)=find(cdr_sia(:,ii)./1e11==sia(ii));
endmsia=mean(sia_day);
ssia=std(sia_day);siz=25;lind=1.5;
x_0=0.10;
y_0=0.70;
len=0.85;
width=0.25;
d_x=0.32;
d_y=-0.27;
px=[0 0 0 0];
py=[0 1 2 3];
%======================================================
set(gcf,'color',[1 1 1],'position',[10 45 800 800*1.2]);%get(0,'screensize')
axes('position',[x_0+d_x*px(1), y_0+d_y*py(1), len, width]);
plot(sia_day,'k-*','linewidth',lind);hold on
plot([1 42],[msia,msia],'k-','linewidth',lind);hold on
plot([1 42],[msia+ssia,msia+ssia],'k--','linewidth',lind);hold on
plot([1 42],[msia-ssia,msia-ssia],'k--','linewidth',lind);hold on
C1=sia_day;C1(C1>msia-ssia)=nan;
C3=sia_day;C3(C3<msia+ssia)=nan;
scatter([1:42],C1,60,'b','filled','s');hold on
scatter([1:42],C3,60,'r','filled','^');hold on
set(gca,'linewidth',lind);grid on
set(gca,'xlim',[0 43],'xtick',1:5:42,'xticklabel','',...'fontname','Times New Roman','FontSize',siz-10,'fontweight','bold')
set(gca,'ylim',[210 280],'ytick',210:20:280,'yticklabel',num2str([210:20:280]','%.0f'),'Fontname',...'Times New Roman','FontSize',siz-10,'fontweight','bold');
ylabel('Day of year (d)','fontname','Times New Roman',...'FontSize',siz-10,'fontweight','bold');
hh=get(gca);
X=hh.XLim;
Y=hh.YLim;
k1=[0.03 0.8];
k2=[0.3 0.8];
k3=[0.03 0.9];
x_2=X(1)+k2(1)*(X(2)-X(1));
y_2=Y(1)+k2(2)*(Y(2)-Y(1));
x_3=X(1)+k3(1)*(X(2)-X(1));
y_3=Y(1)+k3(2)*(Y(2)-Y(1));
text(double(x_3),double(y_3),'(a)','color','k','fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
%======================天气过程频率==========================================
load('.\data\BFT_wind2_daily_7920.mat')
ue=u;
uc=mean(u);
stdc=std(u);
data1=ue-uc;
data2=ue-uc-stdc;
data3=ue-uc-2*stdc;
data1(data1<0)=nan;data1(~isnan(data1))=1;
data2(data2<0)=nan;data2(~isnan(data2))=1;
data3(data3<0)=nan;data3(~isnan(data3))=1;
mon=[31 28 31 30 31 30 31 31 30 31 30 31];
mona=[1,32,60,91,121,152,182,213,244,274,305,335];
monb=[31,59,90,120,151,181,212,243,273,304,334,365];
barmap1=[190 223 235;0 190 255;26 26 210]./255;
for mm=1:12datam=nansum(data1(mona(mm):monb(mm),:),1);datas1=nansum(data2(mona(mm):monb(mm),:),1);datas2=nansum(data3(mona(mm):monb(mm),:),1);datad0(mm,:)=datam-datas1;%大于平均值的天数datad1(mm,:)=datas1-datas2;%大于一个标准差的天数datad2(mm,:)=datas2;%大于两个标准差的天数
end
data590=nansum(datad0(5:9,:),1);
data591=nansum(datad1(5:9,:),1);
data592=nansum(datad2(5:9,:),1);axes('position',[x_0+d_x*px(2), y_0+d_y*py(2), len, width]);
ch=bar([data590;data591;data592]','stacked');
grid on
set(ch(1),'FaceColor',barmap1(1,:));
set(ch(2),'FaceColor',barmap1(2,:));
set(ch(3),'FaceColor',barmap1(3,:));
set(gca,'linewidth',lind,'ylim',[0 120]);
ylabel('Days yr^{-1}','fontname','Times New Roman','FontSize',siz-10,'fontweight','bold');text(15,110,{'>0\sigma days'},'color',barmap1(1,:),'fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
text(15,100,{'≥1\sigma days'},'color',barmap1(2,:),'fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
text(15,90,{'≥2\sigma days'},'color',barmap1(3,:),'fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
set(gca,'xlim',[0 43],'xtick',[1:5:42],'xticklabel','','Fontname',...'Times New Roman','FontSize',siz-10,'fontweight','bold')
hh=get(gca);
X=hh.XLim;
Y=hh.YLim;
k1=[0.03 0.8];
k2=[0.3 0.8];
k3=[0.03 0.9];
x_2=X(1)+k2(1)*(X(2)-X(1));
y_2=Y(1)+k2(2)*(Y(2)-Y(1));
x_3=X(1)+k3(1)*(X(2)-X(1));
y_3=Y(1)+k3(2)*(Y(2)-Y(1));
text(double(x_3),double(y_3),'(b)','color','k','fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
%======================天气过程强度==========================================
load('.\data\BFT_wind2_daily_7920.mat')
ue=u;
uc=mean(u);
stdc=std(u);
data1=ue-uc;
data2=ue-uc-stdc;
data3=ue-uc-2*stdc;
data1(data1<0)=nan;data1(~isnan(data1))=1;
data2(data2<0)=nan;data2(~isnan(data2))=1;
data3(data3<0)=nan;data3(~isnan(data3))=1;
barmap2=[178 38 38;255 27 255;221 159 221;255 195 204;187 143 143]./255;
for yy=1:42for mm=1:12%==============================events3=0;for aa=mona(mm):monb(mm)-2if ~isnan(data2(aa,yy)) &  ~isnan(data2(aa+1,yy)) & ~isnan(data2(aa+2,yy))events3=events3+1;endEvents3(mm,yy)=events3;end%============================events4=0;for aa=mona(mm):monb(mm)-3if ~isnan(data2(aa,yy)) &  ~isnan(data2(aa+1,yy)) & ~isnan(data2(aa+2,yy)) & ~isnan(data2(aa+3,yy))events4=events4+1;endEvents4(mm,yy)=events4;end%============================events5=0;for aa=mona(mm):monb(mm)-4if ~isnan(data2(aa,yy)) &  ~isnan(data2(aa+1,yy)) & ~isnan(data2(aa+2,yy)) & ~isnan(data2(aa+3,yy))...& ~isnan(data2(aa+4,yy))events5=events5+1;endEvents5(mm,yy)=events5;end%============================events6=0;for aa=mona(mm):monb(mm)-5if ~isnan(data2(aa,yy)) &  ~isnan(data2(aa+1,yy)) & ~isnan(data2(aa+2,yy)) & ~isnan(data2(aa+3,yy))...& ~isnan(data2(aa+4,yy)) & ~isnan(data2(aa+5,yy))events6=events6+1;endEvents6(mm,yy)=events6;end%============================events7=0;for aa=mona(mm):monb(mm)-6if ~isnan(data2(aa,yy)) &  ~isnan(data2(aa+1,yy)) & ~isnan(data2(aa+2,yy)) & ~isnan(data2(aa+3,yy))...& ~isnan(data2(aa+4,yy)) & ~isnan(data2(aa+5,yy)) & ~isnan(data2(aa+6,yy))events7=events7+1;endEvents7(mm,yy)=events7;endend
end
datas3=nansum(Events3(5:9,:),1);
datas4=nansum(Events4(5:9,:),1);
datas5=nansum(Events5(5:9,:),1);
datas6=nansum(Events6(5:9,:),1);
datas7=nansum(Events7(5:9,:),1);axes('position',[x_0+d_x*px(3), y_0+d_y*py(3), len, width]);
ch=bar([datas3;datas4;datas5;datas6;datas7]','stacked');
grid on
set(ch(1),'FaceColor',barmap2(1,:));
set(ch(2),'FaceColor',barmap2(2,:));
set(ch(3),'FaceColor',barmap2(3,:));
set(ch(4),'FaceColor',barmap2(4,:));
set(ch(5),'FaceColor',barmap2(5,:));set(gca,'linewidth',lind,'ylim',[0 60]);
ylabel('Events yr^{-1}','fontname','Times New Roman','FontSize',siz-10,'fontweight','bold');
text(15,58,{'3-days events'},'color',barmap2(1,:),'fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
text(15,53,{'4-days events'},'color',barmap2(2,:),'fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
text(15,48,{'5-days events'},'color',barmap2(3,:),'fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
text(15,43,{'6-days events'},'color',barmap2(4,:),'fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
text(15,38,{'7-days events'},'color',barmap2(5,:),'fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
set(gca,'xlim',[0 43],'xtick',[1:5:42],'xticklabel',1979:5:2020,'Fontname',...'Times New Roman','FontSize',siz-10,'fontweight','bold')
hh=get(gca);
X=hh.XLim;
Y=hh.YLim;
k1=[0.03 0.8];
k2=[0.3 0.8];
k3=[0.03 0.9];
x_2=X(1)+k2(1)*(X(2)-X(1));
y_2=Y(1)+k2(2)*(Y(2)-Y(1));
x_3=X(1)+k3(1)*(X(2)-X(1));
y_3=Y(1)+k3(2)*(Y(2)-Y(1));
text(double(x_3),double(y_3),'(c)','color','k','fontname',...'Times New Roman','fontweight','bold','fontsize',siz-10);
% export_fig(['.\map\','Figure4-14.天气过程.png'],'-r200')
% close all

结果展示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/155380.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 自定义包和模块随机生成6位验证码(详解版)

一、新建一个包&#xff08;两种方法&#xff09; 方法一&#xff1a;先新建一个空目录命名为"小功能包"&#xff0c;然后在新建的目录下新建一个空__init__.py&#xff08;目的是声明当前目录是一个包&#xff09; 方法二&#xff1a;直接在PyCharm用鼠标依次点击F…

多尺度retinex图像去雾算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 clc; clear; close all; warning off; addpath(genpath(pwd)); rng(default)img_in im2doub…

基于SpringBoot的学院班级回忆录

目录 前言 一、技术栈 二、系统功能介绍 管理员模块的实现 用户信息管理 班委信息管理 班级信息管理 班级相册管理 用户和班委模块的实现 班委注册 班级信息管理 加入班级 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越…

使用c++视觉处理----canny 边缘检测、sobel边缘检测、scharr 滤波边缘检测

使用c视觉处理canny 边缘检测、sobel边缘检测、scharr 滤波边缘检测 #include <opencv2/opencv.hpp>int main() {// 读取图像cv::Mat image cv::imread("1.jpg", cv::IMREAD_GRAYSCALE); // 转为灰度图像if (image.empty()) {std::cerr << "无法加…

2023年9月Web3行业月度发展报告区块链篇 | 陀螺科技会员专享

9月是加密市场的活动月&#xff0c;斯坦福区块链周、Token2049等大型活动相继举办&#xff0c;后者更是创下超过1万人的历史最高纪录&#xff0c;成为了全球最大的Web3活动。在本次Token2049上&#xff0c;RWA、支付以及出入金成为了讨论度最多的活动。尽管活动如火如荼&#x…

流程自动化如何帮助简化安全性

正如帮助开发 IT 安全最佳实践的政府机构 NIST 所说&#xff0c;人们越来越认识到网络安全是“每个人的工作”。换句话说&#xff0c;不仅仅是 IT 组织内的技术员工必须帮助预防和检测网络安全风险。组织中的每个人&#xff0c;包括没有技术或网络安全背景的员工&#xff0c;都…

vue elementui的select组件实现滑到底部分页请求后端接口

vue elementui的select组件实现滑到底部分页请求后端接口 1.实现效果2.实现原理 1.实现效果 老规矩&#xff0c;直接上最后的实现效果 2.实现原理 直接上代码 <el-form-item class"diagmosisItem" label"诊断" v-scroll"handleScroll">…

【C进阶】内存函数

strcpy拷贝的仅仅是字符串&#xff0c;但是内存中的数据不仅仅是字符&#xff0c;所以就有了memcpy函数 1. memcpy void *memcpy &#xff08;void * destination &#xff0c;const void * source , size_t num) 函数memcpy从source的位置开始向后拷贝num个字节的数据到desti…

如何正确的关闭Redis服务器

Redis官方原生版本是在Linux平台上开发和测试的&#xff0c;但是大多数初学者都是使用Windows系统来学习如何开发的。因此&#xff0c;官方提供了一个叫做“Microsoft Open Tech Redis”的项目&#xff0c;该项目专门为Windows平台提供了一个官方支持的Redis版本&#xff0c;但…

大数据Doris(八):启动FE步骤

文章目录 启动FE步骤 一、配置环境变量 二、​​​​​​​创建doris-mate

C/C++ 线程超详细讲解(系统性学习day10)

目录 前言 一、线程基础 1.概念 2.一个进程中多个线程特征 2.1 线程共有资源 2.2 线程私有资源 3.线程相关的api函数 3.1 创建线程 创建线程实例代码如下&#xff1a; 需要特别注意的是&#xff1a; -lpthread和-pthread的区别 3.2 给线程函数传参 传参实例代码如…

Django实现音乐网站 ⒆

使用Python Django框架做一个音乐网站&#xff0c; 本篇主要为排行榜功能及音乐播放器部分功能实现。 目录 排行榜列表 设置路由 视图处理 模板渲染 设置跳转入口 播放器功能开发 设置路由 模板页面 脚本渲染 列表渲染和播放器实现 音乐播放器列表展示关闭 总结 排…

Selenium+Pytest自动化测试框架

前言 selenium自动化 pytest测试框架 本章你需要 一定的python基础——至少明白类与对象&#xff0c;封装继承 一定的selenium基础——本篇不讲selenium&#xff0c;不会的可以自己去看selenium中文翻译网 测试框架简介 测试框架有什么优点呢&#xff1a; 代码复用率高&…

百度SEO优化全攻略(提高网站排名的5个方面)

百度SEO入门介绍&#xff1a; 随着互联网的不断发展&#xff0c;SEO已经成为网站优化的重要一环。而百度作为中国最大的搜索引擎&#xff0c;其SEO优化更是至关重要。SEO不仅能够提高网站排名&#xff0c;还能够提高网站流量、用户体验以及品牌知名度。因此&#xff0c;掌握百…

代码混淆界面介绍

代码混淆界面介绍 代码混淆功能包括oc&#xff0c;swift&#xff0c;类和函数设置区域。其他flutter&#xff0c;混合开发的最终都会转未oc活着swift的的二进制&#xff0c;所以没有其他语言的设置。 代码混淆功能分顶部的显示控制区域&#xff1a;显示方式&#xff0c;风险等…

重置Mac电脑的SMC怎么操作,重置SMC方法分享~

SMC 负责管理 Mac 上的电源。重置 SMC 可以解决一些与电源或散热管理相关的不常见问题。今天重置SMC教程给大家分享一下&#xff0c;需要的小伙伴看过来&#xff01; 如何判断您是不是需要重置 SMC 若出现以下症状&#xff0c;则表明可能需要重置 SMC&#xff1a; 电池无法充电…

“Python+”集成技术高光谱遥感数据处理与机器学习深度应用丨高光谱数据预处理-机器学习-深度学习-图像分类-参数回归等12个专题

目录 第一章 高光谱数据处理基础 第二章 高光谱开发基础&#xff08;Python&#xff09; 第三章 高光谱机器学习技术&#xff08;python&#xff09; 第四章 典型案例操作实践 更多应用 本教程提供一套基于Python编程工具的高光谱数据处理方法和应用案例。 涵盖高光谱遥感…

新鲜速递:Spring Cloud Alibaba环境在Spring Boot 3时代的快速搭建

了解 首先&#xff0c;Spring Cloud Alibaba使用的是Nacos作为服务注册和服务发现的中间件。 能力在提供者那里&#xff0c;而消费者只需知道提供者提供哪些服务&#xff0c;而无需关心提供者在哪里&#xff0c;实际调用过程如下图 准备工作 1、需要下载并安装Nacos最新版…

3d tiles规范boundingVolume属性学习

3d tiles的瓦片&#xff08;Tiles&#xff09;包含一些属性&#xff0c;其中第一项是boundingVolume&#xff1b;下面学习boundingVolume&#xff1b; boundingVolume&#xff0c;这个翻译为边界范围框&#xff0c;如果直译为边界体积可能有问题&#xff0c;其实就是包围盒的意…

VS2019:无法启动程序xxx.exe。系统找不到指定的文件。

原因&#xff1a; 我把Debug目录/Release目录下已经生成的.exe删除了&#xff0c; 但VS2019的配置文件记录的是它已经生成过了&#xff0c; 所以它会直接去找对应的生成文件&#xff0c;找不到&#xff0c;就出现了这个错误。 解决方法&#xff1a; 在解决方案的对应项目位置右…