开源免费的中国地区速度场

速度场是对一个特定地区板块水平运动的建模,也是地球物理或地震学研究、参考框架维持和坐标转换的基础数据之一。由于国内严格的保密政策等原因,中国地区公开可用的速度场数据少之又少,这对于用户使用非常不便。为此,本文公布一份开源免费的速度场数据,并对其使用方法做了简要说明。以供有需要的读者下载使用。

阅读全文

更新 Bernese 的 DE405 星历文件

Bernese 使用的行星/月球星历文件为 JPL 的 DE405 模型,该模型未包含在 Bernese 的安装包中,读者需要按照其说明文档自己制作。虽然目前网上已经有一些制作好的文件可供下载,但多数文件在 2020 年后未必可用。因为根据 Bernese 教程制作的模型只包含 1980 至 2020 之间的数据。

本文介绍 DE405 文件的制作方法,并在最后给出一个可用到 2040 年的 DE405 文件。

阅读全文

使用 geopy 处理地址和坐标数据

你一定知道地物的地址与其大地坐标之间存在对应关系。以往当我需要某个城市或标志物的坐标时,都是通过电子地图服务或者维基百科查询,这样的效率很低。geopy 是 Python 处理地理数据的包,它封装了大量的公共地图服务,用它来处理地址与坐标的关系非常方便。同时,其距离计算功能也比较强大。

本文将对 geopy 的主要功能进行介绍。

阅读全文

Windows 操作系统安装 GAMIT

在 Linux 虚拟机中使用 GAMIT/GLOBK 应该是大部分用户的现状。对于不甚熟悉 Linux 的用户而言,无论是通过虚拟化软件安装 Linux,还是安装双系统,都是不小的挑战。使用双系统或虚拟机的麻烦也是显而易见的,不仅占用更多的资源,并且,在 Windows 和 Linux 之间切换也是颇费工夫的事情。

本文通过 Windows 10 操作系统中提供的 Linux 子系统(Windows Subsystem for Linux, WSL) 功能成功地编译安装了 GAMIT/GLOBK 10.61,并记录下详细操作过程,希望可以对有兴趣的使用者有些参考意义。

阅读全文

SINEX 文件格式简介

SINEX (Solution INdependent EXchange Format) 是大地测量学界标准的数据处理成果文件格式。该文件格式最早由 IGS 提出,之后陆续被 ILRS 和 IVS 等组织采用并丰富。现用于发布 国际地球自转与参考系统服务(IERS)国家激光测距服务(ILRS)国际 GNSS 服务(IGS)国际 DORIS 服务(IDS)国际 VLBI 服务(IVS) 等生产的各种数据处理产品,如 ITRF 地球坐标参考框架,各基站坐标、速度与震后形变参数,地心和地球自转参数等等。

本文将从历史、格式和含义等方面着手,介绍 SINEX 文件的内容。

阅读全文

判断点是否在多边形内

判断某个点是否在某多边形内是常见的问题,比如某点是否在某个城市内、某城市位于哪个国家等。但地球是一个球面,对于比较小的多边形,采用平面的算法通常不会有问题。但是在某些情况下(尤其是多边形非常大的时候),直接应用平面上的算法会有问题。其中最常见的就是多边形横跨 180° 经线的场景。

本文将以 Python 作为示例代码,探索解决这种问题的方案。

阅读全文

用 Python 读写 Fortran 格式化的数据

Fortran 至今仍然是学术界流行的编程语言。得益于其在科学计算方面的出色表现(以及某些历史传承),众多的科研软件都基于 Fortran 编写。同时,很多文件格式也以 Fortran 的格式化输出风格定义。大地测量学领域众多的数据格式都使用 Fortran 格式定义,比如 RINEX、IONEX、SINEX、SP3 等。

Fortran 对输入输出的格式化要求严谨,使用 Python 自己的字符串格式化语法得到的文本很难符合其规范(或者代码可读性很差)。本文介绍在 Python 中使用 Fortran 格式化风格的包:fortranformat,可以使用它对代码进行一些优化。

阅读全文

Python 解压 UNIX/Linux 压缩文件的最快方式

IGS 的数据和产品通常用 compressgzip 程序压缩,以 .Z 或 .gz 的压缩文件形式提供。这是 UNIX/Linux 操作系统常用的压缩文件格式。用户在下载之后需首先使用软件对其进行解压。本文以实验方式探讨一个 Python 编程中的问题:如何最快的解压缩 .Z 或 .gz 文件?并且,代码最好是容易部署和移植的。

主要测试了通过标准库/扩展库和调用 gzip 程序的解压方法,以及各自的线程池和异步 I/O 版本。

阅读全文

CentOS 操作系统安装 Bernese

之前的文章介绍过了 Bernese 软件在 Ubuntu 操作系统下的安装过程。考虑到 CentOS 是在服务器和工作站领域用户量非常大的 Linux 发行版,并且其依赖环境的配置过程与 Ubuntu OS 有较多的不同,因此本文介绍在 CentOS 下安装 Bernese 软件的过程。

我实际使用的操作系统为 CentOS 7,Bernese 软件版本为 5.2。鉴于 RHEL(Red Hat Enterprise Linux)与 CentOS 有非常密切的关系,因此该安装过程同样适用于对应的 RHEL 7 版本。

阅读全文

Ubuntu 操作系统安装 Bernese

Bernese software 是另一个著名的高精度 GNSS 数据处理软件。由瑞士伯尔尼大学(University of Berne)天文研究所开发,能够处理包括 GPS、GLONASS 和卫星激光测距(SLR)等多种观测数据。该程序适用于 Windows 或 UNIX/Linux 操作系统,内嵌图形界面(虽然比较丑),操作友好,模型准确,解算精度高,并且具有强大的数据批处理能力。

当前 Bernese 软件可以购买的最新版本为 5.2,获得授权后,你可以使用本文介绍的方法将其安装到运行 Linux 操作系统的计算机上。我实际使用的 Linux 发行版为 elementary OS Loki 0.4.1,但本安装过程应该也适用于 Ubuntu 16.04 LTS。

阅读全文