我目前正在使用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数据映射到我正在显示的地图上,有点像热图!
谢谢你,最好的, 泰勒