Plotting data on curvilinear coord projection
古いコメントを表示
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);
S = shaperead('landareas','UseGeoCoords',true);
surfacem(lat, lon, inpdata)
shading interp
geoshow([S.Lat], [S.Lon],'Color','black');
回答 (3 件)
KSSV
2016 年 7 月 1 日
0 投票
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 件のコメント
mashtine
2016 年 7 月 1 日
Dushantha Sandaruwan WIJENDRA NAIDHELAGE
2022 年 8 月 3 日
Is ther anyway to convert the covarian projection (meshgird) into noramal Longitude and latitudes?
Jonathan Eliashiv
2016 年 10 月 18 日
編集済み: Jonathan Eliashiv
2016 年 10 月 18 日
Super simple actually.
Go ahead and reshape your coordinates and data into 1-d vectors:
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
pcolor(lon_grid,lat_grid,data_rectilinear); shading flat
カテゴリ
ヘルプ センター および File Exchange で Vector and Raster Map Display についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!