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:                    │
│                                                                   extract-dist-center]         │
│ --extract-process-dataset     --no-extract-process-data           Flag to extract process      │
│                                                                   results.                     │
│                                                                   [default:                    │
│                                                                   extract-process-dataset]     │
│ --qc                          --no-qc                             Flag to plot residuals from  │
│                                                                   run and store in             │
│                                                                   output folder.               │
│                                                                   [default: qc]                │
│ --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.1.tar.gz (4.8 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: gnatss-0.1.1.tar.gz
  • Upload date:
  • Size: 4.8 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.1.tar.gz
Algorithm Hash digest
SHA256 246dbaa09952463ec7823ef7e964b35b4e809238b166d6a106b7d0ac0da20963
MD5 a4302a5d262fa82d49a590f143f3037b
BLAKE2b-256 980c6e208b6d03c0efad16b73880a1c2b1157f24919f117eda8f3c20417cdfd9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gnatss-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eeeecc53d33994b373d95b62f79d719822787169738d208fc695e3e9bdefab0a
MD5 b64816af725000314e9740819b1adf72
BLAKE2b-256 228459a42296071004c2c261b39deba00f26adea85a5458c5060262536857e43

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