绘制星系比例关系图的管道。

swiftpipeline的Python项目详细描述


SWIFT管道

此存储库存储新的SWIFT/EAGLE/COLIBRE管道。旧的是 在this url提供。在

基本原理

我们已经有了一条管道,为什么我们需要一条新的?目前的管道 有很多问题。在

  1. 代码碎片:每个人都有自己的管道版本 他们做了一些小改动,我们不知道是哪个版本 正在运行。这会导致互操作性问题,尤其是 在管道输出和比较脚本之间。在
  2. 可扩展性:当前管道需要将所有内容合并到 一个主存储库,这些文件只有一个副本。这个 当只需要分析一个模型的时候是可以的,但是现在我们 让EAGLE-XL/COLIBRE/BAHAMAS都运行在不同配置的SWIFT上 (和不同的数字!)是必需的。在
  3. 比较:当前生成比较图的方法不是 理想的。没有自动生成网页,问题很多 坚持下去。在

这一切之所以发生,是因为在管道项目开始时,我们没有 真正知道范围应该是什么。现在这一点变得更清楚了,我们是 准备好迁移到更可用和更稳定的代码库。在

计划的改进

为了解决上述问题,我们将创建一个新的“管道”(有效地 从旧代码中借用所有代码,只是使用新的“缝合”)。这个 旨在:

  1. 代码和配置分离。会有一个主程序, swift-pipeline,它将把您的配置作为参数来生成 输出。这与当前代码必须 从一个目录中的脚本运行。在
  2. 拥有一流的解决方案来创建比较。输出文件 从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

管道现在可以以两种模式运行:

  1. 生成所有绘图,重要的是,生成单个快照的输出线数据, 输出行数据现在存储在输入目录中(即 快照)。在
  2. 生成比较多个模拟()的所有绘图,包括新脚本 通过上面定义的API)使用输出行数据。在

这两种方法都会自动生成包含所有必需数据的网页。在

要运行管道,现在需要使用配置文件和目录。 如上所述,其中一个在example中提供。它被输送到管道, 它现在充当可执行文件,如下所示:

^{pr2}$

这将创建/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可执行文件可用。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何修改打印板?   java Spring批处理JdbcCursorItemReader还是RepositoryItemReader?   java如何在JTable Swing中增加标题列的字体?   java在数组方面遇到问题,导致表达式非法启动   java如何为maven pom的某些部分关闭Eclipse代码格式化程序。xml   java Dropwizard登录代码   java Jersey 2.22:客户端的默认连接超时是多少?   java无法自动连接字段:javax。sql。数据来源   如何从java中的行列表中获取单词列表?   java JDBC批量更新和处理异常?   计算大根:bigdecimal/java   java如何在JavaCC语法中提到trycatch块   javasocket。getInetAddress()不返回任何内容   oracle SQL开发人员错误无法找到Java虚拟机   java我如何计算和显示未来5年每一年的投资价值   java如何关闭浏览器选项卡?   java如何在showMessageDialog中打印双2D数组?   java从站点抓取播放列表URL?   selenium中的java点击css按钮