matlab根据shp文件裁剪nc数据

这篇具有很好参考价值的文章主要介绍了matlab根据shp文件裁剪nc数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

%% 将NC数据文件按照SHP格式的边界进行提取
clear  % 清除变量
clc    % 清屏
%%
% 设置文件路径和文件名
ncFilePath = 'E:/photovoltaic/cmip6_data/history/tas_MMM.nc';
shpFilePath = 'E:/photovoltaic/中国七大地理分区shp/2020Chinashp/China7/dongbei.shp';
newNcFilePath = 'E:/photovoltaic/cmip6_data/historicalERA5/extracted_data.nc';

% 读取NC数据文件
ncData = ncread(ncFilePath, 'data');
t=ncread(ncFilePath,'time');

% 读取东北地区的SHP文件
shpStruct = shaperead(shpFilePath);

% 获取SHP文件的边界坐标
shpLat = [shpStruct.Y];
shpLon = [shpStruct.X];

% 确定提取区域的经纬度范围
latRange = [min(shpLat), max(shpLat)];
lonRange = [min(shpLon), max(shpLon)];

% 获取NC文件中的经纬度数据
latData = ncread(ncFilePath, 'lat');
lonData = ncread(ncFilePath, 'lon');

% 确定经纬度范围的索引
latIndices = find(latData >= latRange(1) & latData <= latRange(2));
lonIndices = find(lonData >= lonRange(1) & lonData <= lonRange(2));

% 提取对应区域的数据
extractedData = ncData(lonIndices, latIndices, :);

% 创建新的NC文件来保存提取的数据
newLatData = latData(latIndices);
newLonData = lonData(lonIndices);
nccreate(newNcFilePath, 'data', 'Dimensions', {'lon', numel(newLonData), 'lat', numel(newLatData),'z',360}, 'FillValue','disable');
nccreate(newNcFilePath, 'lon', 'Dimensions', {'lon', numel(newLonData)}, 'Format', 'classic');
nccreate(newNcFilePath, 'lat', 'Dimensions', {'lat', numel(newLatData)}, 'Format', 'classic');
nccreate(newNcFilePath,'time','Dimensions',{'z',360});

ncwrite(newNcFilePath, 'lon', newLonData);
ncwrite(newNcFilePath, 'lat', newLatData);
ncwrite(newNcFilePath,'time',t);
ncwrite(newNcFilePath, 'data', extractedData);

% 显示保存成功消息
disp('数据已从NC文件中提取并保存为新的NC文件。');

注意,当新建了nc文件但中途报错时需要把新建的文件删除重新跑;
我的nc数据是三维的,lonlattime,可以根据自己的数据维度对代码进行修改,可以通过ncinfo查看数据格式;文章来源地址https://www.toymoban.com/news/detail-551749.html

到了这里,关于matlab根据shp文件裁剪nc数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用MATLAB读取.nc文件单像元数值并转为Excel格式(以中国日降雨量月均数据为例)

     以中国日降雨量月均数据(nc文件包含12月)为例,提取某经纬度下的多月份像元值。 (【数据分享】1960-2020年中国1公里分辨率月降水数据集) 一、确定经纬度所在行列 号 以 92.18E,30.475N 为例,首先在Matlab中输入以下代码: 工作区获取到lat、lon和pre的信息,打开lat和lon文件

    2024年02月07日
    浏览(32)
  • web前端之行为验证码、不同设备和屏幕尺寸呈现不同大小、元素宽度根据视口宽度进行调整、元素或图片裁剪、图片验证码

    1、版本一的样式比较齐全; 2、版本二的JS逻辑和功能效果比较完善,且是别人的代码,后续会对样式进行完善。[Gitee | 哔哩哔哩]; 3、两个版本各有千秋,主要学习里面的一些技巧,这里主要介绍版本一的样式技巧; 4、行为验证码一般是后端实现,而且大概率是使用第三方

    2024年04月17日
    浏览(41)
  • 使用MATLAB将NC(netCDF)文件转换为栅格TIF格式

    要用MATLAB将NC(netCDF)文件转换为栅格TIF格式,可以使用Geotiffwrite函数,并需要首先安装Satellite Toolbox工具箱。 ```matlab % 添加path路径以调用依赖包函数 addpath(\\\'C:ProgramDataMATLABSupportPackagesR2021atoolboxsatellite\\\'); addpath(\\\'C:ProgramDataMATLABSupportPackagesR2021atoolboxsatellitesupportpackage

    2024年01月24日
    浏览(29)
  • shp文件与数据库(创建shp文件)

    前面把shp文件中的内容读取到数据库,接下来就把数据库中的表变成shp文件。 暂时不读取数据库的表,先随机创建一个shp文件。既然是随机的,这就需要使用到faker这个第三方库,代码如下。 运行代码 在桌面的out文件中生成faker_data.shp文件,如下图所示 查看生成shp文件中的

    2024年02月01日
    浏览(30)
  • NC文件读取及批量转为TIFF-史上最详细讲解-含代码(ArcGIS/MATLAB)

    何为NC文件,如何读取,如何批量转为TIFF(ArcGIS/MATLAB) 相信有好多遥感、地信、地理的同学经常会用到全球月均降水数据/气温等数据,而该类数据常以NC文件保存,大家拿到手后常常会迷惑,这是一种什么数据格式,如何读取,又如何转为我们熟悉的栅格数据。今天来为大

    2024年01月21日
    浏览(30)
  • 使用matlab批量裁剪栅格数据

    以下是使用MATLAB批量裁剪栅格数据的步骤: 1. 首先,导入需要裁剪的栅格数据和裁剪范围。可以使用MATLAB中的`geotiffread`函数读取栅格数据,使用`shaperead`函数读取裁剪范围。 2. 然后,使用`geotiffcrop`函数对每个栅格数据进行裁剪。可以使用循环语句遍历每个栅格数据并进行裁

    2024年02月12日
    浏览(76)
  • 使用matlab批量裁剪矢量数据

    使用MATLAB批量裁剪矢量数据的详细过程: 1. 首先,需要将需要裁剪的矢量数据文件保存在一个文件夹中,例如 \\\"C:Vector Data\\\"。 2. 在MATLAB中,使用 `cd` 命令将当前工作目录更改为包含矢量数据文件的文件夹。例如: ```matlab cd(\\\'C:Vector Data\\\'); ``` 3. 使用 `dir` 函数获取当前文件夹

    2024年02月13日
    浏览(30)
  • JS-27 前端数据请求方式;HTTP协议的解析;JavaScript XHR、Fetch的数据请求与响应函数;前端文件上传XHR、Fetch;安装浏览器插件FeHelper

    早期的网页都是通过后端渲染来完成的,即服务器端渲染(SSR,server side render): 客户端发出请求 - 服务端接收请求并返回相应HTML文档 - 页面刷新,客户端加载新的HTML文档; 服务器端渲染的缺点: 当用户点击页面中的某个按钮向服务器发送请求时,页面本质上只是一些数

    2024年02月16日
    浏览(48)
  • Python| 水文 |批量读取NC文件降水数据并导出为Excel相应格式

    ①首先需要在网上下载相应whl的安装包 (注意:一定要保证版本与Python解释器版本一致,比如我的解释器是3.11版本,电脑是windows64位的系统,那么就选择netCDF4-1.6.5-cp311-cp311-win_amd64.whl进行下载) 在网上看到过一些下载地址,但是好多没法用,这里提供一个,不需要梯子:

    2024年04月28日
    浏览(30)
  • MATLAB根据数据拟合曲线

    阿楠 零基础入门matlab教程基础版 阿楠 Simulink 模型创建 Matlab simulink建模与仿真视频教程

    2024年02月01日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包