太阳光度计CE-318数据处理

news2024/9/21 5:48:46

太阳光度计CE-318数据处理

备注:处理公式
在这里插入图片描述
在我国近海,α的值在0到3之间,所以他们相对误差最大不超过25%,而通过查阅相关资料,北京地区α的值可以近似的取1.665

大气是不断运动的,气溶胶在短时间内也可能会发生很大的变化,而MODIS传感器和AERONET观测站并不能保证在同一时刻获取数据,所以,经过查阅相关资料,根据Ichoku等人的研究结论,MODIS数据从30km×30km到90km×90km范围内变化对窗口平均值的影响比较小[52],而Zhao等人也认为100km/上1h的时空匹配窗口是最合适的[53。因此,本文对AERONET观测站周围90km×90km的区域进行空间采样,取MODIS卫星遥感数据前后1h范围内的AERONET观测数据的平均值进行反演结果的对比

一、数据下载

下载链接:https://aeronet.gsfc.nasa.gov/cgi-bin/draw_map_display_aod_v3
在这里插入图片描述
在右侧地图中选择需要的站点、等级数据

二、数据处理

2.1太阳光度计550nm数据计算

y:550nm
x:500nm
y=[(550/500)^(-ɑ)]* x

2.2太阳光度计时间转换

[~,~,raw]=xlsread('D:\study\AOD\2021beijing\550.xls');
%[num,txt,raw]num数值,txt字符串,raw数值与字符串
data=raw(1:10900,:);

时间hh:mm:ss改为(自定义选项)hhmm
请添加图片描述

类型更改

在这里插入图片描述
提取的hhmm数字转文本

字符串提取hh和mm:

 =TEXT(LEFT(F3,2),"00")     前两个字符
 =TEXT(RIGHT(F3,2),"00")    后两个字符
 =TEXT(MIN(F3,3,2),"00")  %%中间 
 转为数值

a指数

=-((LN(D2/F2))/(LN(440/870)))
=((550/500)^(-G2))*E2   AOD_550nm_500
=((550/440)^(-G2))*D2   AOD_550nm_440
=((550/500)^(-1.665))*E2    AOD_550nm_固定

(2)数据处理代码.m

clc;
clear;
%%%将太阳光度计站点原始数据提取,加工
%%%1、day 2、h,m的转换 3440,500,870nm数据 4、a指数 5550nm数据

%%%更改路径csv_path即可  D:\study\CE-318\北京N39.977,E116.381\
csv_path=  'D:\study\CE-318\北京-CAMS(39.933牛顿,116.317牛顿)\';   %文件夹路径 
path_list = dir(strcat(csv_path,'*.csv'));  %dir 函数 列出当前目录下所有子文件夹和文件%
list_num = length(path_list);%%文件数量
Day = 1;  %天数
P = 2;    %小时
p = 3;    %分钟
A = 4;    %870nmAOD
B = 5;    %500nmAOD
C = 6;    %440nmAOD
D = 7;    %a指数
E = 8;    %500nm的550nmAOD
F = 9;    %440nm的550nmAOD
G = 10; %北京固定a指数550nmAOD

for i=1:list_num
    filename = [csv_path,path_list(i).name];  %获取文件信息,以便最后取名
    yearname = path_list(i).name(1:4);
    AAA = [];   %每一次循环清空AAA
    delete('AAA.xls'); 
    AAA = take(filename,[1, Inf]);   %take为函数,提取太阳光度计时间,数值等原始信息
    writetable(AAA, 'AAA.xls');      %提取的AAA数据为table数据,writetable写入为xls
    [~,~,raw] = xlsread('AAA.xls');  %读取xls数据,包括字符串
    raw(2:8,:)=[];    %删除前几行空白      
    raw(1,:)={0,0,0,0,0};  %取表格头为0 
    time= raw(:,1);        
    day = raw(:,2);        %%%%分别获取相应列数据
    a = raw(:,3);
    b = raw(:,4);
    c = raw(:,5);
    
    [K,n]=size(time);  %获取数据量K
    for k=2:K   %循环每一行数据
    T = time{k};%%%读取cell时{}为数值;()为cell原数据类型
    dd = day{k};
    aa = a{k};
    bb = b{k};
    cc = c{k};
    
    if length(T)>17    %字符串长度length
    H = T(11:12);      %根据字符串长度判断,获取时间信息,H小时,M分钟
    M = T(14:15);
    H = str2num(H);
    M = str2num(M);
    elseif length(T)>9
        H = T(11);
        M = T(13:14);
        H = str2num(H);
        M = str2num(M);
    else
        H = 0;
        M = 0;
    end
    P = vertcat(P,H);        %将每一次数据垂直方向拼接
    p = vertcat(p,M);
    
    DD = -((log10(cc/aa))/(log10(440/870)));
    EE = ((550/500)^(-DD))*bb;%%500的
    FF = ((550/440)^(-DD))*cc;%%440的
    GG = ((550/500)^(-1.665))*bb;%%固定
    
    Day = vertcat(Day,dd);   %将每一次数据垂直方向拼接
    A = vertcat(A,aa);
    B = vertcat(B,bb);
    C = vertcat(C,cc);
    D = vertcat(D,DD);
    E = vertcat(E,EE);
    F = vertcat(F,FF);
    G = vertcat(G,GG);
    end
    DATA = horzcat(Day,P,p,A,B,C,D,E,F,G); %水平拼接
%     DATA = horzcat(Day,P,p,A,B,C,D,E,F);
    Day = 1;
    P = 2;
    p = 3;
    A = 4;
    B = 5;
    C = 6;
    D = 7;
    E = 8;
    F = 9;
    G = 10;
    xlswrite(strcat(csv_path,yearname,'.xlsx'),DATA); %自定义命名将DATA写入表格
end

2.3 制作表格:太阳光度计数据天数时间对标modis天数时间

clc;
clear;
%制作表格:太阳光度计数据天数时间对标modis天数时间

data = xlsread('D:\study\AOD\2021beijing\data.xls');
data = data(:,1:10);
sunday = data(:,2);
sunhour =data(:,9);
sunss = data(:,10);
P =[1,2,3,4];
J=1;
a=0

Files = dir(fullfile('D:\study\AOD\2021beijing\tiff\*.tif')); % 读取文件夹内的mat格式的文件
LengthFiles = length(Files); %所有文件的数量


% for i=1:LengthFiles

for i=1:70 
name=Files(i).name;           %读取struct变量的格式
day = name(15:17);
day = str2num(day);   %字符串转数字
hour = name(19:20);
hour = str2num(hour);
ss = name(21:22);
ss  = str2num(ss);

A = 0;
B = 0;

if(sunday(J)~=day)
K = J-a
I = i+1
Name=Files(I).name;           %读取struct变量的格式
Day = Name(15:17);
Day = str2num(Day);   %字符串转数字
if (i>1 && dday==day)
    J=J-a;
elseif(sunday(J)==Day)
    k=-1;
    D =horzcat(day,A,B,0);
    P=vertcat(P,D);
    continue
end
end

    
s = 60;
S = 0;
a = 0;
for j=J:J+100
    if(sunday(j)==day)
        a=a+1;
    end
end
for j=J:J+a-1
        if(sunhour(j)==hour)
            S = abs(sunss(j)-ss);
            if(S<s)
                s = S;
                k = j;
                A = data(j,7);%level1
                B = data(j,8);
            end
        end
end
J
A
a

s = 240;
S = 0;
if (A==0)
for j=J:J+a-1
    if(sunhour(j)~=hour)
        H = abs(sunhour(j)-hour)-1
        if (sunhour(j)<hour)
        S=H*60+(60-sunss(j)+ss);
        else
            S= H*60+(60-ss+sunss(j));
        end
        if(S<s)
            s = S;
            k=j;
            A = data(j,7);
            B = data(j,8);   
        end
    end
end
end
J= J+a
k%选择数据的行数
D =horzcat(day,A,B,k);
P=vertcat(P,D);
dday=day
end

xlswrite ('D:\study\AOD\2021beijing\data1.xls', P);
p=xlsread('D:\study\AOD\2021beijing\data1.xls');

2.4 提取modis数据对应到太阳光度计数据

clc;
clear;

data=xlsread('D:\study\AOD\2021beijing\data1.xls');
P =[1,2,3,4];
j = 2;
Files = dir(fullfile('D:\study\AOD\2021beijing\TIFF\*.tif')); % 读取文件夹内的mat格式的文件
LengthFiles = length(Files); %所有文件的数量

for i=1:LengthFiles
name=Files(i).name;           %读取struct变量的格式
day = name(15:17);
day = str2num(day);   %字符串转数字
folder=Files(i).folder;
[Data,R] = geotiffread(strcat(folder,'\',name)); 
    
% [Data,R] = geotiffread('D:\study\AOD\158.tif');

row = R.RasterSize(1);
col = R.RasterSize(2);
X = (R.LatitudeLimits(2)-39.977)/R.RasterExtentInLatitude;
Y = (116.381-R.LongitudeLimits(1))/R.RasterExtentInLongitude;
x = floor(X*row);  %指定经纬度所在行列
y = floor(Y*col);

a = Data(:,:,1);
A = a(x,y);
b = Data(:,:,2);
B = b(x,y);
c = Data(:,:,3);
C = c(x,y);
D = horzcat(day,A,B,C);
if (D(1)==data(j-1))
    P=vertcat(P,D);
end
if (D(1)==data(j))
P=vertcat(P,D);
j=j+1;
end
end

xlswrite ('D:\study\AOD\2021beijing\data2.xls', P);
p=xlsread('D:\study\AOD\2021beijing\data2.xls');

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

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

相关文章

【网络安全】https协议的加密方案避免中间人攻击(MITM攻击)导致的数据泄露风险

目录 引言 概念准备 中间人 加密 数据摘要 && 数据指纹 数字签名 密钥加密 中间人攻击 CA证书 https加密的解决方案 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 http在应用层协议中是明文传输协议&#xff0c;它是通信双方传输数据时的一种约定。【…

超声波便携式气象站:精准监测,随身携带

在追求高效与便捷的今天&#xff0c;超声波便携式气象站以其独特魅力脱颖而出&#xff0c;成为众多行业及户外爱好者的理想选择。超声波便携式气象站采用多采集装置一体式设计&#xff0c;不仅实现了体积的小型化与重量的轻量化&#xff0c;更便于用户随身携带&#xff0c;随时…

期权杠杆与期货杠杆的区别是什么?

期权与股指期货在杠杆性上展现出截然不同的特性&#xff0c;这些特性对投资者的策略选择具有深远影响。首先&#xff0c;股指期货采用保证金制度&#xff0c;其杠杆比例是恒定的&#xff0c;无论市场如何波动&#xff0c;投资者在月初设定的十倍杠杆到月尾仍保持不变。相比之下…

STM32常见的下载方式有三种

经过对比&#xff0c;推荐使用 SWD下载&#xff0c;只需要一个仿真器&#xff08;如jLINK、ST LINK、 CMSIS DAP 等&#xff09;&#xff0c;比较方便。 不推荐使用串口下载&#xff08;速度慢、无法仿真和调试&#xff09;和 JTAG 下载&#xff08;占用 IO 多&#xff09;。

Java语言程序设计基础篇_编程练习题*16.7 (设置时钟的时间)

*16.7 (设置时钟的时间) 编写一个程序&#xff0c;显示一个时钟&#xff0c;并通过在三个文本域中输入小时、分钟和秒 钟来设置时钟的时间&#xff0c;如图16-38b 所示。使用程序清单14-21的ClockPane改变时钟大小使其居于面板中央 习题思路 实例化一个ClockPane(在程序清单1…

【网络安全渗透测试零基础入门必知必会】之什么是文件包含漏洞分类(非常详细)零基础入门到精通,收藏这一篇就够了

一、前言 这是大白给粉丝盆友们整理的网络安全渗透测试入门阶段文件包含渗透与防御第1篇。 本文主要讲解什么是文件包含漏洞、本地文件包含漏洞 喜欢的朋友们&#xff0c;记得给大白点赞支持和收藏一下&#xff0c;关注我&#xff0c;学习黑客技术。 一、什么是文件包含漏洞…

the request was rejected because no multipart boundary was found

文章目录 1. 需求描述2. 报错信息3. 探索过程1. 使用postman 排除后端错误2. 搜索网上的解决方法3. 解决方法 1. 需求描述 想要在前端上传一个PDF 发票&#xff0c;经过后端解析PDF之后&#xff0c;将想要的值自动回填到对应的输入框中 2. 报错信息 org.apache.tomcat.util.…

VSCode远程调试Linux程序

VS 安装CodeRunner插件 菜单→添加配置→lunch.json中设置如下&#xff1a; program填入要调试的文件 {"version": "0.2.0","configurations": [{"name": "gdb renderPng","type": "cppdbg","re…

为什么某央企可以抓到红队攻击,而你不行?

国家HVV行动从2016年到2024年已经是第9年了&#xff0c;HVV行动目的就是保卫国家关键基础设施的网络安全行动&#xff0c;更是一场实战化的网络攻击与防御实战&#xff0c;这些年来红队攻击手段层出不穷&#xff0c;最为典型的就是 0/N Day、弱口令、社工钓鱼等&#xff0c;也极…

北京青蓝智慧科技ITSS服务经理:长安链ChainBridge“链桥”问世 加速国家级区块链网络互联互通

8月5日&#xff0c;据国家区块链技术创新中心消息&#xff0c;我国首个完全自主控制的区块链软硬件技术系统——长安链&#xff0c;正式推出了全场景技术平台ChainBridge“链桥”。 此平台能够支持所有异构和同构的区块链进行协作&#xff0c;满足跨领域、跨地域、跨行业及跨层…

用Java手写jvm之模拟方法调用指令invokexxx和方法返回指令xreturn

写在前面 源码 。 本文一起看下方法调用相关的指令invokexxx以及方法返回&#xff08;栈帧弹出线程栈&#xff09;相关的指令xReturn 。 1&#xff1a;正文 因为invokexxx指令和普通的指令不同&#xff0c;会创建一个新的栈帧&#xff0c;并压倒操作数栈中&#xff0c;所以我…

《黑神话:悟空》在PS5上优化得不错 能达到2K/60帧

《黑神话&#xff1a;悟空》是今年最受玩家期待的游戏之一&#xff0c;但许多粉丝担心该作优化不佳&#xff0c;因为其使用的是虚幻5引擎。虚幻5引擎会导致性能问题出现&#xff0c;游戏 科学的新作也将面临同样问题。但有新报告称&#xff0c;《黑神话》PS5版优化得相当不错&a…

UE 后期处理

UE4后期处理材质的一些应用&#xff08;上&#xff09; - 哔哩哔哩 (bilibili.com) UE4后期处理材质的一些应用&#xff08;下&#xff09; - 哔哩哔哩 (bilibili.com) 后期处理材质的作用 后期处理材质使您能够设置与后期处理一起使用的材质&#xff0c;以创建破坏的视觉屏幕…

免费【2024】springboot 二手图书交易系统的设计与实现

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

PyCharm找不到Python了咋办

Python发生了重装的&#xff0c;且新的路径和原有路径不同&#xff0c;就会出现如下的错误&#xff1a; 解决办法&#xff1a; 点开PyCharm菜单的File/Setting 然后&#xff1a; 有上图的提示&#xff0c;说明需要将原来的venv进行清空。 如此操作之后&#xff0c;原来的红色…

交通预测数据文件梳理:PEMS04

文章目录 前言一、PEMS04.csv文件二、adj_PEMS04.pkl文件三、adj_PEMS04_distance.pkl文件四、PEMS04.npz文件 前言 最近做的实验比较多&#xff0c;对于交通预测数据的各种文件和文件中的数据格式理解愈加混乱&#xff0c;因此打算重新做一遍梳理来加深实验数据集的理解&…

【矩阵对角线求和】求一个3*3矩阵对角线元素之和

求一个3*3矩阵对角线元素之和&#xff0c;使用C语言实现 具体代码&#xff1a; #include<stdio.h>int main(){float a[3][3],sum0;printf("请输入3x3矩阵的元素&#xff08;按行输入&#xff09;&#xff1a;\n");for(int i0;i<3;i){for(int j0;j<3;j)…

AD 飞线显示混乱、错位

执行Design->Netlist->Update Free Primitives From Componet Pads

8月6(信息差)

&#x1f30d;华为最便宜小折叠&#xff01;华为nova Flip今晚发布&#xff1a;搭载麒麟8000芯片 从曝光的跑分信息来看&#xff0c;nova Flip将搭载麒麟8000处理器&#xff0c;也就是nova 12 Pro/Ultra的同款&#xff0c;采用8核心的134组合&#xff0c;大核是1颗2.4GHz的Cor…

如何用ai来完成数据库分析(1)

前言 因一些课程设计要写长篇分析报告&#xff0c;这里借用ai做一篇指导教程&#xff0c;分上下两篇。这篇也会教如何让ai给你你想要的答案&#xff0c;众所周知&#xff0c;现在的ai并不智能&#xff0c;不针对各类厂家&#xff0c;但是放出来的确实表象如此。 但其实问法决…