在地图上显示netCDF数据时出现问题

时间:2019-02-07 19:24:56

标签: matlab mapping netcdf geo

我目前正在使用Van Donkelaar的大气化学家小组的PM2.5地理数据。链接到文件在这里。

http://fizz.phys.dal.ca/~atmos/martin/?page_id=140

我正在尝试在MATLAB中映射此数据。

我将提供我的代码,但是当前我正在尝试使用“ geoshow”功能在Linux服务器上的MATLAB 2013a中映射此数据。我可以很好地显示地图,但出现错误“警告:CData必须为double或uint8。 警告:每次运行代码时,矩阵尺寸必须一致,而不是渲染网格”四次。

clear all;
close all;
folder_name = uigetdir;
% Display the file contents
filename = 'GlobalGWR_PM25_GL_201601_201612-RH35_NoDust_NoSalt.nc'
ncdisp(filename)
%% Read the Info
info = ncinfo(filename);

%% Display the variables names
nVar = size(info.Variables, 2);
disp('Variable names are:')
for ii = 1:nVar
    disp(info.Variables(ii).Name);
end

%% Read Variables
lat = ncread(filename,'LAT');
lon = ncread(filename, 'LON');
pm = ncread(filename, 'PM25');
pm_s = pm(:,:,1);
%% Mapping Texas
figure 
usamap('Massachusetts')
Masshi = shaperead('usastatehi','UseGeoCoords', true, ...
    'Selector', {@(name) strcmpi(name,'Massachusetts'), 'Name'});
geoshow(Masshi, 'FaceColor', [0.3 1.0, 0.675])

textm(Masshi.LabelLat, Masshi.LabelLon, Masshi.Name, ...
    'HorizontalAlignment', 'center')
[x,y] = ndgrid(lat,lon);
mesh(double(lat),double(lon),single(pm_s));
geoshow(lat,lon,pm_s, 'DisplayType', 'Surface')

当前,作为状态我收到“警告:CData必须为double或uint8。 警告:矩阵尺寸必须一致,而不是呈现网格“错误。

我希望看到PM2.5数据映射到我正在显示的地图上,有点像热图!

谢谢你,最好的, 泰勒

0 个答案:

没有答案