1 |
function [bathy_obj]=load_cs_bathy(csg_obj,gdir,fname,prec); |
2 |
% |
3 |
% Load cube sphere bathymetry |
4 |
% e.g. load_cs_bathy(csg,'t32','bathy.bin','float64'); |
5 |
% returns bathymetry and polygons that define bathymetry. |
6 |
% |
7 |
|
8 |
% 1 - Read land |
9 |
ng=csg_obj.ng; |
10 |
nb=csg_obj.nb; |
11 |
nr=csg_obj.nr; |
12 |
nxd=nb+1+nr+1+ng+1+nb+1; |
13 |
nyd=ng+1+nb+1+nr+1; |
14 |
|
15 |
fnam=sprintf('%s/%s',gdir,fname); |
16 |
fid=fopen(fnam,'r','ieee-be'); |
17 |
tmparr=ones(ng*6*ng,1); |
18 |
tmparr=fread(fid,ng*ng*6,prec); |
19 |
tmparr=reshape(tmparr,[ng*6,ng]); |
20 |
fclose(fid); |
21 |
bathyarr=ones(nxd,nyd)*12345.6789; |
22 |
for i= 1:6 |
23 |
ilog=csg_obj.ilog(i); |
24 |
jlog=csg_obj.jlog(i); |
25 |
fx=csg_obj.fx(i); |
26 |
fy=csg_obj.fy(i); |
27 |
ihi=ilog+fx-1;jhi=jlog+fy-1; |
28 |
tmp=tmparr((i-1)*ng+1:i*ng,1:ng); |
29 |
bathyarr(ilog:ihi,jlog:jhi)=reshape(tmp,[fx fy]); |
30 |
end |
31 |
bathyarr(find(bathyarr==12345.6789))=NaN; |
32 |
|
33 |
% Do some plots on a lat-lon figure |
34 |
clf |
35 |
axis([-180 180 -90 90]);hold on; |
36 |
xg=csg_obj.gridarr(:,:,csg_obj.xgpos); |
37 |
yg=csg_obj.gridarr(:,:,csg_obj.ygpos); |
38 |
clear xc yc; |
39 |
nc=0; |
40 |
np=0; |
41 |
clear xcoord ycoord; |
42 |
xcoord=ones(2,ng*ng*6*4); |
43 |
ycoord=ones(2,ng*ng*6*4); |
44 |
for t=1:6 |
45 |
ilo=csg_obj.ilog(t);jlo=csg_obj.jlog(t); |
46 |
ihi=csg_obj.ilog(t)+csg_obj.fx(t); |
47 |
jhi=csg_obj.jlog(t)+csg_obj.fy(t); |
48 |
nlo=nc+1; |
49 |
nhi=nc+(ihi-ilo)*(jhi-jlo); |
50 |
a=bathyarr(ilo:ihi-1,jlo:jhi-1); |
51 |
c(nlo:nhi)=a(:); |
52 |
nc=nc+(ihi-ilo)*(jhi-jlo); |
53 |
|
54 |
end |
55 |
%clf |
56 |
%patch(px,py,c,'Edgecolor','none'); |
57 |
%patch(px,py,'r','Edgecolor','none'); |
58 |
|
59 |
%set(gcf,'PaperSize',[16 8]); |
60 |
%set(gcf,'PaperPosition',[0 0 16 8]); |
61 |
%set(gca,'Position',[0 0 1 1]); |
62 |
%print -djpeg100 -r600 -painters foo.jpeg |
63 |
|
64 |
bathy_obj.bathyarr=bathyarr; |
65 |
bathy_obj.c=c; |
66 |
|
67 |
return |