创建地图投影结构,从geotiff获取纬度和经度

27次观看(过去30天)
你好,
我目前正在尝试绘制Corine土地覆盖数据( 链接 到纬度坐标。坐标系为ETRS89 / ETRS-LAEA ( 链接 ),因此是一个等面积投影('eqaazim')。我现在的问题是坐标是从图像的左上角以米为单位给出的。我天真地假设我可以简单地使用逆投影与我返回的信息结构
I = geotiffinfo(mymap);
然而,这并不起作用,我得到了错误消息“错误使用proj2gtif(第17行):GeoTIFF结构PROJ不能与函数PROJFWD或PROJINV一起使用。”我试图遵循这里显示的相反的方法( 链接 )以进一步得到(R为 map.rasterref.MapCellsReference 但显然没有足够的信息。
手动检查信息结构(见附件),我没有看到任何LatLon参考(例如,在I. corncoords)。
目前,我的计划是创建一个地图投影结构(见附件),然后使用
[lat,lon] = minvtran(mstruct,x,y)
得到坐标。我开始创建一个默认结构使用
Mstruct = default (“eqaazim”
现在必须填充缺失的值。仅使用false northings和easting会因为复杂的值而返回错误:
错误使用量化
输入一定是真的。
错误in eqaazim>eqaazimInv(198行)
经度(indx) =量化(x (indx)。* sin (ce), D *ρ(indx)。* cos (ce));
错误在eqaazim>应用逆(第131行)
[lat, lon] = mproj。在verse(mstruct, x, y);
错误在doApplyProj(第51行)
[lat, lon] = mprol . applyinverse (...
eqaazim>applyAzimuthalProjection错误(第34行)
outputs = doApplyProj(mproj, varargin{:});
错误eqaazim(第22行)
varargout = applyAzimuthalProjection(mproj, varargin{:});
错误在minvtran中(第36行)
[lat, lon, alt] = feval(mstruct.mapprojection,...
也许我需要定义更多的值?
提前谢谢你,
马克斯

接受的答案

马克斯Gulde
马克斯Gulde 2019年4月25日
我没有提供正确的大地水准面,它需要以下结构:
mstruct。大地水准面= [semmajor, Ecc];

更多答案(0)

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!