1

我已经从USGS下载了 GMTED2010 数字高程模型 (DEM) ,瓷砖 N30W120_150 和 N30W150_150。这是一个 500 m DEM。我想将这些加入到 matlab 中的文件中,所以我尝试了:

Z=[Z150 Z120]; %Join the dems at their matching side
R=R120; %Create a new spatial referencing object based on the old one.
R.Lonlim=[R150.Lonlim(1),R120.Lonlim(2)]; %Modify what changed in R
R.RasterSize=size(Z); %Adjust the RasterSize referenced in R.

这可行,但大约 1/3 是太平洋,出于大小/计算的考虑,我想将其移除。不过,重要的是要在 R 中保持引用信息的正确性。

%Crop DEM to remove most ocean pixels.  about a 1/3 of dem.
Z=Z(:,floor(20/0.0042):end); %crop Z from -90 to -130 (20 degrees from the start (-150) longitude at 0.0042 deg/pixel according to the referencing info
R.Lonlim=[-150.0001+floor(20/0.0042)*0.0042, -90.0001]; %substract number of pixels cropped times deg/pixel value
R.RasterSize=size(Z); %Adjust the RasterSize referenced in R.

问题是当我尝试查看特定位置的海拔时,例如:

lat=[39 38 47.22];
lat=dms2degrees(lat);
long=[-105 52 9.84];
long=dms2degrees(long);

hght=ltln2val(Z,R,lat,long);

hght 给出的值不正确。事实上,如果我看一下 lat,long 周围的一个子集:

[r c]=latlon2pix(R,lat,long);
Z(r-30:r+3,c-30:c+30)

in 的值hght甚至不在这个居中的子集中。我会理解我是否偏离了 1 个像素左右,但为什么我偏离了这么远?使用hght=ltln2val(Z,R,lat,long)WITHOUT 裁剪但仍结合使用会给出正确的(与 Z120 DEM 相同的值)值,所以我假设我的引用对象是错误的。

感谢有人可能提供的任何帮助。谢谢多米尼克

4

0 回答 0