跳转到主要内容

全球海底全球导航卫星系统 - 声学(GNSS-A)应答器测图软件

项目描述

GNATSS

image BSD License ssec DOI

CI Documentation Status codecov
Hatch project Ruff Nox CodeFactor pre-commit.ci status

GNATSS是一款开源软件,用于处理全球导航卫星系统 - 声学(GNSS-A)数据以进行海底水平定位。该软件是对C. David Chadwell开发的现有FORTRAN代码和shell脚本的重新开发,用于处理包括使用Wave Gliders进行的测量在内的数据。包括专有例程在内的现有代码由John DeSanto开发和维护。

使用软件

此软件可通过PyPI,Python包索引获得

您可以通过运行以下命令使用pip直接安装软件

pip install gnatss

软件安装后,您应能够使用命令 gnatss 访问GNATSS命令行界面(CLI)。例如:运行 gnatss --help 将带您到主要的Python GNSS-A处理帮助页面。

 Usage: gnatss [OPTIONS] COMMAND [ARGS]...

 GNSS-A Processing in Python

╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version                     Show version and exit.                                                                                                            │
│ --install-completion          Install completion for the current shell.                                                                                         │
│ --show-completion             Show completion for the current shell, to copy it or customize the installation.                                                  │
│ --help                        Show this message and exit.                                                                                                       │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ run   Runs the full pre-processing routine for GNSS-A                                                                                                           │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

预处理流程

当前命令行界面(CLI)中有一个可用的命令,即run,它将运行GNSS-A的完整预处理流程。您可以通过运行gnatss run --help来检索此命令的帮助文本。

 Usage: gnatss run [OPTIONS] CONFIG_YAML

 Runs the full pre-processing routine for GNSS-A
 Note: Currently only supports 3 transponders

╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *    config_yaml      TEXT  Custom path to configuration yaml file. **Currently only support local files!** [default: None] [required]                          │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --extract-dist-center        --no-extract-dist-center               Flag to extract distance from center from run. [default: extract-dist-center]               │
│ --extract-process-dataset    --no-extract-process-dataset           Flag to extract process results. [default: extract-process-dataset]                         │
│ --outlier-threshold                                          FLOAT  Threshold for allowable percentage of outliers before raising a runtime error.              │
│                                                                     [default: None]                                                                             │
│ --distance-limit                                             FLOAT  Distance in meters from center beyond which points will be excluded from solution. Note     │
│                                                                     that this will override the value set as configuration.                                     │
│                                                                     [default: None]                                                                             │
│ --residual-limit                                             FLOAT  Maximum residual in centimeters beyond which data points will be excluded from solution.    │
│                                                                     Note that this will override the value set as configuration.                                │
│                                                                     [default: None]                                                                             │
│ --qc                         --no-qc                                Flag to plot residuals from run and store in output folder. [default: qc]                   │
│ --from-cache                 --no-from-cache                        Flag to load the GNSS-A Level-2 Data from cache. [default: no-from-cache]                   │
│ --remove-outliers            --no-remove-outliers                   Flag to execute removing outliers from the GNSS-A Level-2 Data before running the solver    │
│                                                                     process.                                                                                    │
│                                                                     [default: no-remove-outliers]                                                               │
│ --run-all                    --no-run-all                           Flag to run the full end-to-end GNSS-A processing routine. [default: run-all]               │
│ --solver                     --no-solver                            Flag to run the solver process only. Requires GNSS-A Level-2 Data. [default: no-solver]     │
│ --posfilter                  --no-posfilter                         Flag to run the posfilter process only. Requires GNSS-A Level-1 Data Inputs.                │
│                                                                     [default: no-posfilter]                                                                     │
│ --help                                                              Show this message and exit.                                                                 │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

目前预处理流程已测试仅支持3个转发器,但未来将会扩展。

配置yaml文件

运行命令需要配置yaml文件,用于配置预处理流程。调用gnatss run时,您需要提供配置yaml文件。

以下是一个示例配置yaml文件

site_id: SITE #Site Identifier
campaign: Region #Geographical region/Subduction Zone
time_origin: YYYY-MM-DD 00:00:00 #Time of survey
array_center:
  lat: xx.yyyy #decimal latitude
  lon: xxx.yyyy #decimal longitude
transponders: # list out all transponder and info, each entry is a different transponder (default: 3 transponders)
  - lat: xx.yyyyyyyyyy #decimal latitude
    lon: xx.yyyyyyyyyy #decimal longitude
    height: -zzzz.zz #transponder depth (m, positive up)
    internal_delay: t.tttt #Transponder Turn-Around Time (s)
    sv_mean: vvvv.vvv #Estimate of mean sound velocity (m/s)
  - lat: xx.yyyyyyyyyy #decimal latitude
    lon: xx.yyyyyyyyyy #decimal longitude
    height: -zzzz.zz #transponder depth (m, positive up)
    internal_delay: t.tttt #Transponder Turn-Around Time (s)
    sv_mean: vvvv.vvv #Estimate of mean sound velocity (m/s)
  - lat: xx.yyyyyyyyyy #decimal latitude
    lon: xx.yyyyyyyyyy #decimal longitude
    height: -zzzz.zz #transponder depth (m, positive up)
    internal_delay: t.tttt #Transponder Turn-Around Time (s)
    sv_mean: vvvv.vvv #Estimate of mean sound velocity (m/s)
travel_times_variance: 1e-10 #Default value
travel_times_correction: 0.0 #Default value
transducer_delay_time: 0.0 #Default value

# Main input files
input_files:
  travel_times: #Assume Chadwell format, (Time at Ping send [DD-MON-YY HH:MM:SS.ss], TWTT1 (microseconds), TWTT2, TWTT3, TWTT4), TWTT=0 if no reply
    path: /path/to/pxp_tt

# Posfilter configuration
posfilter:
  export:
    full: false #false for only required fields, true to include optional RPH value and uncertainties
  atd_offsets:
    forward: 0.0053 #Value for SV3 Wave Glider
    rightward: 0 #Value for SV3 Wave Glider
    downward: 0.92813 #Value for SV3 Wave Glider
  input_files:
    novatel:
      path: /path/to/file #File with INSPVAA strings
    novatel_std:
      path: /path/to/file #File with INSSTDEVA strings
    gps_positions: #Assume Chadwell format, (j2000 seconds, "GPSPOS" string, ECEF XYZ coordinates (m), XYZ Standard Deviations)
      path: /path/to/GPS_POS_FREED #File path to antenna positions, use wildcards ** for day-separated data

# Solver configuration
solver:
  reference_ellipsoid: #These values should be constant unless the Earth changes
    semi_major_axis: 6378137.000
    reverse_flattening: 298.257222101
  gps_sigma_limit: 0.05 #Uncertainty threshold for transducer positions, data with larger uncertainties ignored
  std_dev: true #true=standard deviation, false=covariance, probably deprecated
  geoid_undulation: xx.yy #Geoid height in m
  bisection_tolerance: 1e-10 #Do not change
  harmonic_mean_start_depth: -4.0 #Shallowest water depth for calculating mean soundvelocity from CTD data
  input_files:
    sound_speed: #Assume 2-column text file with depth (m), sound velocity (m/s)
      path: /path/to/file
    # deletions: # Path to deletns.dat deletions file used by Chadwell code as well
    #   path: ../tests/data/2022/NCL1/deletns.dat
    #gps_solution: #Path to pre-processed input data in standard GNSS-A data format, this skips the Posfilter step
    #  path: ../gps_solution.csv
    #quality_control:
    #  path: /Users/lsetiawan/Repos/SSEC/offshore-geodesy/tests/data/2022/NCL1/quality_control.csv

# Output configuration
output: # Directory path to output directory
  path: /path/to/output/

贡献

请参阅我们的贡献指南,了解如何设置环境以贡献本项目。

感谢迄今为止的所有贡献者!

Contributors

开源许可

本项目采用BSD-3-Clause License,可在此处找到。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

gnatss-0.2.1.tar.gz (704.6 kB 查看哈希值)

上传时间

构建分布

gnatss-0.2.1-py3-none-any.whl (66.8 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWSAWS云计算和安全赞助商 DatadogDatadog监控 FastlyFastlyCDN GoogleGoogle下载分析 MicrosoftMicrosoftPSF赞助商 PingdomPingdom监控 SentrySentry错误日志 StatusPageStatusPage状态页面