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 字 · 张壹

使用Markdown编写博客

Markdown是一种优秀的标记语言。它很简单,你可能只需要花上几十分钟便能大致掌握这种语言。它也很强大,你可以轻松的编辑列表、引用、图表、数学公式等等。不仅如此,你还可以将写好的Markdown文本转换为各种其他的格式,比如html、docx和pdf。总之,Markdown是一种值得学习和使用的标记语言。这里,我们不会对Markdown重新进行介绍(有需要的同学请戳我),我们要做的是实践我们在使用Markdown编写博客的过程中可能需要使用的标记和语法。 插入数学公式 数学公式的插入请使用两组$$包裹数学表达式,可以得到右边的效果$$E=mc^2$$。数学公式的表达规则和$$\LaTeX$$中一致。当我们需要单独显示数学公式时,应该在新的一行输入。效果如下: $$E=mc^2$$ 插入代码段 #!/bin/bash echo "Hello World!" 插入图片

November 10, 2018 · 1 分钟 · 10 字 · 张壹

PLY格式介绍

PLY 格式是在 1990 年代由 Greg Turk 和斯坦福图形实验室的其他人开发的,这也是它被称为斯坦福三角格式的原因。自那时起,该文件格式一直保持 1.0 版本,没有进一步的修改。 文件格式 一个简单的 PLY 对象由一组用于表示对象的元素组成。它包含一个顶点列表(由(x,y,z)三元组组成)和一个面列表(实际上是顶点列表的索引)。顶点和面是两种元素的例子,而大多数 PLY 文件主要由这两种元素构成。此外,还可以创建新的属性并将其附加到对象的元素上,这些但属性应以一种不会破坏旧程序的方式添加,以便旧程序在遇到这些新属性时仍能正常运行。读取应用程序也可以忽略这些属性。此外,还可以创建新的元素,并为这些元素定义属性。 PLY 文件格式的文件结构如下: 文件头 顶点列表 面列表 其他元素的列表 示例结构 在后续讨论中,我们将使用以下示例来说明 PLY 文件格式的各个部分。 ply format ascii 1.0 { ascii/binary,格式版本号 } comment made by Greg Turk { 以 comment 关键字开头的注释 } comment this file is a cube element vertex 8 { 定义“顶点”元素,文件中有 8 个 } property float x { 顶点包含浮点数“x”坐标 } property float y { y 坐标也是顶点的属性 } property float z { z 坐标也是 } element face 6 { 文件中有 6 个“面”元素 } property list uchar int vertex_index { “vertex_indices” 是一个整数列表 } end_header { 标记头部的结束 } 0 0 0 { 顶点列表的开始 } 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 0 4 0 1 2 3 { 面列表的开始 } 4 7 6 5 4 4 0 4 5 1 4 1 5 6 2 4 2 6 7 3 4 3 7 4 0 文件头 PLY 文件格式的文件头由 ASCII 文本组成,无论是 ASCII 格式还是二进制格式都是如此。头部部分的开始和结束由ply和end_header关键字标识。头部的开始有一个魔术词ply,用于让读取器识别 PLY 文件格式。下一行显示了该文件的版本号。PLY 文件格式中的注释以comment关键字开头。 ...

2 分钟 · 245 字 · 张壹