收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

水深之处—地形数据格式Arc ASCII与GMT netCDF之间的转换 - 海洋测绘数据转化

[复制链接]
6 A* Y+ w* W0 }- h/ I

AcrGIS在地理信息系统空间分析有着得天独厚的优势,因此成为了我研究目前课题的主要工具。但是在交流过程中,由于大家处理数据和画图的主力工具不同,往往会遇到数据格式转换的问题。本文将介绍如何使用GMT 4的命令实现地形数据格式Arc ASCII与GMT可识别的netCDF之间的转换。

将Arc ASCII转换为GMT netCDF格式

我的专栏文章海洋地球科学开放数据库列举了一些实用的数据库。如下图,我们首先从GMRT选取下载一段高精度的Arc ASCII格式的多波束文件MAR.asc。

3 n6 h+ K! J9 ^; t
/ ?9 O/ c G% C

然后使用xyz2grd 命令将Arc ASCII格式的数据直接转换为GMT可识别的netCDF格式:

& C8 Q) B, D6 Z7 p, |- L# O+ A
xyz2grd MAR.asc -GMAR.grd -E -V
1 U% f1 B/ e0 t! Q( g4 n: O& ?% d

如果是从JAMSTEC等数据库下载的ASCII文件,个人习惯使用nearneighbor插值:

2 t2 u0 p+ W# }9 i+ E" F
blockmean MAR.dat -R-45.6/-44.2/25.3/27 -I0.001 > MAR.xyz0 x2 K* C" n+ W3 W- @ nearneighbor MAR.xyz -V -R -I -S0.002 -N2 -GMAR.grd
! D8 s$ w0 d$ @) @2 S

输出的MAR.grd文件即为GMT netCDF格式。

将GMT netCDF转换为Arc ASCII格式

将GMT netCDF格式的数据转换为Arc ASCII格式时,首先需要对netCDF文件重采样,使经、纬度方向的采样率完全相同,然后再使用grd2xyz命令将其转换为Arc ASCII格式:

: c5 D+ ~- U7 L$ h8 [: i( H2 ] ?9 D
grdsample MAR.grd -I0.001= -GMAR.nc ! C, \# T# V+ k: ~# d" I' C2 A grd2xyz MAR.nc -E > MAR_G.asc
, t& k8 a0 K9 P7 O( O

这里需要注意的是,重采样命令中的-I选项必须加上"=",使输出的MAR.nc文件在经、纬度方向的采样率完全相同,从而可以用于grd2xyz命令转换数据格式。

" D k4 t4 j3 U( m/ _

最终输出的MAR_G.asc文件即为Arc ASCII格式。使用ArcMAP计算一下hillshade,就可以看到下图的高精度海底地貌啦:

7 w3 i4 {) K* @1 t
总结容易踩的坑

a. grd2xyz和xyz2grd命令处理涉及Arc ASCII格式数据时,必须加上"-E"选项!

+ j' _% ?( i2 y3 C( {. M5 X0 X

b. GMT netCDF转Arc ASCII时,第一步的重采样命令中的"-I"选项必须加上"="!

) p" S, K- A+ E0 T

最后声明:本文中涉及的GMT代码均为GMT 4版本,不适用于GMT更高版本哦!

; {/ K, i, N7 j/ X' {4 Y 5 |; J9 A7 S* y/ S3 k4 x& ? " k8 H% r1 y! J i8 D0 n2 g7 G; b: I * X6 `/ o# o* B0 k7 T ! H& u6 f2 W- W7 D: b* o1 ?
回复

举报 使用道具

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
湘湘外婆
活跃在2026-4-7
快速回复 返回顶部 返回列表