Skip to main content

Adv2reader reads version 2 Astro Digital Video files.

Project description

Adv2

This package provides a 'reader' for .adv (AstroDigitalVideo) Version 2 files.

It is the result of a collaborative effort involving Bob Anderson and Hristo Pavlov.

The specification for Astro Digital Video files can be found at: http://www.astrodigitalvideoformat.org/spec.html

To install this package on your system:

pip install Adv2

Then, sample usage from within your Python code is:

from pathlib import Path

from Adv2.Adv2File import Adv2reader

try:
    # Create a platform agnostic path to your .adv file (use forward slashes)
    file_path = str(Path('path/to/your/file.adv'))  # Python will make Windows version as needed

    # Create a 'reader' for the given file
    rdr = Adv2reader(file_path)

except AdvLibException as adverr:
    print(repr(adverr))
    exit()

except IOError as ioerr:
    print(repr(ioerr))
    exit()

Now that the file has been opened and a 'reader' (rdr) created for it, there are instance variables available that will be useful. Here is how to print some of those out (these give the image size and number of images in the file):

print(f'Width: {rdr.Width}  Height: {rdr.Height}  NumMainFrames: {rdr.CountMainFrames}')

There is also an composite instance variable called FileInfo which gives access to all of the values defined in the structure AdvFileInfo (there are 20 of them).

For example:

print(rdr.FileInfo.UtcTimestampAccuracyInNanoseconds)

To get (and show) the file metadata (returned as a Dict[str, str]):

print(f'\nADV_FILE_META_DATA:')
meta_data = rdr.getAdvFileMetaData()
for key in meta_data:
    print(f'    {key}: {meta_data[key]}')

The main thing that one will want to do is read image data, timestamps, and frame status information from image frames.

Continuing with the example and assuming that the adv file contains a MAIN stream (it might also contain a CALIBRATION stream):

for frame in range(rdr.CountMainFrames):

    # status is a Dict[str, str]
    err, image, frameInfo, status = rdr.getMainImageAndStatusData(frameNumber=frame)
    # To get frames from a CALIBRATION stream, use rdr.getCalibImageAndStatusData()

    if not err:
        # If timestamp info was not present in the file (highly unlikely),
        # the timestamp string returned will be empty (== '')
        if frameInfo.StartOfExposureTimestampString:
            print(frameInfo.DateString, frameInfo.StartOfExposureTimestampString)
        print(f'\nframe: {frame} STATUS:')
        for entry in status:
            print(f'    {entry}: {status[entry]}')
    else:
        print(err)

err is a string that will be empty if image bytes and metadata where successfully extracted. In that case, image will contain a numpy array of uint16 values. If err is not empty, it will contain a human-readable description of the error encountered.

The 'shape' of image will be image[Height, Width] for grayscale images. Color video files are not yet supported.

Finally, the file should closed as in the example below:

print(f'closeFile returned: {rdr.closeFile()}')
rdr = None

The value returned will be the version number (2) of the file closed or 0, which indicates an attempt to close a file that was already closed.

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

Adv2-1.0.0.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Adv2-1.0.0-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

Details for the file Adv2-1.0.0.tar.gz.

File metadata

  • Download URL: Adv2-1.0.0.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.4

File hashes

Hashes for Adv2-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a8e6e7c809cbd716ecf815c45d9baf770a088a5a60f9a150733968c809568238
MD5 75a421c41eba5ea302ed0ce0c0e5be83
BLAKE2b-256 728f2b7b130b359a0396fb4159b1fd9012dab451ffb5c985852bf7fe37115657

See more details on using hashes here.

File details

Details for the file Adv2-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: Adv2-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.4

File hashes

Hashes for Adv2-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2e04ef6d11c3049d07ab9601c565e77546fe371a33e1b43cfb2371fd4a893845
MD5 a4615f7982806d751ed86570a8362702
BLAKE2b-256 9724f54c37c57eee3c75eb3c636153568967115c015c0f29673fff3408367f23

See more details on using hashes here.

Supported by

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