Skip to main content

The nautical package provides users with access to historical and real time nautical information.

Project description


Nautical

Build-Linux Build-OSX Build-Windows

PyPI version fury.io GitHub latest commit Code Coverage

Go Go Reference

Description

Ahoy! Whether you've got your sea legs under yeh', or you're just looking to get those toes wet, you have discovered Nautical. Nautical is a web scraper that allows its users to parse real time data from NOAA's buoys. You can try Nautical as a python or GO package! Nautical was created for research and data logging purposes, but there are many more possibilities for users to discover.

If you would like to view the python documentation follow the link to nautical's python documentation.

If you would like to view the GO documentation follow the link to nautical's GO documentation.

Table of Contents

Features

The following are a set of features and/or data that can be accessed via the package.

Sources

A source is a group of buoys. The source can be thought of as a sponsor or owner of the group/set of buoys. The source may be used as an indicator of the type of data that is stored in a buoy object.

Note: The TAO and Tsunami sources are not available in any regard.

Buoys

A buoy may contain, but are not limitted to, any of the following variables.

Data Abbreviation Units
Wind Speed wspd Knots
Gust gst Knots
Wave Height wvht Feet
Dominant Wave Period dpd Seconds
Average Wave Period apd Seconds
Pressure pres PSI
Pressure Tendency ptdy PSI
Air Temperature atmp Fahrenheit
Water Temperature wtmp Fahrenheit
Dew Point dewp Fahrenheigt
Salinity sal PSU
Visibility vis Nautical Miles
Tide tide Feet
Swell Height swh Feet
Swell Wave Period swp Seconds
Wind Wave Height wwh Feet
Wind Wave Period wwp Seconds
Ocean Temperature otmp Fahrenheit
Wind Speed 10m Interval wspd10m Knots
Wind Speed 20m Interval wspd10m Knots
Depth depth Feet

Data Caching

The cache can be used to save and load information about buoys and sources. The feature enables users to locally store and retrieve older information. NOAA refreshes the online data roughly every 30 minutes. The cache package can be used to throttle data retrieval calls to ensure the user is not wasting system resources when data has not been updated by NOAA.

  • Create cache files
  • Copy cache files to new names (with timestamps or custom names)
  • Load Cache files to Nautical Objects.

Note: Nautical cache was added in version 3.1.0.

Prerequisites

The python package requires python>=3.6. You can use a package manager to install a version of python that satifies the requirements, or you may manually install python from the website.

The GO package requires golang>=1.18. To install go please visit the official website.

Note: The GO requirement is not strict, but previous versions have Not been tested.

Casting Off

Tutorials

Follow the link to view the tutorials for the python package.

Follow the link to view the tutorials for the go package.

Testing

Python

All python tests are located in the tests directory.

python 3.x -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r test_requirements.txt
pytest --cov=tests

Note: The virtual environment and coverage are optional.

GO

All golang tests are located with the golang source in [pkg](https://gith ub.com/barbacbd/nautical/tree/master/pkg). The following should be executed from the project home directory.

go get -u
go test -v ./...

Contributing

If you are aiming to become the first mate, second mate, deck cadet, engineer, or scallywag you have found your way to the contributions documentation. Please continue reading if you would like to contribute or just follow along with the development progress of the package.

Contribution Flow

Anyone may submit issues. In fact, it is encouraged that users submit issues to contribute to the success and improvement of the project. The issues will be reviewed by the captain, and given the proper tags to assist developers. Shipmates that would like to work on pull requests, the workflow is roughly:

  1. Create a topic branch from where you want to base your work (usually master).
  2. Make commits of logical units.
  3. Make commit messages that clearly document the changes.
  4. Push your changes to a topic branch in your fork of the repository.
  5. Make sure the tests pass, and add any new tests as appropriate.
  6. Submit a pull request to the original repository.

Suggested Commit Message Format

A rough convention for commit messages that is designed to answer two questions: what changed and why. The subject line should feature the what and the body of the commit should describe the why.

Example:


noaa: Added XXX functionality to XXXX

** Added the XXX function to XXX to satisfy the need/
requirement for XXX.

** Additional information followed in other bullet points.

Note: It is suggested (but not required) to add the Issue number to the commit message.

Copyright

Copyright © 2022, Brent Barbachem. Released under the MIT License.

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

nautical-4.1.1.tar.gz (29.2 kB view hashes)

Uploaded Source

Built Distribution

nautical-4.1.1-py3-none-any.whl (32.9 kB view hashes)

Uploaded Python 3

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