clear  % 清除变量
clc    % 清屏%% 1、读取数据
info1 = ncinfo('pr_Amon_bcc-csm1-1_rcp45_r1i1p1_200601-209912.nc'); % 查看变量
info2 = ncinfo('pr_Amon_bcc-csm1-1_rcp45_r1i1p1_210001-230012.nc'); % 查看变量
lon = ncread('pr_Amon_bcc-csm1-1_rcp45_r1i1p1_200601-209912.nc','lon'); % 读取经度
lat = ncread('pr_Amon_bcc-csm1-1_rcp45_r1i1p1_200601-209912.nc','lat');  % 读取纬度
time1 = ncread('pr_Amon_bcc-csm1-1_rcp45_r1i1p1_200601-209912.nc','time');  % 读取时间
time2 = ncread('pr_Amon_bcc-csm1-1_rcp45_r1i1p1_210001-230012.nc','time');  % 读取时间
pr1 = ncread('pr_Amon_bcc-csm1-1_rcp45_r1i1p1_200601-209912.nc','pr',[1,1,890],[inf,inf,inf])*30*24*60*60;  % 读取208001-209912月的数据
pr2 = ncread('pr_Amon_bcc-csm1-1_rcp45_r1i1p1_210001-230012.nc','pr',[1,1,1],[inf,inf,12])*30*24*60*60;  % 读取210001-210012月的数据%% 2、转换时间格式
t0 = datetime(2006,1,1);                % 设置初始时间
% date_yyymmdd = t0 + double(time(:))/24;    % time为距2006年1月1日00时的小时数一维数组
t1 = t0 + time1(:);            % time为距2006年1月1日00时的日数一维数组
t1.Format = 'yyyyMMdd';           % 转换成任意想要的时间格式,'yyyyMMMdd','yyyyMMMMdd','MM月dd日'
t_str1 = datestr(t1,'yyyymm');   % datetime数据类型转为char类型
t_num1 = str2num(t_str1);          % char类型转为数组doublet0 = datetime(2100,1,1);                % 设置初始时间
t2 = t0 + time2(:);            % time为距2100年1月1日00时的日数一维数组
t2.Format = 'yyyyMMdd';           % 转换成任意想要的时间格式,'yyyyMMMdd','yyyyMMMMdd','MM月dd日'
t_str2 = datestr(t2,'yyyymm');   % datetime数据类型转为char类型
t_num2 = str2num(t_str2);          % char类型转为数组double%% 3、选出中国各省区域经纬度格点,匹配经纬度时间降水量
shp = shaperead('C:\Users\ZHAN\Desktop\20210123\gadm36_CHN_shp\gadm36_CHN_1.shp');[mlon,mlat] = meshgrid(lon,lat);
r = 1;
for i = 1 : size(mlon,1)for j = 1 : size(mlat,2)xq(r,1) = mlon(i,j);yq(r,1) = mlat(i,j);r = r + 1;end
endexcel_data = []; excel_name = []; rr = 1;
for i = 1 : length(shp)iname = shp(i).NAME_1in = inpolygon(xq, yq, shp(i).X, shp(i).Y); % 判断哪些格点在省界内pd = sort(in,'descend');  % 将逻辑0、1按降序排列,目的为了判断是否有格点在省界内,如果有,则第一个值必定是1,否则0if pd(1) %即如果第一个值为真,则开始后续计算lon_lat = [xq(in),yq(in)]; %省界内的网格点经纬度% 找出lon_lat所在行数r1 = 1; r2 = 1; mark_lon_lat = [];for j = 1 : size(lon_lat,1)for k = 1 : length(lon)if lon_lat(j,1) == lon(k,1) & lon_lat(j,2) == lat(k,1)mark_lon_lat(r1,1) = k;  % 找出省界内经度\纬度所在行数r1 = r1 + 1;endendend% 提取降水值name_add = [];for ii = 1 : length(mark_lon)data1(ii,:) = [pr1(mark_lon(ii,1),mark_lat(ii,1),1:239)]; %前一阶段时间的降水数据data2(ii,:) = [pr2(mark_lon(ii,1),mark_lat(ii,1),1:12)];  %后一阶段时间的降水数据name_add{ii} = name;end% 整合降水数据和省份temp = [data1,data2]';  temp_name = name_add;excel_data = [excel_data,mean(temp,2)];
%         excel_name = [excel_name,temp_name];excel_name{rr} = shp(i).NAME_1; % 省份名rr = rr + 1;clear lon_lat data1 data2end
end
excel_data_time = [[t_num1(890:end);t_num2(1:12)],excel_data]; %添加了时间的2080-2100数据

MATLAB按省份提取nc格点数据相关推荐

  1. ncl 添加点shp文件_气象编程 | NCL高效快速精准提取不规则区域内的格点数据

    添加新云天气象主编微信或QQ:130188121,及时获取或发布气象升学.就业.会议.征稿及学术动态等信息! 通常情况下,要获取某个区域内的格点数据,如果要求不是很高,直接采取矩形框挑选方法--即锁定 ...

  2. MATLAB figure中提取数据

    MATLAB figure中提取数据 (2011-10-26 14:26:21) 转载▼ 标签: 杂谈 分类: matlab figure画出来,提取数据有很多好处,方便保存,计算,加工,还可以导入到 ...

  3. matlab数据变成一列数据,matlab读取excel表格列数据-matlab导入excel后,怎么把数据提取成一列?...

    怎么用matlab读取excel表格中的一列十六进制数据? x=xlsread('oillack.xls','sheet1','a1:a73') excel文件名是oillack.xls,sheet1 ...

  4. 批量提取多个Excel文件内指定单元格的数据(文件名和数据)

    批量提取多个Excel文件内指定单元格的数据(文件名和数据) 例如收集了excel表格统一格式的个人简历,从中抽取个人基本信息,生成数据表. 将源数据excel文件放在同一个文件夹下. 新建一个sho ...

  5. MATLAB根据经纬度格网数据画地图

    worldmap([20 60],[70 140])%描绘出中国地图的轮廓 %陆地水格网数据显示 geoshow(gca,data,refvec,'DisplayType','texturemap') ...

  6. python处理nc数据_python中的.nc文件处理 | 04 利用矢量边界提取NC数据

    利用矢量边界提取.nc数据 import os import numpy as np import pandas as pd import matplotlib.pyplot as plt impor ...

  7. 利用matlab从图片中提取曲线坐标数据

    目录 0.引言 1.思路详解与分析 2.MATLAB程序 0.引言   在读文献的时,经常遇到这样的情况:文章里提出的方法好有趣啊,好想拿文中用的数据来试试看看能不能得到相近的结果,可是文中只有根据原 ...

  8. 利用arcgis提取.nc气象数据

    利用arcgis提取.nc文件中的降水量数据 1.导入.nc文件 这是18年降水量数据集,可以直接将nc文件拖入arcgis中 2.提取降水量 在工具栏中找到"创建NetCDF表视图&quo ...

  9. python使用xlwings提取excel表中所有单元格的数据

    有时我们需要使用一个excel表中所有单元格的数据来进行操作,可以使用循环来实现,我对比了一下,使用xlwings直接提取成列表,速度最快. 记录一下我的操作. Excel数据(测试数据)如图,有部分 ...

最新文章

  1. 关于域名解析到服务器的问题
  2. 他为华裔写了几封信......
  3. 视觉SLAM笔记(4) SLAM的数学表述
  4. python第七章文件和数据格式化选择题_python第七章-文件和数据格式化
  5. Jenkins自动化UI测试Tomcat报错“The web application [/jenkins] appears to have started a thread named”解决办法...
  6. 小米平板4twrp一键刷入工具_不要浪费小米10的双扬声器!杜比全景音刷入教程分享...
  7. 常用坐标系汇总(更新)
  8. 360校招笔试题总结1
  9. 投稿状态(status)记录 IEEE wireless communications letters (IEEE WCL)
  10. 奥沙利文独家授权数字藏品正式发售 线上线下搭配多款专属福利
  11. PMBOK6 核对单和核查表的区别
  12. 解决黑群晖切换网络环境后无法访问的问题
  13. 如何构稳健的商品期cry组合
  14. 【产业互联网周报】奇安信科创板IPO过会;声网Agora登陆纳斯达克;国产光刻机双工件台供应商华卓精科科创板IPO获受理...
  15. 2月3日模拟赛分析及总结
  16. 数据结构分析:红黑树、B+树
  17. 给定经纬度计算距离_根据经纬度计算两地间的距离
  18. 【用户头像】功能实现学习记录
  19. c语言开发深圳,2020年深圳杯C题
  20. 项目(2)——注释转换工具

热门文章

  1. 电脑借液晶电视显示器出现雪花点的另类解决办法
  2. java排列序数_JAVA排序数字字母混合
  3. Rosetta如何连接隐私计算与AI?道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  4. 进来看看什么叫大师(太强了)
  5. 李飞飞计算机视觉-自用笔记(第一周)
  6. 2022年广西桂林导游资格考试综合试题及答案
  7. 四、T100应收管理之其他应收立账
  8. ethernet phy 的 strap pin 电阻值的确定
  9. 【Tips】购车、提车注意事项
  10. Linux开源硬件,关于开源硬件