跳转到主要内容

基于面的射电天文学连续成像仪

项目描述

基于面的射电成像软件包

版权 (C) 2013-2024 Cyril Tasse,巴黎天文台,南非SKA,南非射电天文台,罗德大学

本程序是自由软件;您可以重新分配它并/或修改它,具体请参阅由自由软件基金会发布的GNU通用公共许可证的条款;许可证的第2版,或者(根据您的选择)任何后续版本。

本程序的分发是希望它将是有用的,但没有任何保证;甚至没有对适销性或特定用途适用性的暗示保证。有关详细信息,请参阅GNU通用公共许可证。

(用户/PyPI替代)虚拟环境和pip

我们希望用户通过Docker使用DDFacet。然而,如果这不可用(例如集群环境),我们建议您使用虚拟环境。如果您将其直接安装到系统软件包中,那么您将自行负责——警告!!

警告:如果您之前已在环境中安装了numpy,可能会遇到问题——如果安装的numpy版本早于在隔离过程中拉取的构建系统版本,则构建隔离将失败。您可能需要在安装时使用–no-build-isolation,或者更好的方法是确保在空的新虚拟环境中安装DDF和KillMS。

  1. 安装每个Debian依赖项。最新的apt依赖项完整列表可以在Dockerfile <https://github.com/saopicc/DDFacet/blob/master/docker.2204>中找到

  2. 在您的系统上的某个位置创建虚拟环境并激活它

    virtualenv ddfacet
    source ddfacet/bin/activate
  3. 然后,使用pip直接从Python包索引(PyPI)安装 - 确保您的venv已激活

    pip install -U pip
    pip install DDFacet
  1. 完成成像业务后

    deactivate

(用户/可选)FitsBeam、Montblanc、Moresane、Killms支持

可选要求,如FITS波束,可以通过在括号中指定它们来安装。例如,pip install “/src/DDFacet/[dft-support,moresane-support,testing-requirements,fits-beam-support,kms-support]”

(用户/故障排除)配置最大共享内存

在大型图像上运行DDFacet需要大量的共享内存。大多数系统将共享内存限制在大约10%。要增加此限制,请将以下行添加到您的/etc/default/tmpfs文件中

SHM_SIZE=100%

此更改需要重新启动才能生效。如果您希望一次性解决,请执行以下命令

sudo mount -o remount,size=100% /run/shm

可能还需要运行以下命令以移除mlock pinning的内核安全限制。否则,速度可能比平时慢

echo "*        -   memlock     unlimited" > /etc/security/limits.conf

(开发者/注意):架构相关二进制文件

默认构建系统配置不会产生可移植的二进制文件,这会略微提高运行时间。您必须在编译软件包之前修改pyproject.toml并设置以下行

` cmake.define = {ENABLE_NATIVE_TUNING = "ON", ENABLE_FAST_MATH = "ON", ENABLE_PYTHON_2 = "OFF", ENABLE_PYTHON_3 = "ON"} `

(开发者/测试) 基于Docker的构建

  1. 简单地拉取最新的DDFacet并构建Docker镜像

    git clone git@github.com:cyriltasse/DDFacet.git
    cd DDFacet
    docker build -t ddf -f docker.2204 .
  2. 现在您应该能够在容器中运行DDFacet。请注意,您的parsets必须具有相对于容器内挂载卷的相对文件名,例如

    docker run --shm-size 6g -v /scratch/TEST_DATA:/mnt ddf /mnt/test-master1.parset

重要:如果您在构建Docker镜像之前运行了“git submodule update –init –recursive”,则可能需要删除缓存的SkyModel,可以使用“git rm –cached SkyModel”

(开发者/调试) 构建一些库(通过手动使用自定义标志)

您可以对库的定制版本进行构建,例如libPython和定制的numpy版本。为此,修改pyproject.toml。找到并修改以下行:: ` cmake.build-type = "ReleaseWithDebugSymbols" # 可以设置为 Debug e.g. cmake.define = {ENABLE_NATIVE_TUNING = "OFF", ENABLE_FAST_MATH = "ON", ENABLE_PYTHON_2 = "OFF", ENABLE_PYTHON_3 = "ON"} # 可以调整以启用处理器特定的优化 ` 您还可以通过这些 `cmake.define` 指定其他库的路径设置,如果您已经自定义构建了,例如通过这些 `cmake.define`

(开发者/验收测试)

路径

将此添加到您的 .bashrc

export DDFACET_TEST_DATA_DIR=[folder where you keep the acceptance test data and images]
export DDFACET_TEST_OUTPUT_DIR=[folder where you want the acceptance test output to be dumped]

要使用Jenkins测试您的分支与master分支

大多数核心用例将在不久的将来具有参考图像和自动化的验收测试。

不要 对cyriltasse/master进行提交。正确的策略是分支/分叉,并在GitHub上创建一个拉取请求以合并更改到master。一旦打开了拉取请求,请添加以下评论:“ok to test”。这将让Jenkins服务器知道开始测试。您应该看到拉取请求和提交状态显示“挂起”。如果测试成功,您应该在绿色合并按钮上方看到“所有检查都通过”。一旦代码被审查,它将被合并到master分支。

在本地机器上运行测试

您可以通过从网络获取最新的测量集和参考图像并将它们提取到您在环境变量DDFACET_TEST_DATA_DIR中设置的目录中来运行自动测试。您可以通过进入DDFacet目录并运行nosetests来运行自动测试。

每个测试用例都有一个类名标签,并具有相同名称的参考图像和parset文件,例如,如果失败的测试用例名为“TestWidefieldDirty”,则参考图像也将同名。您应该调查测试用例的输出与您的更改代码库生成的图像之间任何严重差异的原因。查看类ClassCompareFITSImage顶部文档字符串以获取帮助和文件名约定。

验收测试数据可以在Jenkins服务器上的 /var/lib/jenkins/test-data 目录中找到。

添加更多测试和创建新的参考图像。

要重新模拟图像并添加更多测试

在Jenkins服务器数据目录中,向makefile中添加一个配方来模拟和/或设置新的参考图像。这只能在origin/master分支上完成 - 不要使用您的分支或分叉!使用ddfacet-generate-refims任务来完成此操作。当您重新生成它们时,应手动验证所有参考图像是否正确。每次您向DDFacet添加一个新选项时,也请在此目录的makefile中添加一个选项。一旦在makefile中设置了选项,您就可以在Jenkins上构建参考图像。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

ddfacet-0.8.0.0.tar.gz (803.2 kB 查看哈希值)

上传时间

由以下机构支持: