绘制星系比例关系图的管道。
swiftpipeline的Python项目详细描述
SWIFT管道
此存储库存储新的SWIFT/EAGLE/COLIBRE管道。旧的是 在this url提供。在
基本原理
我们已经有了一条管道,为什么我们需要一条新的?目前的管道 有很多问题。在
- 代码碎片:每个人都有自己的管道版本 他们做了一些小改动,我们不知道是哪个版本 正在运行。这会导致互操作性问题,尤其是 在管道输出和比较脚本之间。在
- 可扩展性:当前管道需要将所有内容合并到 一个主存储库,这些文件只有一个副本。这个 当只需要分析一个模型的时候是可以的,但是现在我们 让EAGLE-XL/COLIBRE/BAHAMAS都运行在不同配置的SWIFT上 (和不同的数字!)是必需的。在
- 比较:当前生成比较图的方法不是 理想的。没有自动生成网页,问题很多 坚持下去。在
这一切之所以发生,是因为在管道项目开始时,我们没有 真正知道范围应该是什么。现在这一点变得更清楚了,我们是 准备好迁移到更可用和更稳定的代码库。在
计划的改进
为了解决上述问题,我们将创建一个新的“管道”(有效地 从旧代码中借用所有代码,只是使用新的“缝合”)。这个 旨在:
- 代码和配置分离。会有一个主程序,
swift-pipeline
,它将把您的配置作为参数来生成 输出。这与当前代码必须 从一个目录中的脚本运行。在 - 拥有一流的解决方案来创建比较。输出文件
从
swift-pipeline
生成的将包含所需的所有信息 完全重新生成图形(包括“脚本”中的图形 恒星形成史)。这些附加打印脚本的API 将使我们能够在一个图形上绘制多条模拟线。在
配置文件的示例集在example
中提供。在
新建脚本API
其他打印脚本,例如用于密度温度的脚本 图,现在应符合以下API并可作为运行:
python3 my_script.py \ -s snapshot_0000.hdf5 snapshot_0001.hdf5 ... \ # These may be from different sims -c halo_0000.hdf5 halo_0001.hdf5 ... \ # Again different sims -d input_directory_one input_directory_two ... \ # Again, different sims -n name_one name_two name_three ... \ # Names for different sims (for legend) -o output_directory \ -C config \ # Config directory containing master config.yml (for obs data and stylesheet)
有关如何实现此功能的示例,请参阅中的示例
example/config/scripts
。在
新建管道API
管道现在可以以两种模式运行:
- 生成所有绘图,重要的是,生成单个快照的输出线数据, 输出行数据现在存储在输入目录中(即 快照)。在
- 生成比较多个模拟()的所有绘图,包括新脚本 通过上面定义的API)使用输出行数据。在
这两种方法都会自动生成包含所有必需数据的网页。在
要运行管道,现在需要使用配置文件和目录。
如上所述,其中一个在example
中提供。它被输送到管道,
它现在充当可执行文件,如下所示:
这将创建/path/to/your/snapshot/data_0000.yml
。一旦你表演了
对于多个模拟,您可以使用以下方法为它们创建一个比较网页:
swift-pipeline -C ~/config \ # Your configuration directory (customised for sim suite) -c example_0000.properties example_0000.properties \ # Name of your catalogue files -s snapshot_0000.hdf5 snapshot_0000.hdf5 \ # Name of your snapshot files -i /path/to/your/A/snapshot /path/to/your/B/snapshot \ # Path to both directories -o ~/plots/output \ # Output directory to store HTML, etc. in.
这就提升了与“头等”公民的比较——他们受到了待遇 就像创建“真实”数据一样。在
安装
要安装管道,可以使用python打包管理器pip
pip3 install swiftpipeline
这将使swift-pipeline
可执行文件可用。在
- 项目
标签: