zoukankan      html  css  js  c++  java
  • GMT提取边界和缩小扩大边界 转载

    https://www.meiwen.com.cn/subject/hwyqkqtx.html

    问题

    1. 有一个不规则形体的散点图,需要提取它的边界(比如我有一个航磁数据,不完全是方块状的矩阵,而是一个不规则的形状,希望得到它的边界。因为一般的数据处理都要先把它网格化为矩阵,处理完后再用边界把结果切出来);如:
      enter description here

    实际有的数据比这要更加不规则;

    1. 可能因为某些处理,导致需要从边界向内部缩小一定的范围,比如50km;
    2. 扩大边界;

    解决的方法

    对于问题一,MATLAB有一个非常好用的函数,boundary(x,y,n); x和y表示散点图的点位;n表示shrink factor,在0-1之间,n越大,提取的边界越精细;n越小,则边界的越规则;返回值是点位的索引;
    对于问题二,需要一些技巧性的操作,我自己的办法是:

    1. 用matlab得到polygon的数据后(下图黑色边界),整体对x和y都加上你要缩小的范围,比如50km(下图红色边界),然后x和y全部减去50km(蓝色边界),这样获得两个polygen;再用gmtspatial提取交集,
      enter description here
    2. gmtspatial提取边界(求polygon的交集):
    gmt gmtspatial poly_a.txt poly_b.txt -Si > a.txt
    gmt gmtspatial poly_b.txt poly_a.txt -Si > b.txt
    paster a.txt b.txt > poly.txt
    

    注意:由于求交集时时求poly_b.txt在poly_a.txt 里面的那一部分,所以要求两次,再拼接起来,就是它们的交集了(图中绿色部分)。

    对于问题三,用grdmask中的-S选项可以扩大边界。或者用问题二的方法去并集。

  • 相关阅读:
    动态分配内存与静态分配内存
    指针的指针
    cpp与其他语言相比较
    数组是什么
    cocos2d-x 2.1.4 项目配置过程
    显示隐藏文件 osx 10.10
    Windows 10 SDK 10.0.10158
    Office 2016 (Preview)
    Windows 10 SDK 10.0.10069 : The installer failed. User cancelled installation. Error code: -2147023294
    用系统工具sxstrace检查缺少的VC运行时组件
  • 原文地址:https://www.cnblogs.com/gisalameda/p/12195342.html
Copyright © 2011-2022 走看看