如何在MATLAB中将分水岭形状文件从UTM更改为Lon / Lat?

时间:2017-03-03 04:05:15

标签: matlab latitude-longitude shapefile utm

我正在尝试将分水岭形状文件的X和Y分量更改为Lon和Lat。我以为这会像下面这样简单:

W8 = shaperead(WBD_HU_08_IA.shp,'UseGeoCoords',false);
nrrb = W8(27) % this gives the polygon info for the North Raccoon River Basin only 
>Geometry: 'Polygon'
>BoundingBox: [2x2 double]
>          X: [1x14530 double]
>          Y: [1x14530 double]
>     REGION: 'Upper Mississippi R…'
>      ...
>     FIPS_C: ' 19161 19121 19147 …'

X和Y在UTM中的位置:

  >BondingBox =

    >1.0e+06 *

    >0.3104    4.5928
    >0.4490    4.7554

通过更改“UseGeoCoords”= true,会发生以下情况:

W8 = shaperead(WBD_HU_08_IA.shp,'UseGeoCoords',true); 
nrrb = W8(27)

>Geometry: 'Polygon'
>BoundingBox: [2x2 double]
>        Lon: [1x14530 double]
>        Lat: [1x14530 double]
>     REGION: 'Upper Mississippi R…'
      ...
>     FIPS_C: ' 19161 19121 19147 …'

BoundingBox,Lat和Lon应从UTM更改为度,但不会发生。

我目前陷入困境,不知道还有什么可以让这些单位转换。我尝试使用utm2deg,utm2ll,MappingToolbox等代码似乎不起作用。我不断收到错误

ZONE must be integer value, scalar or same size as X and/or Y. 

当我设置我的区域='15N'时,这就是NRRB的用途。我甚至创建了一个循环,将'15N'放入一个数组,使其与X和Y的大小相同,这给了我一个错误说

Too many input arguments.

我的最终目标是将UTM转换为度数,以便我可以在我的NetCDF数据图上投影NRRB分水岭的轮廓,这些数据图采用Lon / Lat格式。任何关于如何解决这个问题或让utm2deg或utm2ll正常工作的建议都会令人惊叹。先感谢您!

0 个答案:

没有答案