立即注册 登录
气象家园 返回首页

斥鷃的个人空间 http://bbs.06climate.com/?9098 [收藏] [复制] [分享] [RSS]

留言板

facelist doodle涂鸦板

您需要登录后才可以留言 登录 | 立即注册


rosedream22 2019-4-8 12:10
您好,我的问题和有些人的可能一样——掩膜的问题,就是在提取中国边界内数据的时候发现得不到正确的结果。希望能得到您的指导
韩谕颉 2017-4-10 15:08
你好 我想问下你的云南的shp文件是哪里找的,我想找一个只有中国边界的。不知道哪里可以下。。。
binglan1991 2016-9-18 09:17
http://bbs.06climate.com/forum.php?mod=viewthread&tid=12221&fromuid=49450
大神您好,我看了您的这个帖子,但是关于我的NCEP数据单位问题还是很疑惑,能请您给我解答一下吗,非常感谢啊啊啊!!!http://bbs.06climate.com/forum.php?mod=viewthread&tid=47316&page=1#pid697302
kongfeng0824 2016-5-30 17:18
斥鷃: 程序太长了……你是调通没调通?简单看了一下,它里面公式用的差分方案网格还跟平常用的不大一样,可能要注意一下经纬度信息和矩阵行列标的匹配关系,其他感觉没 ...
调通了。可以画图。我在研究研究。谢谢!
kongfeng0824 2016-5-29 19:59
这是我整合的一段matlab计算水汽通量的程序。请你帮忙看看。我想画填色图。还想在此初上计算水汽通量散度。
kongfeng0824 2016-5-29 19:58
% 在网上搜到一段计算水汽通量的matlab程序:(出处http://blog.sina.com.cn/s/blog_4cfb5a620101cesh.html,原程序数据读取有些问题,已稍作改动)
% 资料:hgt.mon.mean.nc;uwnd.mon.mean.nc,vwnd.mon.mean.nc;shum.mon.mean.nc(比湿);
% 数据下载:http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.pressure.html
%% -------------------------------------------------------------------------------------------------------------------------------
clc    %清屏
clear  %清内存变量
cd('D:\BaiduYunDownload');
filename='hgt.mon.mean.nc';
ncdisp(filename)
% hgt1 = ncread('hgt.mon.mean.nc','hgt',[9 13 1 1],[65 37 8 806],[1 1 1 1]);
% lon  = ncread('hgt.mon.mean.nc','lon',9,65,1);
% lat  = ncread('hgt.mon.mean.nc','lat',13,37,1);
hgt1 = double(ncread('hgt.mon.mean.nc','hgt',[9 13 1 1],[65 37 8 793],[1 1 1 1]));
lon1  = double(ncread('hgt.mon.mean.nc','lon',9,64,1));
lat1  = double(ncread('hgt.mon.mean.nc','lat',13,37,1));
j=1;
for i=6:12:740
    hgt(:,:,:,[j,j+1,j+2])=squeeze(hgt1(:,:,:,[i,i+1,i+2]));
    j=j+1;
end
logc1=hgt<0;
hgt(logc1)=0.0;
sum11=62*3-sum(logc1);
sum1=sum(hgt);
[ii]=find(sum11==0);
sum11(ii)=1;
hgtm=squeeze(sum1./sum11);
clear file f hgt hgt1 logc1 sum11 sum1 ii

%% -------------------------------------------------------------------------------------------------------------------------------
filename1='uwnd.mon.mean.nc';
ncdisp(filename1)
uwnd1 = double(ncread('uwnd.mon.mean.nc','uwnd',[9 13 1 1],[65 37 8 793],[1 1 1 1]));
j=1;
for i=6:12:740
    uwnd(:,:,:,[j,j+1,j+2])=squeeze(uwnd1(:,:,:,[i,i+1,i+2]));
    j=j+1;
end
logc1=uwnd>200;
uwnd(logc1)=0.0;
sum11=62*3-sum(logc1);
sum1=sum(uwnd);
[ii]=find(sum11==0);
sum11(ii)=1;
uwm=squeeze(sum1./sum11);
clear file f uwnd uwnd1 logc1 sum11 sum1 ii j

%%  -------------------------------------------------------------------------------------------------------------------------------
filename2='vwnd.mon.mean.nc';
ncdisp(filename2)
vwnd1 = double(ncread('vwnd.mon.mean.nc','vwnd',[9 13 1 1],[65 37 8 793],[1 1 1 1]));
j=1;
for i=6:12:740
    vwnd(:,:,:,[j,j+1,j+2])=squeeze(vwnd1(:,:,:,[i,i+1,i+2]));
    j=j+1;
end
logc1=vwnd>200;
vwnd(logc1)=0.0;
sum11=62*3-sum(logc1);
sum1=sum(vwnd);
[ii]=find(sum11==0);
sum11(ii)=1;
vwm=squeeze(sum1./sum11);
clear file f vwnd vwnd1 logc1 sum11 sum1 ii j

%% -------------------------------------------------------------------------------------------------------------------------------
filename3='shum.mon.mean.nc';
ncdisp(filename3)
shum1 = double(ncread('shum.mon.mean.nc','shum',[9 13 1 1],[65 37 8 793],[1 1 1 1]));
j=1;
for i=6:12:740
    shum(:,:,:,[j,j+1,j+2])=squeeze(shum1(:,:,:,[i,i+1,i+2]));
    j=j+1;
end
logc1=shum>2000;
shum(logc1)=0.0;
sum11=62*3-sum(logc1);
sum1=sum(shum);
[ii]=find(sum11==0);
sum11(ii)=1;
shm=squeeze(sum1./sum11);
clear file f shum shum1 logc1 sum11 sum1 ii j

%% -------------------------------------------------------------------------------------------------------------------------------
g = 9.8;
% qu = squeeze(sum((hgtm(:,1:7,:)-hgtm(:,2:8,:)).*(uwm(:,1:7,:)+uwm(:,2:8,:)).*(shm(:,1:7,:)+shm(:,2:8,:))/4,2));
% qv = squeeze(sum((hgtm(:,1:7,:)-hgtm(:,2:8,:)).*(vwm(:,1:7,:)+vwm(:,2:8,:)).*(shm(:,1:7,:)+shm(:,2:8,:))/4,2));
qu = squeeze(sum((hgtm(:,1:7,:)-hgtm(:,2:8,:)).*(uwm(:,1:7,:)+uwm(:,2:8,:)).*(shm(:,1:7,:)+shm(:,2:8,:))/4,2));
qv = squeeze(sum((hgtm(:,1:7,:)-hgtm(:,2:8,:)).*(vwm(:,1:7,:)+vwm(:,2:8,:)).*(shm(:,1:7,:)+shm(:,2:8,:))/4,2));
qu=qu/g;
qv=qv/g;
zz=sqrt(qu.*qu + qv.*qv);
[x,y] = meshgrid(lon1,lat1);
% quiver(x,y,-qu,-qv)
% hold on
% worldmap;
% axis([20 180 -30 60])
%% Import data
load coast
lonlim=[70 160];
latlim=[10 60];
[Lat,Lon]=meshgrid(lat1(1:1:end),lon1(1:1:end));
%% Figure
figure('Color', 'w')
axesm('MapProjection', 'Eqdcylin', 'MapLatLimit', latlim, 'MapLonLimit', lonlim);
framem on; gridm on; plabel on; mlabel('South')
setm(gca, 'MLineLocation', 10, 'PLineLocation', 10)
setm(gca, 'MLabelLocation', 10, 'PLabelLocation', 10)
setm(gca, 'fontsize', 20, 'fontname','times new roman')
tightmap; axis off; hold on
linem(lat, long, 'Color', 'k', 'LineWidth', 1.5)
% quiver
Handle=quiverm(Lat, Lon, -qv',-qu', 1.0); % <--------------------------- size: 2.0
set(Handle, 'Color', 'b', 'LineWidth', 1.0);
% hold on;
% [cs,hh]=contourfm(Lat, Lon, zz',0:100:max(zz),'linestyle','none');
% % contourcmap('jet', 'Colorbar', 'on',  'Location', 'vertical', 'TitleString', 'Contour Intervals in 100','fontsize', 20);
% colormap(jet(20));
% caxis([0 1350]);
% colorbar('location','eastoutside','fontsize', 20);
%% quiver label
labelx=[72 73];
labely=[12.5 13]; % location of label % <------- Use the actual grid distance of the data
labelu=[500 0];
labelv=[0 0]; % set 25m/s as a standard
scale_auto=Get_Autoscale(Lon, Lat, -qv',-qu');
scale_label=Get_Autoscale(labelx, labely,  labelu, labelv);
scale_factor=scale_auto/scale_label;
Handle=quiverm(labely, labelx, labelv, labelu, 2.0*scale_factor); % <----- size: 2.0*scale_factor
set(Handle, 'Color', 'r', 'LineWidth', 1.5)
textm(labely(1)+1.5, labelx(2), [num2str(labelu(1)) ' m/s'],...
    'FontWeight', 'bold', 'Color', 'r', 'FontName', 'times new roman', 'FontSize', 20)
% title('\fontsize{14}Water Vapor Flux', 'FontWeight', 'bold', 'FontName', 'Helvetica')
% print(gcf,'-r300','-djpeg','NCEP_Water Vapor Flux');
泰达巴神 2015-4-23 21:52
你好,问一个关于matlab输出数据用grads画图的问题:
我在matlab中计算了一个矩阵a(29,17,8),分别代表x,y,z方向,存储的语句为:
fid = fopen('D:\f\a.dat','w');
count = fwrite(fid,a,'float32');
fclose(fid);
接着用grads打开,当z=1时是可以画图的,但set z 2....也就是高层的时候,出现了错误
Entire grid contents are set to missing data
Grid limits of file:     X = 1 29  Y = 1 17  Z = 1 8  T = 1 1  E = 1 1
Grid limits of request:  X = 1 29  Y = 1 17  Z = 2 2  T = 1 1  E = 1 1
Warning issued for variable = v
Z的层次那里出问题了,请问该怎么办?
彭小清 2014-9-24 13:17
你好,看了你http://bbs.06climate.com/forum.php?mod=viewthread&tid=12340这个关于掩膜的帖子,可是还是没有明白怎么弄的,我现在遇到一个问题就是,我在处理CMIP5的数据,我想提取出中国的数据,我现在又中国区域的shapefile文件,CMIP5的数据是NC文件,我想请教一下大侠,这个问题到底要怎么处理啊,求指导,我的QQ1351520076  谢谢
阿吉木柯 2013-10-27 16:08
斥鷃: nan的暂时只是知道一些简单的运算可以滤过,比如nanmean是缺测求平均,nansum是缺测求和等等,具体你要用什么可以去查查,要是一些简单的运算前面加个nan应该可以 ...
哦好的谢谢你!我搜一下。我那个积分已经自己编了一个积分公式,和自带的水汽做过检验,基本上验证我的公式是对的^^到时候我有时间写个帖子^^谢谢你的帮助!
斥鷃 2013-10-25 23:15
nan的暂时只是知道一些简单的运算可以滤过,比如nanmean是缺测求平均,nansum是缺测求和等等,具体你要用什么可以去查查,要是一些简单的运算前面加个nan应该可以处理了。插值的话matlab有内置函数,比如二维的话用griddata,一维用int打头的什么的~有关插值论坛里还有大神发过帖的,建议搜搜。另外我写的那两个文件还有问题的,要是你用的话把积分方法改成欧拉积分才行,要不然和grads画的应该对不上。希望能帮到你。
阿吉木柯 2013-10-25 20:54
你好!请教你一个matlab一个问题。
就是我用的.nc文件地面气压有NAN值,请问怎么处理NAN值呢?插值的话用什么插值方法吗?你以前处理过吗?

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

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

返回顶部