gmtxy-image:直角坐标下网格数据图像化绘图

gmtxy-image 是一个 shell 脚本,基于 GMT5 在直角坐标系下将 2D 网格数据绘制为图像,用于快速浏览 .nc 或 .grid 文件。对于更精细、定制化的需求,仍然需要自行编写脚本。 安装 将脚本 dispOptions.sh 和 gmtxy-image.sh 复制(或软链接)到任意一个位于 $PATH 中的目录,然后重新打开终端即可使用。 下载 gmtxy-image.zip Setup 配置 请打开 gmtxy-image.sh 文件末尾,你会看到类似下面的行: imgcat $jpgfile #open the output file in terminal, this requires the iTerm.app and imgcat.sh open $jpgfile #'open' is a command in-build within MacOS 可按你的环境选用其中一种。若使用 Ubuntu,可以用命令 see;其他 Linux 发行版对应的命令需自行确认。 用法 gmtxy-image.sh -i<grid-data> [-r<xmin>/<xmax>/<ymin>/<ymax>] [-u<unit>] [-c<cpt-file>] [-a<x-label>,<y-label>] [-g] [-h] 选项说明 -i:输入网格文件名。最好使用 .nc 文件,不过 GMT5 也支持 Surfer 的网格格式。 -r:输入网格数据的范围,默认使用全部数据范围;使用此选项可强制自定义绘图范围。 -u:输入数据的单位。特殊情况下,若数据单位为米而想用 km 标注色标,可将参数设为 km+Uk 以开启该功能。 -c:用于生成数据专属 cpt 文件的输入 cpt 文件,默认使用 GMT 的 grd2cpt 命令。 -a:用逗号分隔的坐标轴标签。 -g:额外叠加一层地形阴影,使输出图像具有 3D 质感,默认使用输入网格数据。 -h:显示帮助信息。 示例 用以下命令绘制 example.nc。输出文件名取自输入网格文件名,脚本会同时输出一张 png(无背景)和一张 eps 文件: ...

November 15, 2018 · 1 分钟 · 102 字 · 张壹

pymail:在终端发送邮件

pymail 是一个 Python3 脚本,用于在终端中发送邮件,主要使用 smtplib 库。在日常科研工作中,有时一个程序要运行好几天才能出结果,我使用这个脚本在进程结束后把数据发送到自己的笔记本上,节省了大量等待时间。使用方式很简单:把脚本复制到任意目录,并软链接到 $PATH 中的目录(如 /usr/local/bin),重新打开终端即可使用。 配置 首先,可能需要将脚本第一行修改为你的 python3 所在目录。然后按如下方式修改默认设置: userName = 'username of your mail box' passWord = 'application specific password of your mail box' toAddress = ['default receiving e-mail address'] subJect = 'default subject' textMsg = 'default message.' 用法 pymail [-a<to_address>,<to_address>,...|-A<address-file>] [-s<subject>] [-t<text>|-T<text-file>] [-f<attached_file>,<attached_file>,...] [-h] [-d] 选项说明 -a / –to-address:收件地址,用逗号分隔。 -A / –ads-file:从文件读取收件地址,文件中地址也用逗号分隔。 -s / –subject:邮件主题。 -t / –text:邮件正文。 -T / –text-file:从文件读取正文。 -f / –att-file:附件文件名,用逗号分隔。 -h / –help:显示帮助信息。 -d / –defaults:显示默认设置。 下载 pymail.zip

November 14, 2018 · 1 分钟 · 78 字 · 张壹

gmtsph-regional:球坐标下局部网格数据快速绘图

gmtsph-regional 是一个 shell 脚本,基于 GMT5 在球坐标系下绘制区域网格数据。它的设计目的是让你能够快速浏览一个 .nc 或 .grid 文件的整体面貌,省去每次都要敲一长串 GMT 命令的麻烦。对于更精细、定制化的需求,仍然需要自行编写脚本。 安装 将脚本 dispOptions.sh 和 gmtsph-regional.sh 复制(或软链接)到任意一个位于 $PATH 中的目录,然后重新打开终端即可使用。 下载 gmtsph-regional.zip Setup 配置 请打开 gmtsph-regional.sh 文件末尾,你会看到类似下面的行: imgcat $jpgfile #open the output file in terminal, this requires the iTerm.app and imgcat.sh open $jpgfile #'open' is a command in-build within MacOS 可按你的环境选用其中一种。若使用 Ubuntu,可以用命令 see;其他 Linux 发行版对应的命令需自行确认。思路都是一样的。 用法 gmtsph-regional -i<grid-data> [-r<xmin>/<xmax>/<ymin>/<ymax>] [-u<unit>] [-c<cpt-file>] [-a<x-label>,<y-label>] [-t<x-tick>,<y-tick>] [-v<c-tick>] [-l<size>] [-g] [-G<grad-data>] [-b] [-n] [-p] 选项说明 唯一必须输入的参数是网格文件名,即可快速查看文件面貌。若想细致调整,可使用以下选项: -i:输入网格文件名。最好使用 .nc 文件,不过 GMT5 也支持 Surfer 的网格格式。注意数据范围不应跨越赤道,否则 GMT5 的 -JL 投影会触发内部错误。基于这一点,你也可以很方便地修改脚本中 grdimage 命令的 -J 选项来改用其他投影。 -r:输入网格数据的范围,默认使用全部数据范围;使用此选项可强制自定义绘图范围。 -u:输入数据的单位。特殊情况下,若数据单位为米而想用 km 标注色标,可将参数设为 km+Uk 以开启该功能。 -c:用于生成数据专属 cpt 文件的输入 cpt 文件。默认使用 GMT 的 grd2cpt 命令;若想直接使用输入 cpt 文件,需用 -n 选项禁用 grd2cpt。 -a:用逗号分隔的坐标轴标签。 -t:手动设置坐标轴标注的间隔。 -v:手动设置色标标注的间隔。 -l:从预定义类型 exsmall、small、middle、large 中选择页面布局,各类型的具体数值见脚本内部。 -b:绘制海岸线。 -g:额外叠加一层地形阴影,使输出图像具有 3D 质感,默认使用输入网格数据。 -G:用另一个网格文件绘制地形阴影,注意该文件范围应等于或大于数据网格。 -n:禁用 grd2cpt。 -p:反转 -c 选项指定的颜色模式;若使用了 -n 选项则此选项无效。 示例 用以下命令绘制 example.nc。输出文件名取自输入网格文件名,脚本会同时输出一张 png(无背景)和一张 eps 文件: ...

November 12, 2018 · 1 分钟 · 135 字 · 张壹

post2blog / postToBlog:终端发布博客到 GitHub Pages

postToBlog / post2blog 是 shell 脚本,用于在终端将 Markdown 文件发布到基于 Jekyll 的 GitHub Pages 个人博客。 其中 post2blog 是 postToBlog 的升级版:主要区别在于 post2blog 能自动处理链接的本地文件(如图片、文档)。注意脚本只会复制本地文件到你的 github.io,以 http 或 https 开头的超链接不会被处理。 安装 postToBlog:将 dispOptions.sh 与 postToBlog.sh 复制到任意 $PATH 中的目录,重新打开终端即可。 post2blog:将 post2blog.sh 复制到任意目录,并软链接到 $PATH 中的目录(如 /usr/local/bin),重新打开终端即可。 下载 post2blog.zip(含两代脚本) 配置 打开脚本并按提示修改。以 post2blog.sh 为例: 修改 _my_repository_addresses 为你的博客仓库目录,通常命名为 <YourGithubCount>.github.io,脚本默认使用第一个。 _my_repository_addresses=("Directory to your github.io" "Directory to your github.io") 修改 _posts_address 与 _posts_sub_address 为文章目录的相对路径。通常 _posts_address 为 _posts/ 无需改动,_posts_sub_address 用于将文件归入默认子目录。 _posts_address="_posts/" _posts_sub_address=`date +"%Y-%m/"` #classify your files by yyyy-mm for instance 修改 _assets_address 为资源目录相对路径。脚本会在该目录下按 yyyy-mm 建子目录对图片/文档按月归类,并将文件重命名为超链接的键值,例如键值 [This is a test name] 对应的输出文件名为 This-is-a-test-name。 _assets_address="assets/" #directory of your assets 通过 _mfile 指定默认输入文件名。 设置 Jekyll 需要的头部信息,_layout 的值必须在 Jekyll 样式中定义。 _layout='post' #using the layout named post _categories='Command Line Tools' #example category _tags='shell,git,jekyll' #example tags 用法 post2blog [-i<markdown-file>] [-l<layout>] [-T<title>] [-c<categories>] [-t<tags>] [-s<sub-directory>] [-S] [-V] [-r] [-h] 配置正确时,多数情况无需任何参数即可运行。需要时可用以下选项: ...

November 12, 2018 · 1 分钟 · 164 字 · 张壹

grav2d-cube:直角坐标下立方体重力正演

grav2d-cube 是一个 C++ 命令行工具,在直角坐标系下对一系列立方体进行重力场正演计算,支持重力场及重力梯度(gx/gy/gz)分量。程序基于矩形块(立方体)建立模型。 编译 Mac OS 用户可通过 Homebrew 安装 gcc: brew install gcc Linux 用户可通过 apt 安装: apt-get install gcc 然后进入程序目录执行 make 编译,再将可执行文件目录加入 $PATH。 下载 grav2d-cube.zip 用法 grav2d-cube -r<x-start>/<x-step>/<x-end>/<y-start>/<y-step>/<y-end>/<elevation>|<filename> -c<x-cen>/<y-cen>/<z-cen>/<dx>/<dy>/<dz>/<density>|<filename> -tgravity|gx|gy|gz -h > out-file 选项说明 -r:从参数或文件初始化观测点。若使用参数,需指定观测点在 x、y 方向的起始与结束位置,以及间隔 dx、dy。间隔可为正数或负数,视起始坐标是否大于结束坐标而定。程序也可从文件读取观测点位置,文件每行包含一个观测点的 x、y、z 坐标,以 # 开头的行会被忽略,方便添加注释。注意观测点采用右手坐标系,即 x、y 方向分别对应东向与北向。 -c:从参数或文件初始化立方体的几何与物理属性。立方体的几何属性由其中心位置 <x-cen>/<y-cen>/<z-cen> 与空间范围 <dx>/<dy>/<dz> 表示,密度附加在参数串末尾。需要添加多个立方体时,应在文件中逐行描述每个立方体的参数串,以 # 开头的行同样会被忽略。注意程序使用反转的右手坐标系定位立方体,此时 z 方向指向下方,x、y 方向分别对应北向与东向。 -t:选择正演计算的分量,gravity 表示重力场,gx、gy、gz 分别为 x、y、z 方向的重力梯度。 out-file:正演结果输出文件。默认输出到标准输出,可通过 > 重定向到文件。每行输出由观测点的 x y z 位置和末尾追加的正演计算数值组成。 -h:显示帮助信息。 示例 正演计算单个立方体的重力数据。立方体中心位于 (500 m, 500 m, 200 m),在 x、y、z 方向尺寸分别为 200 m、100 m、100 m,密度为 1.0 g/cm³。观测点在 x、y 方向均从 0 到 1000 m、间隔 10 m,观测高程为 10 m。 grav2d-cube -r 0/10/1000/0/10/1000/10 -c 500/500/200/200/100/100/1.0 -t gravity > one-cube-grav.txt 从文件读取立方体参数与观测点位置,并正演计算重力梯度数据。 grav2d-cube -r obs-position.txt -c cube-para.txt > cubes-gravity.txt

November 11, 2018 · 1 分钟 · 112 字 · 张壹