3
\ begingroup美元

我有两个数据集,以不同的方式表示经度。第一个表示经度180度从东到,但当负东,这样我有一个看起来像系列:

[0:180,180:0];

然后我有另一个数据集表示经度度但范围从0到360年,即:

0:360;

为了把这些转换成相同的格式,我可以简单地使用这个吗?

lon2 (lon2 > 180) = lon2 (lon2 > 180) -360;

请注意我的例子是用MATLAB编写的。这基本上表明我可以改变第二个经度坐标通过减去360的经度值大于180。这是否有意义吗?

\ endgroup美元

    3答案3

    9
    \ begingroup美元

    负经度角的数据库是存储经度经常和西行,而其他数据库是存储所有经常。

    看来你更喜欢你的数据经常和西行。你的方法改变经常大于180度西距是正确的:在经度角大于180减去360(即经度角- 360)。

    \ endgroup美元
      3
      \ begingroup美元

      在Matlab工具箱可以如果你有映射简单地做:

      lon2 = wrapTo180 (lon2);

      和你的方法是完全正确的,但如果你有更多或与其他数据集不同约定您可以设置功能类似于马坪镇工具箱。如:

      函数朗= wrapTo180(朗)q =(经度< -180)|(180 <朗);经度(q) = wrapTo360(朗(q) + 180) - 180;

      函数朗= wrapTo360(朗)positiveInput =(朗> 0);朗=国防部(经度,360);经度((经度= = 0)& positiveInput) = 360;
      \ endgroup美元
      2
      • 1
        \ begingroup美元 这需要映射的工具箱。如果OP的机构没有支付这个,创建一个类似的功能可能是值得使用的(正确的)配方的问题。 \ endgroup美元
        - - - - - -半日西蒙
        2018年1月5日,可惜
      • 1
        \ begingroup美元 你是对的,我已经编辑相应的答案。 \ endgroup美元
        - - - - - -卡米洛·Rada
        2018年1月5日,在16:32
      0
      \ begingroup美元

      如果你想转换西经度向东经度,您可以使用下面的循环,其中朗表示矩阵西经度:

      N =长度(朗)= abs(朗);i = 1;虽然我< N + 1;eastward_long (i) =(长(i) -地板(长(我)/ 360)* 360)*(朗(i) /长(i)) - 180 *((朗(i) /长(i)) - 1);我=我+ 1;结束
      \ endgroup美元

        你的答案

        通过点击“发布你的答案”,你同意我们服务条款并承认您已阅读并理解我们的隐私政策的行为准则

        不是你要找的答案?浏览其他问题标记问你自己的问题