Interpolating point LAT,LON data to make gridded data
1 view (last 30 days)
Show older comments
I have lat,lon,z point values (not gridded), I want to interpolate z at 1.875x1.875 degree resolution.
The below code doesnot provide desired results.
clc
clear
addpath('Z:\CDT\chadagreene-CDT-dc37894\cdt\') %%using Chad Greene's CDT toolbox https://www.chadagreene.com/CDT/CDT_Contents.html
[LAT LON]=cdtgrid(1.875);%%making meshgrid for desired data
obs_data=xlsread('Z:\CP_c.csv');
loni = obs_data(:,2) ;
lati = obs_data(:,1) ;
% zi = interp2(LONi,LATi,xi,loni,lati) ;
F=scatteredInterpolant(loni,lati,obs_data(:,3),'linear','linear');%%%z=obs_data(:,5)
F.Method = 'linear';
vq1 = F(LAT,LON);
imagesc(vq1)
2 Comments
BN
on 30 Mar 2020
Edited: BN
on 30 Mar 2020
Hello
I'm not sure that is what you are looking for so I just post a comment instead of an answer. Here my achievement:
clear; clc;
% Add Chad Greene's CDT
addpath('Z:\CDT\chadagreene-CDT-dc37894\cdt\') %%using Chad Greene's CDT toolbox https://www.chadagreene.com/CDT/CDT_Contents.html
% Read csv file
obs_data=xlsread('CP_c.csv');
loni = obs_data(:,2) ;
lati = obs_data(:,1) ;
[LAT LON] = ndgrid(min(lati):1.875:max(lati), min(loni):1.875:max(loni));
%___________^^^^^^___^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
% zi = interp2(LONi,LATi,xi,loni,lati) ;
% make double in order to use in the next step
lati = double(lati);
loni = double(loni);
data = double (obs_data(:,3));
F=scatteredInterpolant(lati,loni,data,'linear','linear');%%%z=obs_data(:,5)
vq1 = F(LAT,LON);
imagesc(vq1)
Answers (0)
See Also
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!