- 积分
- 14
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-11-29
- 最后登录
- 1970-1-1

|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
【科研干货】气象站点(经纬度坐标)与其对应的栅格,网格数据怎么来提取?有时候需要对另外一个网格数据进行验证对比其精度。用以下方法可以实现。
clc;clear %Author Dr. Liucheng Shen & Date: 02/01/2022 & Institution: Shanghai Normal University
[num,~,~]=xlsread('C:\Users\admin\Desktop\paper\Exposure to Pre\站点信息.xls');%读取YRD地区的站点信息
num=num(:,2:3); %所有的地面站点的经纬度信息,在这两列中
LLat=36:-0.25:26;
LLon=114:0.25:124;
Data=zeros(185,3);
for i=1:185 %185个站点,依次排列的
Lonti=num(i,2);
Lati=num(i,1);
%% 经度的判断
S=floor(Lonti); %S 是经度Lonti的整数部分
Z=Lonti-S; %Z 是经度Lonti的小数部分
if Z<0.125 %判断条件① %如96.68 则小数0.68 取经度96.75的范围
Lon=S;
end
if Z>=0.125 & Z<0.375 %判断条件② %有整数经纬度如100,没有100.50
Lon=S+0.25; %如果一个数是100,那么取100.25(100-100.5区间),也就是靠右不靠左
end
if Z>=0.375 & Z<0.625 %判断条件③
Lon=S+0.5;
end
if Z>=0.625 & Z<0.875 %判断条件④
Lon=S+0.75;
end
if Z>=0.875 %判断条件⑤
Lon=S+1;
end
%%
%% 纬度的判断
M=floor(Lati); %S 是纬度的整数部分
N=Lati-M; %Z 是纬度的小数部分
if N<0.125 %纬度判断条件①
Lat=M;
end
if N>=0.125 & N<0.375 %纬度判断条件②
Lat=M+0.25;
end
if N>=0.375 & N<0.625 %纬度判断条件③
Lat=M+0.5;
end
if N>=0.625 & N<0.875 %纬度判断条件④
Lat=M+0.75;
end
if N>=0.875 %纬度判断条件⑤
Lat=M+1;
end
%% 定位
jingdu=find(LLon==Lon); %查找经度的列号
weidu=find(LLat==Lat); %查找纬度的行号
%写了个185行,3列的数据
Data(i,1)=i; %
Data(i,2)=weidu;
Data(i,3)=jingdu;
% Data=C(i,weidu,jingdu);
% Data=Data'; %原先是列,现在要把他变成行
% xlswrite('C:\Users\admin\Desktop\hahaha.xlsx',Data,['A',num2str(i),':PP',num2str(i)]);
disp(i)
end
我再提供一种思路,就是每个站点的经纬度坐标与所有的网格的中心点坐标进行根号下x平方加y平方,得到的距离最小的,就是最近网格。 希望大家喜欢本次干货分享。
|
|