爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 237|回复: 6

M_MAP画图出现局部横线

[复制链接]

新浪微博达人勋

发表于 2025-3-9 15:42:51 | 显示全部楼层 |阅读模式
20金钱
M_MAP画图为什么会出现右下角这样的问题?经纬度是从原始nc文件中读取的 P1是我在原始流流场数据算的 没有改变网格位置
出现了不止一次了 求大神解答

代码附上:
clc;
clear all;
close all;

u_file = 'D:\DATA\MPI_SSP585\uo_Omon_MPI-ESM1-2-LR_ssp585_r1i1p1f1_gn_207501-209412.nc';
lon=ncread(u_file,'longitude');
lat=ncread(u_file,'latitude');


UV=load('mpi_ssp585_uv_bhl');
P=UV.change_rate_uv;
P1=P(:,:,1);


figure('Units', 'normalized', 'OuterPosition', [0 0 1 1]); % 全屏显示
m_proj('miller', 'lon', [1,359], 'lat', [-65, 65]); % 全局地图 miller  robinson
m_pcolor(lon, lat, P1); % 绘制对数变换后的分布
% shading flat;
shading interp
m_coast('patch', [0.7 0.7 0.7], 'edgecolor', 'none');
m_grid('box', 'fancy', 'tickdir', 'in');
colorbar;
colormap(slanCM(104));
title('MPI-SSP585-时间序列变化率-UV的模');





CAS-SSP585-时间序列变化率-UV的模.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2025-3-9 15:44:56 | 显示全部楼层
顶顶
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2025-3-9 18:06:13 | 显示全部楼层
有没有大神
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2025-3-10 09:33:23 | 显示全部楼层
源文件给我看看
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2025-3-10 11:12:01 | 显示全部楼层
clc;
clear all;
close all;

%% 读取数据
u_file = 'D:\DATA\CAS_SSP585\uo_Omon_FGOALS-g3_ssp585_r1i1p1f1_gn_206501-210012.nc';
v_file = 'D:\DATA\CAS_SSP585\vo_Omon_FGOALS-g3_ssp585_r1i1p1f1_gn_206501-210012.nc';
u=ncread(u_file,'uo');
v=ncread(v_file,'vo');

%% 初始化变化率矩阵
change_rate_uv = NaN(360,218,30); % 存储每个网格点每月的UV模变化率

% 计算每个网格点的变化率:每个网格点的每层速度模与前一个月的差异
for lat = 1:360
    for lon = 1:218
        for layer = 1:30
            
            % 提取当前网格点的时间序列(U和V分量)
            u_series = squeeze(u(lat, lon, layer, :));  % 取U分量的时间序列
            v_series = squeeze(v(lat, lon, layer, :));  % 取V分量的时间序列
            
            % 计算UV模(速度大小)并去除NaN值
            uv_magnitude = sqrt(u_series.^2 + v_series.^2);
            
            % 处理NaN值并进行线性拟合
            if ~any(isnan(uv_magnitude))
               
                % v拟合
                v_series=v_series';
                t = 1:length(uv_magnitude);
        
                valid_data = ~isnan(uv_magnitude);
                t_clean = t(valid_data);
                x_clean = uv_magnitude(valid_data);
               p = polyfit(t_clean, x_clean, 1);
               slope = p(1);  
              change_rate_uv(lat,lon,layer)=slope;
      
            end
        end
    end
end

% 保存结果
save('cas_ssp585_uv_bhl.mat', 'change_rate_uv');

cas_ssp585_uv_bhl.mat

10.11 MB, 下载次数: 0

longitude.mat

106.65 KB, 下载次数: 0

latitude.mat

35.65 KB, 下载次数: 0

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

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2025-3-10 11:16:08 | 显示全部楼层

您好 原始nc文件上传不上来 我在评论区附上了 原始nc文件的经纬度数据 和 我算完的变化率变量数据,期待得到您的回复!万分感谢!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2025-3-10 11:31:29 | 显示全部楼层
这是CAS画图的程序 刚刚发现我一开始传的的MPI画图的程序


clc;
clear all;
close all;
%% 读取数据
% 读取原始数据
u_file = 'D:\DATA\CAS_SSP585\uo_Omon_FGOALS-g3_ssp585_r1i1p1f1_gn_206501-210012.nc';
% ncdisp(u_file);
lon=ncread(u_file,'longitude');
lat=ncread(u_file,'latitude');
UV=load('cas_ssp585_uv_bhl');
P=UV.change_rate_uv;
P1=P(:,:,1);

P10=P(:,:,10);


% 绘图
figure('Units', 'normalized', 'OuterPosition', [0 0 1 1]); % 全屏显示
m_proj('robinson', 'lon', [1,359], 'lat', [-65, 65]); % 全局地图 miller
m_pcolor(lon, lat, P1); % 绘制对数变换后的分布
% shading flat;
shading interp
m_coast('patch', [0.7 0.7 0.7], 'edgecolor', 'none');
m_grid('box', 'fancy', 'tickdir', 'in');
colorbar;
colormap(slanCM(104));
title('CAS-SSP585-时间序列变化率-UV的模');
% 保存图像
saveas(gcf, 'CAS-SSP585-时间序列变化率-UV的模.png');
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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