# Hi, I'd like to see the temperature on a surface map of lon (-20 20) and lat (-10 10).I'd like to have an idea so that this script gives me a better visual like on the figure?

10 views (last 30 days)
Ebolo Nkongo on 25 Mar 2024
Commented: Ebolo Nkongo on 28 Mar 2024
```if true
%annual average surface temperature map for the gulf of guinea
%%Define variables
clear all ; close all;clc
lon = ncfile.LONGITUDE ;nx = length(long) ;%obtains longiturdes and their size
lat = ncfile.LATITUDE ; ny = length(lat) ; %obtains latitudes and their size
time = ncfile.DATE ; nt = length(time) ; %reads the time variable and obtains its size
sst = ncfile.x_DEG_C ; %gets sea surface temperature value
%initialisation
N=100
lon0=-20; lon1=20; lat0=-10:lat1=10;
x=linespace(lon0,lon1,N);
y=linespace(lat0,lat1,N);
end
if true
%ineterpolate temperature
[X,Y]=meshgrid (lon,lat) S=scartteredInterpolant (lon,lat, sst);
Z=S(X,Y);
m_proj('miller',...
'lat',[min(y(:)) max(y(:))],...
'lon',[min(x(:)) max(x(:))])
m_pcolor(X,Y,Z);
m_coast('patch',[.7 .7 .7])
m_grid('box','fancy')
colorbar
title(' SST from 2005 to 2007');
```
``` end
|My problem is that the interpolation gives extremely large values. Can anyone come up with an idea to get interpolation values that more or less reflect reality? Or perhaps another method of displaying my data on a map similar to the one I sent? Initially my temperature is below 30 but this method gives me temperatures above 60 which doesn't suit me. Any help is welcome.Thanks in advance |```

KSSV on 28 Mar 2024
You need to make the values lying outside the given scattered points to NaN. For outside values, the function will extrapolate which gives higher values.
clc; clear all ;
%annual average surface temperature map for the gulf of guinea
%%Define variables
lon = T.LONGITUDE ; nx = length(lon) ;%obtains longiturdes and their size
lat = T.LATITUDE ; ny = length(lat) ; %obtains latitudes and their size
time = T.DATE ; nt = length(time) ; %reads the time variable and obtains its size
sst = T.x_DEG_C ; %gets sea surface temperature value
%initialisation
N=100 ;
lon0=-20; lon1=20; lat0=-10; lat1=10;
x=linspace(lon0,lon1,N);
y=linspace(lat0,lat1,N);
%ineterpolate temperature
[X,Y]=meshgrid (lon,lat);
S=scatteredInterpolant(lon,lat, sst);
S.ExtrapolationMethod = 'none' ; %<---- this does the trick
Z=S(X,Y);
%
m_proj('miller',...
'lat',[lat0 lat1],...
'lon',[lon0 lon1])
m_pcolor(X,Y,Z);
m_coast('patch',[.7 .7 .7])
m_grid('box','fancy')
colorbar
title(' SST from 2005 to 2007');
Ebolo Nkongo on 28 Mar 2024

Thanks you

### Categories

Find more on Purple in Help Center and File Exchange

R2019a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!