![f809f9e65a49817b3abac0b3cdc82f67.png](https://i-blog.csdnimg.cn/blog_migrate/5bc630aae25c61c020a8f3623c4e750b.jpeg)
AcrGIS在地理信息系统空间分析有着得天独厚的优势,因此成为了我研究目前课题的主要工具。但是在交流过程中,由于大家处理数据和画图的主力工具不同,往往会遇到数据格式转换的问题。本文将介绍如何使用GMT 4的命令实现地形数据格式Arc ASCII与GMT可识别的netCDF之间的转换。
- 将Arc ASCII转换为GMT netCDF格式
我的专栏文章海洋地球科学开放数据库列举了一些实用的数据库。如下图,我们首先从GMRT选取下载一段高精度的Arc ASCII格式的多波束文件MAR.asc。
![13d5ccd599fd96012a8cd0ceec39195d.png](https://i-blog.csdnimg.cn/blog_migrate/9cdb57979ef6bec6eda3861218bb7ec7.jpeg)
然后使用xyz2grd 命令将Arc ASCII格式的数据直接转换为GMT可识别的netCDF格式:
xyz2grd MAR.asc -GMAR.grd -E -V
如果是从JAMSTEC等数据库下载的ASCII文件,个人习惯使用nearneighbor插值:
blockmean MAR.dat -R-45.6/-44.2/25.3/27 -I0.001 > MAR.xyz
nearneighbor MAR.xyz -V -R -I -S0.002 -N2 -GMAR.grd
输出的MAR.grd文件即为GMT netCDF格式。
- 将GMT netCDF转换为Arc ASCII格式
将GMT netCDF格式的数据转换为Arc ASCII格式时,首先需要对netCDF文件重采样,使经、纬度方向的采样率完全相同,然后再使用grd2xyz命令将其转换为Arc ASCII格式:
grdsample MAR.grd -I0.001= -GMAR.nc
grd2xyz MAR.nc -E > MAR_G.asc
这里需要注意的是,重采样命令中的-I选项必须加上"=",使输出的MAR.nc文件在经、纬度方向的采样率完全相同,从而可以用于grd2xyz命令转换数据格式。
最终输出的MAR_G.asc文件即为Arc ASCII格式。使用ArcMAP计算一下hillshade,就可以看到下图的高精度海底地貌啦:
![0868cacd34b66f62283025bdba76e310.png](https://i-blog.csdnimg.cn/blog_migrate/ff380c0f26b6fa51941988e75288fd70.jpeg)
- 总结容易踩的坑
a. grd2xyz和xyz2grd命令处理涉及Arc ASCII格式数据时,必须加上"-E"选项!
b. GMT netCDF转Arc ASCII时,第一步的重采样命令中的"-I"选项必须加上"="!
最后声明:本文中涉及的GMT代码均为GMT 4版本,不适用于GMT更高版本哦!