MATLAB: Plot a precipitation grid, Matlab

interpolant

Hi, I want to plot a precipitation grid across the extent of my DEM.
The data I have are for 8 locations and show 2 things: (i) lat/long; (ii) total precip for each location.
Can you help me use the meshgrid and scatteredinterpolant functions to do this?
Here are the data:
%Lat Long Total Precip (mm)
53.2879 -1.57772 1020
53.406 -1.73752 981
53.3642 -1.70167 1002
53.3362 -1.74618 1500
53.3147 -1.7017 1807
53.274 -1.69155 1492
53.2494 -1.61264 1325
53.227 -1.609 997
% Define the data
lat=precip_data(:,1);
lon=precip_data(:,2);
total_precip=precip_data(:,3);
% Do I need to change the lat/long corrdinates to projected UTM?
% DEM coordinate system is CT_TransverseMercator / OSGB1936 datum.
% How do I create the meshgrid and scatteredInterpolant for each of the 8 data?

Best Answer

  • Try this:
    D = [53.2879 -1.57772 1020
    53.406 -1.73752 981
    53.3642 -1.70167 1002
    53.3362 -1.74618 1500
    53.3147 -1.7017 1807
    53.274 -1.69155 1492
    53.2494 -1.61264 1325
    53.227 -1.609 997];
    N = 20; % Size Of Interpolation Vectors/Matrices
    Ltv = linspace(min(D(:,1)), max(D(:,1)), N); % Latitude Vector For Interpolation
    Lnv = linspace(min(D(:,2)), max(D(:,2)), N); % Longitude Vector For Interpolation
    [Ltm,Lnm] = ndgrid(Ltv, Lnv); % Matrices For Interpolation
    Pm = griddata(D(:,1), D(:,2), D(:,3), Ltm, Lnm); % Interpolate
    figure
    surf(Ltm, Lnm, Pm)
    grid on
    view(40,40)
    xlabel('Latitude')
    ylabel('Longitude')
    zlabel('Precipitation (Interpolated)')
    Change 'N’ to get different results.
    .