MATLAB按省份提取nc格点数据
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格点数据相关推荐
- ncl 添加点shp文件_气象编程 | NCL高效快速精准提取不规则区域内的格点数据
添加新云天气象主编微信或QQ:130188121,及时获取或发布气象升学.就业.会议.征稿及学术动态等信息! 通常情况下,要获取某个区域内的格点数据,如果要求不是很高,直接采取矩形框挑选方法--即锁定 ...
- MATLAB figure中提取数据
MATLAB figure中提取数据 (2011-10-26 14:26:21) 转载▼ 标签: 杂谈 分类: matlab figure画出来,提取数据有很多好处,方便保存,计算,加工,还可以导入到 ...
- matlab数据变成一列数据,matlab读取excel表格列数据-matlab导入excel后,怎么把数据提取成一列?...
怎么用matlab读取excel表格中的一列十六进制数据? x=xlsread('oillack.xls','sheet1','a1:a73') excel文件名是oillack.xls,sheet1 ...
- 批量提取多个Excel文件内指定单元格的数据(文件名和数据)
批量提取多个Excel文件内指定单元格的数据(文件名和数据) 例如收集了excel表格统一格式的个人简历,从中抽取个人基本信息,生成数据表. 将源数据excel文件放在同一个文件夹下. 新建一个sho ...
- MATLAB根据经纬度格网数据画地图
worldmap([20 60],[70 140])%描绘出中国地图的轮廓 %陆地水格网数据显示 geoshow(gca,data,refvec,'DisplayType','texturemap') ...
- python处理nc数据_python中的.nc文件处理 | 04 利用矢量边界提取NC数据
利用矢量边界提取.nc数据 import os import numpy as np import pandas as pd import matplotlib.pyplot as plt impor ...
- 利用matlab从图片中提取曲线坐标数据
目录 0.引言 1.思路详解与分析 2.MATLAB程序 0.引言 在读文献的时,经常遇到这样的情况:文章里提出的方法好有趣啊,好想拿文中用的数据来试试看看能不能得到相近的结果,可是文中只有根据原 ...
- 利用arcgis提取.nc气象数据
利用arcgis提取.nc文件中的降水量数据 1.导入.nc文件 这是18年降水量数据集,可以直接将nc文件拖入arcgis中 2.提取降水量 在工具栏中找到"创建NetCDF表视图&quo ...
- python使用xlwings提取excel表中所有单元格的数据
有时我们需要使用一个excel表中所有单元格的数据来进行操作,可以使用循环来实现,我对比了一下,使用xlwings直接提取成列表,速度最快. 记录一下我的操作. Excel数据(测试数据)如图,有部分 ...
最新文章
- 关于域名解析到服务器的问题
- 他为华裔写了几封信......
- 视觉SLAM笔记(4) SLAM的数学表述
- python第七章文件和数据格式化选择题_python第七章-文件和数据格式化
- Jenkins自动化UI测试Tomcat报错“The web application [/jenkins] appears to have started a thread named”解决办法...
- 小米平板4twrp一键刷入工具_不要浪费小米10的双扬声器!杜比全景音刷入教程分享...
- 常用坐标系汇总(更新)
- 360校招笔试题总结1
- 投稿状态(status)记录 IEEE wireless communications letters (IEEE WCL)
- 奥沙利文独家授权数字藏品正式发售 线上线下搭配多款专属福利
- PMBOK6 核对单和核查表的区别
- 解决黑群晖切换网络环境后无法访问的问题
- 如何构稳健的商品期cry组合
- 【产业互联网周报】奇安信科创板IPO过会;声网Agora登陆纳斯达克;国产光刻机双工件台供应商华卓精科科创板IPO获受理...
- 2月3日模拟赛分析及总结
- 数据结构分析:红黑树、B+树
- 给定经纬度计算距离_根据经纬度计算两地间的距离
- 【用户头像】功能实现学习记录
- c语言开发深圳,2020年深圳杯C题
- 项目(2)——注释转换工具