solar

官方文档:

solar

简介:

计算或/和绘制晨昏线以及民用、航海用以及天文用曙暮光区域

语法

gmt solar [ -B[p|s]parameters ] [ -C ] [ -G[fill] ] [ -I[lon/lat][+ddate][+zTZ] ] [ -Jparameters ] [ -M ] [ -N ] [ -Rregion ] [ -Tdcna[+ddate][+zTZ]] [ -U[stamp] ] [ -V[level] ] [ -Wpen ] [ -X[a|c|f|r][xshift] ] [ -Y[a|c|f|r][yshift] ] [ -bobinary ] [ -hheaders ] [ -oflags ] [ -pflags ] [ -ttransp ] [ --PAR=value ]

必选选项

-I-T 必须使用一个。

可选选项

-Bparameters (more …)

设置底图边框和轴属性

-C

在一行内格式化打印(以Tab键分隔)-I 选项输出的信息。输出内容包括:

  • 太阳的经度、纬度、方位角、高度角,单位为度

  • 日出、日落、正午的时间,用小数形式的天表示,比如0.5表示正午12点

  • 日长,单位为分钟

  • 考虑折射效应矫正后的太阳高度较正以及均时差,单位为分钟

备注

若没有通过 -Ilon/lat 提供经纬度,则太阳高度角之后的数据均以 (0,0) 作为参考点。

$ gmt solar -I120/40+d2016-11-01T01:00:00+z8 -C
160.885755836   -14.5068940782  38.6719503593   -59.513608404   0.270214374769  0.706928713211  0.48857154399   628.868647356   -59.5102114599  16.4569766548
-G[fill]

根据晨昏线对黑夜区域填充颜色或图案,见 填充。 若不指定 fill 则剪裁黑夜区域,且需要通过 gmt clip -C 停止区域剪裁, 见 clip

-I[lon/lat][+ddate][+zTZ]

输出太阳的当前位置、方位角和高度角。加上 lon/lat 则输出日出、日落、 正午时间以及一天时间长度。用 +ddata 指定ISO格式的日期时间 (比如 +d2000-04-25T10:00:00 )来计算特定时刻的太阳参数。如果有需要, 也可以通过 +zTZ 加上时区。

$ gmt solar -I120/40+d2016-11-01T01:00:00+z8
      Sun current position:    long = 160.885756    lat = -14.506894
                          Azimuth = 38.6720    Elevation = -59.5136
      Sunrise  = 06:29
      Sunset   = 16:58
      Noon     = 11:44
      Duration = 10:29
-Jprojection (more …)

设置地图投影方式

-M

将晨昏线数据以多段ASCII表格式写到标准输出(或二进制格式, 见 -b 选项)。使用该选项,则只输出数据不绘图。

-N

反转晨昏线“内”和“外”概念颠倒。仅可与 -G 一起使用以剪裁出白昼区, 不可与 -B 一同使用。

-Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)

指定数据范围

-Tdcna[+ddate][+zTZ]

绘制一个或多个不同定义的晨昏线。若需要导出晨昏线数据,见 -M 选项。

通过添加 dcna 来绘制一个或多个不同定义的晨昏线。其中,

  • d 指晨昏线

  • c 指民用曙暮光

  • n 指航海曙暮光

  • a 指天文曙暮光

+ddate 为ISO格式的日期时间(例如 +d2000-04-25T12:15:00), 以得到该时刻晨昏交替的位置。也可以通过 +zTZ 加上时区。

不同曙暮光区的定义如下图所示:

https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Twilight_subcategories.svg/640px-Twilight_subcategories.svg.png

曙暮光区的多种定义(图片来自于 https://en.wikipedia.org/wiki/Twilight

  • 民用曙暮光分为晨间曙光区和晚间暮光区:

    • 晨间曙光区是指太阳的几何中心位于地平线以下6˚至地平线以下0˚50’(或日出, 即太阳上边缘接触地平线)这段时间

    • 晚间曙光区是指太阳的几何中心位于地平线以下 0˚50’(或日落,即太阳下边 缘接触地平线)至地平线以下6˚ 这段时间

  • 航海曙暮光指太阳中心位于地平线以下 0˚50’ 至 12˚ 这段时间

  • 天文曙暮光指太阳中心位于地平线以下 0˚50’ 至 18˚ 这段时间

-U[label][+c][+jjust][+odx/dy] (more …)

在图上绘制GMT时间戳logo

-V[level] (more …)

设置 verbose 等级 [w]

-W[pen]

设置晨昏线的画笔属性,见 画笔

-X[a|c|f|r][xshift[u]]

-Y[a|c|f|r][yshift[u]] (more …)

移动绘图原点

-bo[ncols][type][w][+l|b] (more …)

设置二进制输出的数据格式

-ocols[,…][,t[word]] (more …)

设置输出数据列(0表示第一列,t 表示文本列)

-p[x|y|z]azim[/elev[/zlevel]][+wlon0/lat0[/z0]][+vx0/y0] (more …)

设置3D透视视角

-t[transp] (more …)

设置图层透明度(百分比)。取值范围为0(不透明)到100(全透明)

-^-

显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -

-++

显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明

-? 或无参数

显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明

--PAR=value

临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数

示例

gmt begin solar
  gmt coast -Rd -JKs0/10i -Dl -A5000 -W0.5p -S175/210/255 -Bafg --MAP_FRAME_TYPE=plain

  # 绘制晨昏线
  gmt solar -Td+d2016-02-09T16:00:00 -Gnavy@95

  # 绘制不同定义的晨昏区
  gmt solar -Tc+d2016-02-09T16:00:00 -Gnavy@85
  gmt solar -Tn+d2016-02-09T16:00:00 -Gnavy@80
  gmt solar -Ta+d2016-02-09T16:00:00 -Gnavy@80

  # 计算指定时间太阳位置并绘制在底图上
  gmt solar -I+d2016-02-09T16:00:00 -C | gmt plot -Sk@sunglasses/1.5c -Gyellow -W0.2p
gmt end show
../../_images/7ea567303fcf1651556380226334a35c.png

参考

代码来自于 https://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html

相关模块

clip, coast, plot