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

news2024/10/6 2:22:39

文章目录

    • 数据诊断分析(均值方差)
    • 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:42
    sia_day(ii)=find(cdr_sia(:,ii)./1e11==sia(ii));
end

msia=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:12
    datam=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:42
    for mm=1:12
        %==============================
        events3=0;
        for aa=mona(mm):monb(mm)-2
            if ~isnan(data2(aa,yy)) &  ~isnan(data2(aa+1,yy)) & ~isnan(data2(aa+2,yy))
                events3=events3+1;
            end
            Events3(mm,yy)=events3;
        end
        %============================
        events4=0;
        for aa=mona(mm):monb(mm)-3
            if ~isnan(data2(aa,yy)) &  ~isnan(data2(aa+1,yy)) & ~isnan(data2(aa+2,yy)) & ~isnan(data2(aa+3,yy))
                events4=events4+1;
            end
            Events4(mm,yy)=events4;
        end
        %============================
        events5=0;
        for aa=mona(mm):monb(mm)-4
            if ~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;
            end
            Events5(mm,yy)=events5;
        end
        %============================
        events6=0;
        for aa=mona(mm):monb(mm)-5
            if ~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;
            end
            Events6(mm,yy)=events6;
        end
        %============================
        events7=0;
        for aa=mona(mm):monb(mm)-6
            if ~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;
            end
            Events7(mm,yy)=events7;
        end
        
    end
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.coloradmin.cn/o/1083775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Cmake快速生成vs工程

文章目录 1 安装cmake2 生成vs工程 1 安装cmake 官方网址&#xff1a; https://cmake.org/download/ 打开官网&#xff0c;根据自己需求下载所需文件。&#xff08;本人是安装在Windows10-x64平台上&#xff0c;所以下文步骤均基于此平台&#xff09; 下载好后&#xff0c;双…

大数据之Hudi数据湖_基本概念_时间轴_TimeLine---大数据之Hudi数据湖工作笔记0005

然后看一下hudi的,时间轴概念,很简单了,就是之前说的时间旅行,其实就是 比如在某个时间点,记录,这个时间点做了什么,就是这个意思 然后像回去看看的时候,可以找到这个时间点做了什么 一个时间点就是一个Instant (时刻 瞬间的意思) 可以看到时刻的解释 instant 时刻instant包…

【信创】 JED on 鲲鹏(ARM) 调优步骤与成果 | 京东云技术团队

项目背景 基于国家对信创项目的大力推进&#xff0c;为了自主可控的技术发展&#xff0c;基础组件将逐步由国产组件替代&#xff0c;因此从数据库入手&#xff0c;将弹性库JED部署在 国产华为鲲鹏机器上(基于ARM架构)进行调优&#xff0c;与Intel (X86)进行性能对比。 物理机…

基于全息感知的智慧高速IT设施监控运维方案

作为智能交通的重要细分领域&#xff0c;建设智慧高速是实施交通强国战略的重要基础。在信息化时代&#xff0c;交通行业已经依托信息化建设取得了显著的成果&#xff0c;其中以收费网络、办公网络、监控网络和通讯网络为基础的网络架构已经形成&#xff0c;并且正在逐步完善网…

Nginx proxy_set_header参数设置

一、不设置 proxy_set_header Host 不设置 proxy_set_header Host 时&#xff0c;浏览器直接访问 nginx&#xff0c;获取到的 Host 是 proxy_pass 后面的值&#xff0c;即 $proxy_host 的值&#xff0c;参考Module ngx_http_proxy_module 1 2 3 4 5 6 7 8 # cat ngx_header.c…

NIO基础-ByteBuffer,Channel

文章目录 1. 三大组件1.1 Channel1.2 Buffer1.2 Selector 2.ByteBuffer2.1 ByteBuffer 正确使用姿势2.2 ByteBuffer 结构2.3 ByteBuffer 常见方法分配空间向 buffer 写入数据从 buffer 读取数据mark 和 reset字符串与 ByteBuffer 互转分散度集中写byteBuffer黏包半包 3. 文件编…

简历石层大海,为何今年秋招那么难?技术面考官想听啥?

上个月发完关于《2023年的IC求职究竟有多难&#xff1f;》文章&#xff0c;后台就出现很多私信&#xff0c;大家都在频繁的问秋招的事情&#xff0c;今年的秋招提前批让很多人直接破防&#xff0c;感觉书读了那么久&#xff0c;学校也还不错&#xff0c;但是为什么企业招聘的简…

单车模型:横向动力学

文章目录 1 模型推导2 参考资料 较高车速下&#xff0c;不能再假设车轮朝向和车轮速度一致。因此运动学模型在这里的误差就会比较大&#xff0c;必须要考虑动力学模型。 现考虑2自由度单车模型&#xff0c;如下图所示。2自由度表示为&#xff1a; 车辆横线位置 y y y&#xff…

2023-2024-1 高级语言程序设计实验一: 选择结构

7-1 古时年龄称谓知多少&#xff1f; 输入一个人的年龄&#xff08;岁&#xff09;&#xff0c;判断出他属于哪个年龄段 &#xff1f; 0-9 &#xff1a;垂髫之年&#xff1b; 10-19&#xff1a; 志学之年&#xff1b; 20-29 &#xff1a;弱冠之年&#xff1b; 30-39 &#…

Docker开启远程访问+idea配置docker+dockerfile发布java项目

一、docker开启远程访问 1.编辑docker服务文件 vim /usr/lib/systemd/system/docker.servicedocker.service原文件如下&#xff1a; [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target docker.socke…

【深蓝学院】手写VIO第7章--VINS初始化和VIO系统--笔记

0. 内容 1. VIO回顾 整个视觉前端pipeline回顾&#xff1a; 两帧图像&#xff0c;可提取特征点&#xff0c;特征匹配&#xff08;描述子暴力匹配或者光流&#xff09;已知特征点匹配关系&#xff0c;利用几何约束计算relative pose([R|t])&#xff0c;translation只有方向&…

2023年中国睡眠检测仪产量、销量及市场规模分析[图]

睡眠检测仪行业是指生产和销售用于监测和评估人类睡眠质量和睡眠相关指标的设备和工具的行业。睡眠检测仪可以通过监测人体的脑电图、心率、呼吸、体动等生理信号&#xff0c;来评估睡眠的深度、时长、睡眠阶段的分布等信息&#xff0c;帮助人们了解自己的睡眠状况&#xff0c;…

一款轻量级事件驱动型应用程序框架

QP™/C 实时嵌入式框架 &#xff08;RTEF&#xff09; 是专为实时嵌入式 &#xff08;RTE&#xff09; 系统量身定制的活动对象计算模型的轻量级实现。QP 既是用于构建由活动对象&#xff08;参与者&#xff09;组成的应用程序的软件基础结构&#xff0c;也是用于以确定性方式执…

有更新:2023华为HCIA+HCIP最全Datacom题库解析(附全套文档赠送)

2023华为数通Datacom认证考试题库更新&#xff0c;答案解析&#xff1a; 1、所示的BGP/MPLS IP VPN场景&#xff0c;CE和PE之间运行0SPF协议&#xff0c;且区域号为0&#xff0c;当PE1和PE2的域标识符都为NULL时&#xff0c;PE2将向CE2发 送以下哪一类型的LSA? A.Type2 B.T…

了解三层架构:表示层、业务逻辑层、数据访问层

目录 背景&#xff1a; 三层架构 什么是三层: 分层的目的&#xff1a; 三层的结构关系​编辑 三层表现形式:​编辑 三层的优缺点&#xff1a; 总结: 背景&#xff1a; 三层架构是一种软件设计模式&#xff0c;可称为客户端-服务器-架构&#xff0c;把各个功能模块划分…

第二证券:汇金增持有望催化银行板块 白酒企稳信号凸显

昨日&#xff0c;两市股指盘中震动上扬&#xff0c;创业板指、科创50指数一度涨超1%&#xff0c;但沪指午后涨幅逐渐回落。到收盘&#xff0c;沪指涨0.12%报3078.96点&#xff0c;深成指涨0.35%报10084.89点&#xff0c;创业板指涨0.8%报2003.9点&#xff0c;科创50指数涨1.29%…

3.3 数据定义

思维导图&#xff1a; 前言&#xff1a; **核心概念**&#xff1a; - 关系数据库支持**三级模式结构**&#xff1a;模式、外模式、内模式。 - 这些模式中包括了如&#xff1a;模式、表、视图和索引等基本对象。 - SQL的数据定义功能主要包括了模式定义、表定义、视图和索引的定…

AnolisOS升级SSH,不升级SSL

由于ssh有漏洞需要升级&#xff0c;但是为了最小化升级不影响ssl&#xff0c;因为ssl里面带了加密库&#xff0c;系统中很多核心服务的加密都是用ssl进行加密的&#xff08;像网络服务&#xff0c;系统用户登录等&#xff09;&#xff0c;如果ssl升级出现不兼容&#xff0c;就可…

【Python语义分割】Segment Anything(SAM)模型全局语义分割代码+掩膜保存(二)

我上篇博文分享了Segment Anything&#xff08;SAM&#xff09;模型的基本操作&#xff0c;这篇给大家分享下官方的整张图片的语义分割代码&#xff08;全局&#xff09;&#xff0c;同时我还修改了一部分支持掩膜和叠加影像的保存。 1 Segment Anything介绍 1.1 概况 Meta A…

201、RabbitMQ 之 Exchange 典型应用模型 之 工作队列(Work Queue)

目录 ★ 工作队列介绍代码演示测试注意点1&#xff1a;注意点2&#xff1a; ★ 工作队列介绍 工作队列&#xff1a; 就是让多个消费者竞争消费同一个消息队列的消息&#xff0c;相当于多个消费者共享消息队列。 ▲ RabbitMQ可以让多个消费者竞争消费同一个消息队列 ▲ 消息队…