返回介绍

GMT 入门

GMT 实例

GMT 进阶

附录

其他

-JX: Linear, logarithmic, power, and time

发布于 2023-08-10 21:46:57 字数 4705 浏览 0 评论 0 收藏 0

GMT 中笛卡尔坐标变换分为三类:

  • Linear(线性坐标)

  • Logarithmic(log \(_{10}\) 坐标)

  • Power(指数坐标)

在开始之前,先用 gmtmath 生成两个数据以供接下来示例使用:

gmt math -T0/100/1  T SQRT = sqrt.txt
gmt math -T0/100/10 T SQRT = sqrt10.txt

笛卡尔线性坐标

笛卡尔线性坐标可以通过四种方式指定:

  • -Jxscale X轴和Y轴拥有相同的比例尺 scale

  • -JXwidth X轴和Y轴拥有相同的长度 width

  • -Jxxscale/yscale 分别为X轴和Y轴指定不同的比例尺

  • -JXwidth/height 分别为X轴和Y轴指定不同的长度

笛卡尔线性坐标的使用场景可以分为三类:

  1. 常规的浮点数坐标

  2. 地理坐标

  3. 日期时间坐标

常规浮点数坐标

对于常规的浮点型数据而言,选择笛卡尔线性坐标意味着对输入坐标做简单的线性变换 \(u' = a u + b\),即将输入坐标 \(u\) 投影到纸张坐标 \(u'\)。

下面的命令将函数 \(y=\sqrt{x}\) 用笛卡尔线性变换画在图上。

gmt begin GMT_linear
gmt plot -R0/100/0/10 -JX3i/1.5i -Bag -BWSne+gsnow -Wthick,blue,- sqrt.txt
gmt plot -St0.1i -N -Gred -Wfaint sqrt10.txt
gmt end show
http://www.wenjiangs.com/wp-content/uploads/2023/docimg24/511-ekug0fzer3q.png

笛卡尔坐标的线性变换

理论上地理坐标应该用地理投影画,而不应该用线性投影,但是有时候可能的确需要使用线性投影。用线性投影绘制地理坐标时会碰到一个问题,即经度有一个360度的周期性。因而在使用线性投影时需要通知GMT数据实际上是地理坐标。有三种办法:

  1. -R 后、数据范围前加上 gd,比如 -Rg-55/305/-90/90

  2. -Jx-JX 选项的最后加上 gd,比如 -JX10c/6cd

  3. 使用 -fg 选项

下面的例子用线性投影绘制了一个中心位于125°E的世界地图。

gmt begin GMT_linear_d
gmt set MAP_GRID_CROSS_SIZE_PRIMARY 0.1i MAP_FRAME_TYPE FANCY FORMAT_GEO_MAP ddd:mm:ssF
gmt coast -Rg-55/305/-90/90 -Jx0.014i -Bagf -BWSen -Dc -A1000 -Glightbrown -Wthinnest -Slightblue
gmt end show
http://www.wenjiangs.com/wp-content/uploads/2023/docimg24/513-dftmygurxfk.png

地理坐标的线性变换

Time(时间日期坐标)也可以用线性投影绘制,此时需要告诉GMT输入坐标是绝对时间还是相对时间。

可以通过在 -Jx-JX 的最后加上 Tt,不过实际上 -R 选项中已经指定了时间范围,所以没有必要在 -J-R 选项中都指定。当 -R-J 选项给出的坐标类型相冲突时,GMT会给出警告,并以 -JX 选项为准。

gmt begin GMT_linear_cal
gmt set FORMAT_DATE_MAP o TIME_WEEK_START Sunday FORMAT_CLOCK_MAP=-hham FORMAT_TIME_PRIMARY_MAP full
gmt basemap -R2001-9-24T/2001-9-29T/T07:0/T15:0 -JX4i/-2i -Bxa1Kf1kg1d -Bya1Hg1h -BWsNe+glightyellow
gmt end show
http://www.wenjiangs.com/wp-content/uploads/2023/docimg24/514-mbtq2aebmxd.png

日期时间坐标的线性变换

对数变换 \(\log_{10}\) 的数学表示是 \(u' = a \log_{10}(u) + b\) ,可以通过在比例尺或轴长度后加上 l 指定。

下面的命令绘制了一个X轴为对数轴Y轴为线性轴的图。

gmt begin GMT_log
gmt plot -R1/100/0/10 -Jx1.5il/0.15i -Bx2g3 -Bya2f1g2 -BWSne+gbisque -Wthick,blue,- -h sqrt.txt
gmt plot -Ss0.1i -N -Gred -W -h sqrt10.txt
gmt end show
http://www.wenjiangs.com/wp-content/uploads/2023/docimg24/515-bgiqr0htsgf.png

对数投影

指数投影的函数表示是 \(u' = a u^b + c\) ,使得用户可以绘制类似 \(x^p\) - \(y^q\) 这样的函数关系。如果选 p=0.5、q=1 则相对于绘制 x 与 \(\sqrt{x}\) 的函数曲线。

要使用指数投影,需要在比例尺或轴长度后加上 pexp,其中 exp 是要使用的指数。

gmt begin GMT_pow
gmt plot -R0/100/0/10 -Jx0.3ip0.5/0.15i -Bxa1p -Bya2f1 -BWSne+givory -Wthick sqrt.txt
gmt plot -Sc0.075i -Ggreen -W sqrt10.txt
gmt end show
http://www.wenjiangs.com/wp-content/uploads/2023/docimg24/516-p4epf3znqe3.png

指数变换

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文