Skip to main content

python API for creating and using hdf5 darkframes libraries

Project description

unit tests mypy

H5DARKFRAMES (beta)

H5Darkframes is a python library for generating and using darkframes library. For now, it supports only asi zwo cameras (see https://github.com/MPI-IS/camera_zwo_asi).

This is beta, and need some more testing

Installation

from source:

git clone https://github.com/MPI-IS/h5darkframes.git
cd h5darkframes
pip install .

from pypi:

pip install h5darkframes

Usage

Assuming that camera-zwo-asi is installed and a camera is plugged:

creating a darkframe library

First, a configuration file must be created. In a terminal:

darkframes-zwoasi-config

This will create in the current directory a file darkframes.toml with a content similar to:

[darkframes]
average_over = 5

[camera.controllables]
AutoExpMaxExpMS = 30000
AutoExpMaxGain = 285
AutoExpTargetBrightness = 100
BandWidth = "auto"
CoolerOn = 0
Exposure = 300
Flip = 0
Gain = 400
HighSpeedMode = 0
MonoBin = 0
Offset = 8
TargetTemp = 26
WB_B = 95
WB_R = 52

[camera.roi]
start_x = 0
start_y = 0
width = 4144
height = 2822
bins = 1
type = "raw8"

[darkframes.controllables.TargetTemp]
min = -15
max = 15
step = 3
threshold = 1
timeout = 600

[darkframes.controllables.Exposure]
min = 1000000
max = 30000000
step = 5000000
threshold = 1
timeout = 0.1

[darkframes.controllables.Gain]
min = 200
max = 400
step = 100
threshold = 1
timeout = 0.1

You may edit this file to setup:

  • your desired camera configuration

  • the controllables over which darkframes will be created, and over which range

  • the number of pictures that will be averaged per darkframes

For example:

[darkframes.controllables.TargetTemp]
min = -15
max = 15
step = 3
threshold = 1
timeout = 600

implies that darkframes will be taken for values of temperature -15, -12, -9, ... up to +15.

creating the darkframes library

Call in a terminal:

# change "mylibraryname" to a name of your choice
darkframes-zwoasi-library --name mylibraryname

You may get stats regarding the library (requires a file 'darkframes.hdf5' in the current directory):

darkframes-info

using the library

import h5darkframes as dark
import camera_zwo_asi as zwo
from pathlib import Path

# path to the library
path = Path("/path/to/darkframes.hdf5")

# handle over the library
library = dark.ImageLibrary(path)

# handle over the camera
camera = zwo.Camera(0)

# taking a picture. Image is an instance of zwo.Image
image = camera.capture()

# getting the current camera configuration
controls = camera.get_controls()

# "Temperature", "Exposure" and "Gain" must be the
# controllables that have been iterated over
# during the creation of the library
darkframe_target = {
       "Temperature": controls["Temperature"].value,
       "Exposure": controls["Exposure"].value,
       "Gain": controls["Gain"].value
}

# getting the darkframe that is the closest to the target
# darkframe: a numpy array
# darkframe_config: the config of the camera when the darkframe was taken
darkframe, darkframe_config= library.get(darkframe_target)

# optional sanity checks
assert image.get_data().shape == darkframe.shape
assert image.get_data().dtype = darkframe.dtype

# substracting the darkframe
substracted_image = image.get_data()-darkframe

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

h5darkframes-0.1.5.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

h5darkframes-0.1.5-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file h5darkframes-0.1.5.tar.gz.

File metadata

  • Download URL: h5darkframes-0.1.5.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.8.10 Linux/5.15.0-117-generic

File hashes

Hashes for h5darkframes-0.1.5.tar.gz
Algorithm Hash digest
SHA256 cbee1a5d07eccfad3000f02f770c25a0bfcbf9125fa2477d9b193323dafc5509
MD5 6b7b81a04928807a094d2f6a0d851a44
BLAKE2b-256 c442bd279aa5102cc0224fb4aa2dc48620f0aaefb891bb80a22433d92a9c4cb5

See more details on using hashes here.

File details

Details for the file h5darkframes-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: h5darkframes-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.8.10 Linux/5.15.0-117-generic

File hashes

Hashes for h5darkframes-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d5c0a27e261a29d963c7c424c09041fcc365354c2aba83ee0293908ab003ce39
MD5 30e3040259553efcdae2db666e88d7de
BLAKE2b-256 00f440890d20c474ec9d0490288d1d7ba19d86e7c4a39c9053a1c6b1c03431a6

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