【问题标题】:Python script for controlling ASCOM CCD camera?用于控制 ASCOM CCD 相机的 Python 脚本?
【发布时间】:2017-09-11 19:21:05
【问题描述】:

我想使用 ASCOM 驱动程序在 Python 中控制 CCD 天文相机,但没有找到示例脚本来展示它是如何完成的。

我想看看相机的基本控制是如何完成的——设置曝光长度、开始曝光、下载图像数据。

有人可以发布一个示例 Python 脚本,我可以将其用作起点吗?

【问题讨论】:

  • 这个链接可能对你有帮助lowmagnitude.com/2012/12/…
  • 谢谢,但我知道这些(Google 也是我的朋友)。它们都没有显示与相机交谈的代码。
  • @nerdfever.com 你能解释为什么这些链接不包含完整的信息。您对相机“交谈”的具体含义是什么。我会考虑那里的示例以满足该标准。例如tel = win32com.client.Dispatch("Celestron.Telescope");tel.SlewToCoordinates(12.34, 86.7) 肯定会与摄像机“对话”......不幸的是,这些记录不充分的事情很常见。你看过PlatformDeveloperHelp.chm 文件吗?
  • @nerdfever.com 您可能很难找到这样的 Python 参考,因为它是一个 .NET 程序。我建议下载 .NET client toolkit 并阅读 C# 示例代码,该代码演示了底层命名空间的此类用途。您必须调整 .NET 代码以与 Python 中的 win32com 一起使用,或者使用 IronPython 直接使用 .NET 代码,如前面链接的示例中所示。您可能想研究以这种方式使用 win32com 或使用 IronPython 与 .NET 代码交互的一般主题。

标签: python ascom


【解决方案1】:
import win32com.client
from astropy.io import fits

# if you don't know what your driver is called, use the ASCOM Chooser
#x = win32com.client.Dispatch("ASCOM.Utilities.Chooser")
#x.DeviceType = 'Camera'
#driver = x.Choose(None)

# otherwise, just use it
driver = "ASCOM.AtikCameras.Camera"

camera = win32com.client.Dispatch(driver)
camera.connected = True
camera.CoolerOn = True

openshutter = True # False will take a dark frame
exptime = 1
camera.StartExposure(exptime,openshutter)
image = camera.ImageArray

hdu = fits.PrimaryHDU(image)
hdu.writeto('test.fits')

# see more camera methods/properties here:
# https://ascom-standards.org/Help/Developer/html/T_ASCOM_DriverAccess_Camera.htm

【讨论】:

    猜你喜欢
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    相关资源
    最近更新 更多