Skip to main content

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

Metadata

Release files for h5darkframes 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for h5darkframes 0.1.7
File Size Uploaded
h5darkframes-0.1.7.tar.gz 20.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for h5darkframes 0.1.7
File Interpreter ABI Platform
h5darkframes-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 51.0 kB

Release files / h5darkframes-0.1.7.tar.gz

Download URL h5darkframes-0.1.7.tar.gz
Size 20.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1176177c8cfc18ae9518b2f81bbe1b269e3a9da3a5dc8cf37b7229a9baf23f82
BLAKE2b-256 checksum
How to use checksums
0c1596cbdb3a1359976cc4a2c5253444368c7c43c15fee249ca486cd5c333716
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-33-generic

Release files / h5darkframes-0.1.7-py3-none-any.whl

Download URL h5darkframes-0.1.7-py3-none-any.whl
Size 30.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
411478f99409d736ded62304b91f2d434c96dd387a42ee8ad0a0dd1096b1d590
BLAKE2b-256 checksum
How to use checksums
c4eda202e2f484fcb6c62f2607b6831ae257fcca9858fbb6d55d0a8cf5d32d54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-33-generic

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page