# Plotting data on curvilinear coord projection

8 views (last 30 days)
mashtine on 1 Jul 2016
Hello,
I have two lat and lon matrices, each 622x810 and they are of a curvilinear projection. I previously just used vectors of lon and lat to plot my data with surfacem (see below) but I am not sure how to do this with lat and lon as a matrix of curvilinear coordinates.
Any suggestions?
ax = worldmap(latlim, lonlim);
surfacem(lat, lon, inpdata)
geoshow([S.Lat], [S.Lon],'Color','black');

KSSV on 1 Jul 2016
As you have matrices in hand, it shall be very easy to plot what you want. If you want to get vectors of lon, lat from 622x810 matrices of each, try using unique(); this will give you the vectors.
##### 2 CommentsShow 1 older commentHide 1 older comment
Is ther anyway to convert the covarian projection (meshgird) into noramal Longitude and latitudes?

José-Luis on 1 Jul 2016
It is not clear to me how you want those arrays displayed. If you only want to show the points:
geoshow(S.Lat(:), S.Lon(:),'Color','black');
##### 2 CommentsShow 1 older commentHide 1 older comment
José-Luis on 4 Jul 2016
I don't know what a matrix of curvilinear coordinates is.

Jonathan Eliashiv on 18 Oct 2016
Edited: Jonathan Eliashiv on 18 Oct 2016
Super simple actually.
X_curvi = reshape(lon,[],1);
Y_curvi = reshape(lat,[],1);
data_curvi = reshape(inpdata,[],1);
Make a meshgrid that you want to interpolate into:
[lon_grid,lat_grid] = meshgrid(minlon:dx:maxlon,minlat:dy:maxlat)
and then you can use the griddata function:
[~,~,data_rectilinear] = griddata(X_curvi,Y_curvi,data_curvi,...
lon_grid,lat_grid)
and plot away

### Categories

Find more on Vector and Raster Map Display 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!

Translated by