裁剪DEM并保持适当的参考

时间:2012-10-19 02:03:51

标签: matlab mapping geospatial

我从the USGS下载了GMTED2010数字高程模型(DEM),磁贴N30W120_150和N30W150_150。这是一个500米的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周围的一个子集,长:

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

hght中的值甚至不在此居中的子集中。我知道我是不是大约1像素,但为什么我这么远?使用hght=ltln2val(Z,R,lat,long) WITHOUT裁剪但仍然合并得到正确的(与Z120 DEM相同的值)值,因此我假设我的引用对象是错误的。

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

0 个答案:

没有答案