Skip to main content

Community Seafloor Global Navigation Satellite Systems - Acoustic (GNSS-A) Transponder Surveying Software

Project description

GNATSS

ssec BSD License

CI Documentation Status codecov
Hatch project code style - Black CodeFactor

GNATSS is an open-source software for processing Global Navigation Satellite Systems - Acoustic (GNSS-A) data for seafloor horizontal positioning. The software is a redevelopment of existing FORTRAN codes and shell scripts developed by C. David Chadwell for processing data including measurements made with Wave Gliders. Existing code, which includes proprietary routines, is developed and maintained by John DeSanto.

Using the software

This software is currently under heavy development and is not available via PyPI, the Python Package Index

You can install the software with pip directly by running the following command:

pip install gnatss

Once the software is installed, you should be able to get to the GNATSS Command Line Interface (CLI) using the command gnatss. For example: gnatss --help, will get you to the main GNSS-A Processing in Python help page.

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

 GNSS-A Processing in Python

╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion        [bash|zsh|fish|powershell|pwsh]  Install completion for the specified │
│                                                              shell.                               │
│                                                              [default: None]                      │
│ --show-completion           [bash|zsh|fish|powershell|pwsh]  Show completion for the specified    │
│                                                              shell, to copy it or customize the   │
│                                                              installation.                        │
│                                                              [default: None]                      │
│ --help                                                       Show this message and exit.          │
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────────╮
│ run      Runs the full pre-processing routine for GNSS-A                                          │
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯

Pre-processing solve routine

Currently there's a single command available in the CLI, run, which will run the full pre-processing routine for GNSS-A. You can retrieve the helper text for this command by running gnatss run --help.

 Usage: gnatss run [OPTIONS]

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

╭─ Options ──────────────────────────────────────────────────────────────────────────────────────╮
│ --config-yaml                                              TEXT   Custom path to configuration │
│                                                                   yaml file. **Currently only  │
│                                                                   support local files!**       │
│                                                                   [default: None]              │
│ --extract-dist-center        --no-extract-dist-center             Flag to extract distance     │
│                                                                   from center from run.        │
│                                                                   [default:                    │
│                                                                   no-extract-dist-center]      │
│ --extract-process-dataset    --no-extract-process-data…           Flag to extract process      │
│                                                                   results.                     │
│                                                                   [default:                    │
│                                                                   no-extract-process-dataset]  │
│ --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]              │
│ --help                                                            Show this message and exit.  │
╰────────────────────────────────────────────────────────────────────────────────────────────────╯

Currently the pre-processing routine have been tested to only supports 3 transponders, but this will be expanded in the future.

Configuration yaml file

The run command takes in a configuration yaml file, which is used to configure the pre-processing routine. By default, the program will look for a configuration file in the current working directory called config.yaml. If this file is found somewhere else, you can pass in the path to the file using the --config-yaml flag.

Here's a sample configuration yaml file:

site_id: SITE1

solver:
  # note that the coordinates are not real and are just for example
  transponders:
    - lat: 47.302064471
      lon: -126.978181346
      height: -1176.5866
      internal_delay: 0.200000
      sv_mean: 1481.551
    - lat: 47.295207747
      lon: -126.958752845
      height: -1146.5881
      internal_delay: 0.320000
      sv_mean: 1481.521
    - lat: 47.309643593
      lon: -126.959348875
      height: -1133.7305
      internal_delay: 0.440000
      sv_mean: 1481.509
  reference_ellipsoid:
    semi_major_axis: 6378137.000
    reverse_flattening: 298.257222101
  gps_sigma_limit: 0.05
  std_dev: true
  geoid_undulation: -26.59
  bisection_tolerance: 1e-10
  array_center:
    lat: 47.3023
    lon: -126.9656
  travel_times_variance: 1e-10
  travel_times_correction: 0.0
  transducer_delay_time: 0.0
  harmonic_mean_start_depth: -4.0
  input_files:
    sound_speed:
      path: /path/to/CTD_NCL1_Ch_Mi
    travel_times:
      path: /path/to/**/WG_*/pxp_tt # this option will take in glob patterns
    gps_solution:
      path: /path/to/**/posfilter/POS_FREED_TRANS_TWTT # this option will take in glob patterns

output:
  path: /my/output/dir/

Deletions file

This will output the final resulting deletions file to the output directory specified in the configuration yaml file. This file will be in Comma Separated Value (CSV) format called deletions.csv.

Residual file

This will output the final resulting residual file to the output directory specified in the configuration yaml file. This file will be in Comma Separated Value (CSV) format called residuals.csv.

Contributing

Please refer to our Contributing Guide on how to setup your environment to contribute to this project.

Thanks to our contributors so far!

Contributors

Open source licensing

This has a BSD-3-Clause License, which can be found here.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gnatss-0.1.0.tar.gz (4.1 MB view details)

Uploaded Source

Built Distribution

gnatss-0.1.0-py3-none-any.whl (42.4 kB view details)

Uploaded Python 3

File details

Details for the file gnatss-0.1.0.tar.gz.

File metadata

  • Download URL: gnatss-0.1.0.tar.gz
  • Upload date:
  • Size: 4.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for gnatss-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d9ae83f09a58c467c0f4619d5956c462dadf0c20ac97807c2d93a1eae587ff03
MD5 7ed4e1da44d4a49edcf4126840619a25
BLAKE2b-256 e5295aa0e77988514569f687999e8f37b3b5b3e7594ae50ac1191d15de6ed6e8

See more details on using hashes here.

File details

Details for the file gnatss-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: gnatss-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 42.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for gnatss-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e52f37dc71fa0a8d03e9bb358cd7d204b42b4627a33a87b25703440dd3fe8c9d
MD5 d277aee844d04a409f5822d4c5b96aef
BLAKE2b-256 551e9e7f98d9b8340ca2b2565fe3528089a9c9b8fcbb4bbd8e855cb9d7d8a4fd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page