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.7.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

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

h5darkframes-0.1.7-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: h5darkframes-0.1.7.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-33-generic

File hashes

Hashes for h5darkframes-0.1.7.tar.gz
Algorithm Hash digest
SHA256 1176177c8cfc18ae9518b2f81bbe1b269e3a9da3a5dc8cf37b7229a9baf23f82
MD5 e6948c9853dcd3b5e117fef77bfb5d06
BLAKE2b-256 0c1596cbdb3a1359976cc4a2c5253444368c7c43c15fee249ca486cd5c333716

See more details on using hashes here.

File details

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

File metadata

  • Download URL: h5darkframes-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 30.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-33-generic

File hashes

Hashes for h5darkframes-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 411478f99409d736ded62304b91f2d434c96dd387a42ee8ad0a0dd1096b1d590
MD5 7e4a4ccfda2b6ff665bf56f5f5046811
BLAKE2b-256 c4eda202e2f484fcb6c62f2607b6831ae257fcca9858fbb6d55d0a8cf5d32d54

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