爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15720|回复: 18

[netcdf] NetCDF数据集(.nc)怎么形成矢量图?

[复制链接]

新浪微博达人勋

发表于 2015-4-17 21:45:31 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本人是遥感方面的研究生,最近导师要我下载NECP的气象数据,我下到的都是NetCDF数据集(文件后缀名为.nc),之前几天学习了怎么读取该数据,在grads中也可以成图。提取出研究区域的数据后,在ArcGIS中可以通过插值形成矢量图。但是会有好多年的数据需要这样操作。
想求问大家,这个数据有什么其他方式可以,更直接的形成矢量图吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-17 23:26:26 | 显示全部楼层
矢量图指的什么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-18 10:20:57 | 显示全部楼层
MeteoInfo 发表于 2015-4-17 23:26
矢量图指的什么?

就是在ArcGIS或者ENVI中能读取出来,参与栅格计算或者波段运算的格式
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-18 12:50:05 | 显示全部楼层

以下的代码可把NC输出成ArcGIS支持的tif格式:
  1. clc %清屏
  2. clear %清内存变量
  3. cd('F:\Data');
  4. % filename1='PrepCN_1961.nc';
  5. % ncdisp(filename1)
  6. % longitude=ncread(filename1,'lon');
  7. % latitude =ncread(filename1,'lat');
  8. % precipitation=ncread(filename1,'prep');
  9. % % precipitation=(1.467e-06).*precipitation+0.048066;
  10. % precipitation=precipitation.*1000;
  11. % precipitation(precipitation<50)=0;
  12. % aa=sum(precipitation(:,:,:),3);
  13. % pcolor(aa')

  14. filenames = ls('*.nc');%以字符串数组的形式列出该路径下所有的txt文件
  15. [m n] = size(filenames);%获取filenames的行列数
  16. for j = 1:m
  17. precipitation=ncread(char(filenames(j,:)),'prep');
  18. precipitation(precipitation(:,:,:)==-999)=0;
  19. precipitation(precipitation(:,:,:)<25)=0;
  20. precipitation(precipitation(:,:,:)<50 &precipitation(:,:,:)>=25)=1;
  21. precipitation(precipitation(:,:,:)>=50)=0;
  22. aa=sum(precipitation(:,:,:),3);
  23. clear precipitation;
  24. Rain=double(aa');
  25. clear aa;

  26. ncname=char(filenames(j,1:11));
  27. R = georasterref('RasterInterpretation','postings');
  28. R.RasterSize = [69 126];
  29. R.LatitudeLimits  = [19.75 53.75];
  30. R.LongitudeLimits = [73.25 135.75];
  31. R.ColumnsStartFrom='north';
  32. R.RowsStartFrom='west';
  33. geotiffwrite(ncname,Rain,R)
  34. JDT=[ncname,'转换完毕!'];
  35. disp(JDT)
  36. end
复制代码
以实现
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-18 12:51:29 | 显示全部楼层

以下的代码可把NC输出成ArcGIS支持的tif格式:
  1. clc %清屏
  2. clear %清内存变量
  3. cd('F:\Data');
  4. % filename1='PrepCN_1961.nc';
  5. % ncdisp(filename1)
  6. % longitude=ncread(filename1,'lon');
  7. % latitude =ncread(filename1,'lat');
  8. % precipitation=ncread(filename1,'prep');
  9. % % precipitation=(1.467e-06).*precipitation+0.048066;
  10. % precipitation=precipitation.*1000;
  11. % precipitation(precipitation<50)=0;
  12. % aa=sum(precipitation(:,:,:),3);
  13. % pcolor(aa')

  14. filenames = ls('*.nc');%以字符串数组的形式列出该路径下所有的txt文件
  15. [m n] = size(filenames);%获取filenames的行列数
  16. for j = 1:m
  17. precipitation=ncread(char(filenames(j,:)),'prep');
  18. precipitation(precipitation(:,:,:)==-999)=0;
  19. precipitation(precipitation(:,:,:)<25)=0;
  20. precipitation(precipitation(:,:,:)<50 &precipitation(:,:,:)>=25)=1;
  21. precipitation(precipitation(:,:,:)>=50)=0;
  22. aa=sum(precipitation(:,:,:),3);
  23. clear precipitation;
  24. Rain=double(aa');
  25. clear aa;

  26. ncname=char(filenames(j,1:11));
  27. R = georasterref('RasterInterpretation','postings');
  28. R.RasterSize = [69 126];
  29. R.LatitudeLimits  = [19.75 53.75];
  30. R.LongitudeLimits = [73.25 135.75];
  31. R.ColumnsStartFrom='north';
  32. R.RowsStartFrom='west';
  33. geotiffwrite(ncname,Rain,R)
  34. JDT=[ncname,'转换完毕!'];
  35. disp(JDT)
  36. end
复制代码
以实现
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-18 12:51:45 | 显示全部楼层
tltb09125006 发表于 2015-4-18 10:20
就是在ArcGIS或者ENVI中能读取出来,参与栅格计算或者波段运算的格式


以下的代码可把NC输出成ArcGIS支持的tif格式:
clc %清屏
clear %清内存变量
cd('F:\Data');
% filename1='PrepCN_1961.nc';
% ncdisp(filename1)
% longitude=ncread(filename1,'lon');
% latitude =ncread(filename1,'lat');
% precipitation=ncread(filename1,'prep');
% % precipitation=(1.467e-06).*precipitation+0.048066;
% precipitation=precipitation.*1000;
% precipitation(precipitation<50)=0;
% aa=sum(precipitation(:,:,:),3);
% pcolor(aa')

filenames = ls('*.nc');%以字符串数组的形式列出该路径下所有的txt文件
[m n] = size(filenames);%获取filenames的行列数
for j = 1:m
precipitation=ncread(char(filenames(j,:)),'prep');
precipitation(precipitation(:,:,:)==-999)=0;
precipitation(precipitation(:,:,:)<25)=0;
precipitation(precipitation(:,:,:)<50 &precipitation(:,:,:)>=25)=1;
precipitation(precipitation(:,:,:)>=50)=0;
aa=sum(precipitation(:,:,:),3);
clear precipitation;
Rain=double(aa');
clear aa;

ncname=char(filenames(j,1:11));
R = georasterref('RasterInterpretation','postings');
R.RasterSize = [69 126];
R.LatitudeLimits  = [19.75 53.75];
R.LongitudeLimits = [73.25 135.75];
R.ColumnsStartFrom='north';
R.RowsStartFrom='west';
geotiffwrite(ncname,Rain,R)
JDT=[ncname,'转换完毕!'];
disp(JDT)
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-4 21:47:53 | 显示全部楼层
学习中,正在研究中呢,共同学习
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-29 08:45:35 | 显示全部楼层
kongfeng0824 发表于 2015-4-18 12:50
以下的代码可把NC输出成ArcGIS支持的tif格式:
以实现

如果将非NECP的NetCDF数据转成tif,怎么做呢?
kongfeng0824
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-2 16:53:21 | 显示全部楼层
共同学习  共同进步
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-18 11:13:14 | 显示全部楼层
楼主,用那个代码问题解决了么
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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