爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: 022

[源程序] MATLAB读nc文件及创建写入nc

  [复制链接]

新浪微博达人勋

发表于 2014-12-28 18:10:06 | 显示全部楼层
谢谢分享,支持
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-4 15:12:42 | 显示全部楼层
给力给力~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-1-4 15:24:29 | 显示全部楼层
说明挺仔细的,容易看懂,3q~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-5 10:30:14 | 显示全部楼层
谢谢分享!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-1-5 13:25:02 | 显示全部楼层

嗯嗯,初学者,分享了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-7 00:08:12 | 显示全部楼层
看看clc,clear;
ncid = netcdf.open('D:\precip.mon.1981-2010.ltm.nc','NOWRITE'); %打开nc文件
ncdisp('precip.mon.1981-2010.ltm.nc'); %在命令窗中显示nc文件的变量

PrecipData  = ncread('precip.mon.1981-2010.ltm.nc','precip'); %读入变量precip
TimeData  = ncread('precip.mon.1981-2010.ltm.nc','time'); %读入变量time
LonData  = ncread('precip.mon.1981-2010.ltm.nc','lon'); %读入变量lon
LatData  = ncread('precip.mon.1981-2010.ltm.nc','lat'); %读入变量lat
Valid_yr_countData  = ncread('precip.mon.1981-2010.ltm.nc','valid_yr_count'); %读入变量validprecip_yr_count
ClimatologyData  = ncread('precip.mon.1981-2010.ltm.nc','climatology_bounds'); %读入变量climatology_bounds

[X, Y] = meshgrid(LatData,LonData);
contourf(Y-180.0,X,PrecipData(:,:,9)); %画9月份等值面图
shading flat; %去掉等值线
colorbar('SouthOutside','Position',[0.142,0.03,0.75,0.04]); %添加颜色条 [左右,上下,长,宽]

load coast %加载全球海岸线,但是不显示出来
geoshow(lat,long); %显示出海岸线,lat和long是coast的属性
hold on;

set(gca,'LineWidth',1,'FontSize',10,'Ylim',[-90,90],'Xlim',[-180,180],'Position',[0.142,0.09,0.75,0.84]...
   ,'XTick',[-180:60:180],'XTicklabel',{'-180W','-120W','-60W','0','60E','120E','180E'}...
   ,'YTick',[-90:30:90],'YTicklabel',{'-90S','-60S','-30S','0','30N','60N','90N'}); %添加经纬度信息
hold off;

netcdf.close(ncid); %关闭nc文件



批量读取nc文件的方法:
clc;  %清屏
clear; %清空
datadir='D:\data\降水数据\CPC Unified Gauge-Based Analysis of Daily Precipitation over CONUS\'; %指定批量数据所在的文件夹
filelist=dir([datadir,'*.nc']); %指定批量数据的类型
a=filelist(1).name; %查看你要读取的文件的编号。filelist(1).name在window下为第一个标号数据
b=filelist(2).name; %查看你要读取的文件的编号。filelist(2).name在window下为第二个标号数据
k=length(filelist);
for s=1:k
  filename=[datadir,filelist(s).name];
  ncid=netcdf.open(filename,'NC_NOWRITE');
  ncdisp('D:\data\降水数据\CPC Unified Gauge-Based Analysis of Daily Precipitation over CONUS\precip.V1.0.1948.nc'); %在命令窗中显示nc文件的变量
  %任意取其中一个来看数据中所包含的变量特征,以为下面读取数据变量做铺垫
  % ncid = netcdf.open('D:\data\降水数据\CPC Unified Gauge-Based Analysis of Daily Precipitation over CONUS\precip.V1.0.1948.nc','NOWRITE'); %打开nc文件
  % ncdisp('D:\data\降水数据\CPC Unified Gauge-Based Analysis of Daily Precipitation over CONUS\precip.V1.0.1948.nc'); %在命令窗中显示nc文件的变量
  PrecipData  = ncread(filename,'precip'); %读入变量precip
  TimeData  = ncread(filename,'time'); %读入变量time
  LonData  = ncread(filename,'lon'); %读入变量lon
  LatData  = ncread(filename,'lat'); %读入变量lat
  netcdf.close(ncid);   % 关闭文件
end;

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-8 16:43:55 | 显示全部楼层
谢谢分享,辛苦了!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-10 17:33:56 | 显示全部楼层
请问楼主:属性'_FillValue'和'missing_value'有何区别?为什么我照楼主这样写'_FillValue','-9.99e+33'报错,而改成'_FillValue',double(-9.99e+33)就可以了?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-13 12:42:27 | 显示全部楼层
支持一下。学习学习。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-1-27 11:00:03 | 显示全部楼层
不错,先收着
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表