在科学环境中进行编程实践? [关闭]

2023-12-21

背景

去年,我在一所大学的物理研究小组实习。在这个组中,我们主要使用的是LabVIEW http://en.wikipedia.org/wiki/LabVIEW编写程序来控制我们的设置、进行数据采集和分析我们的数据。对于前两个目的来说,这相当不错,但对于数据分析来说,这确实很痛苦。最重要的是,每个人大多都是自学成才,因此编写的代码通常相当混乱(难怪每个博士都很快决定从头开始重写所有内容)。由于 IT 部门严格的软件和网络法规,版本控制是未知的,并且无法建立。

现在,事情实际上出人意料地顺利,但是自然科学领域的人们如何进行软件开发呢?

问题

一些具体问题:

  • 您使用哪些语言/环境来开发科学软件,尤其是数据分析?什么图书馆? (例如,你用什么来绘图?)
  • 是否有针对没有任何编程背景的人的培训?
  • 你们有版本控制和错误跟踪之类的东西吗?
  • 您将如何尝试创建一个体面的编程环境,而又不会过多妨碍个别科学家(尤其是物理学家都是顽固的人!)

迄今为止的答案摘要

到目前为止的答案(或我对它们的解释):(2008-10-11)

  • Languages/packages that seem to be the most widely used:
    • LabVIEW
    • Python http://en.wikipedia.org/wiki/Python_%28programming_language%29
      • with SciPy http://en.wikipedia.org/wiki/SciPy, NumPy http://en.wikipedia.org/wiki/NumPy, PyLab http://www.scipy.org/PyLab等(另请参阅布兰登的回复以获取下载和链接)
    • C/C++
    • MATLAB http://en.wikipedia.org/wiki/MATLAB
  • 几乎所有受访者都使用版本控制;错误跟踪和其他流程不太常见。
  • Software Carpentry 课程是向科学家教授编程和开发技术的好方法。
  • How to improve things?
    • 不要强迫人们遵守严格的协议。
    • 自己创造一个环境,并将其好处展示给别人。帮助他们开始自己进行版本控制、错误跟踪等工作。
    • 审查其他人的代码可能会有所帮助,但请注意,并非每个人都会欣赏这一点。

您使用什么语言/环境来开发科学软件,尤其是。数据分析?什么图书馆? (例如,你用什么来绘图?)

我曾经工作过设想 http://www.enthought.com,主要企业赞助商SciPy http://www.scipy.org。我们与与 Enthought 签订定制软件开发合同的公司的科学家合作。 Python/SciPy 对于科学家来说似乎是一个舒适的环境。如果您是一位没有软件背景的科学家,那么上手比 C++ 或 Java 更容易上手。

The Enthought Python 发行版 http://www.enthought.com/products/epd.php附带所有科学计算库,包括分析、绘图、3D 可视化等。

是否有针对没有任何编程背景的人的培训?

Enthought确实提供SciPy 培训 http://www.enthought.com/training/SciPy 社区非常擅长回答邮件列表上的问题。

你们有版本控制、错误跟踪之类的东西吗?

是的,是的(Subversion 和 Trac)。由于我们与科学家合作(通常与他们远程合作),因此版本控制和错误跟踪至关重要。一些科学家需要一些指导才能内化版本控制的好处。

您将如何尝试创建一个体面的编程环境,而又不会过多妨碍个别科学家(尤其是物理学家都是顽固的人!)

确保他们熟悉工具链。这需要预先投资,但这会让他们不太愿意拒绝它,而转而选择更熟悉的东西(Excel)。当工具让他们失败时(他们确实会失败),请确保他们有一个可以寻求帮助的地方——邮件列表、用户组、组织中的其他科学家和软件开发人员。让他们重新从事物理研究的帮助越多越好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在科学环境中进行编程实践? [关闭] 的相关文章

  • Bullet/ammo.js 中的刚体(形状)来自 Three.js 中的网格

    我将bullet ammo js 与 Three js 一起使用 我有一个 3d 网格 我想使用精确的形状与软体进行碰撞检测 有没有办法从网格 在 Three js 中 创建 3D 刚体 在项目符号中 这是一个例子 http kidzins
  • 找到发射弹丸的角度以到达特定点

    所以 Dani 在他的稍微新的视频中 gt 制作游戏 但我只有 3 天 https youtu be S7Dl6ATRK2M 制造了一个拥有弓箭的敌人 5 39 我试图重新创建它 但没有运气 我也找不到他使用的网站 今天我发现了这个http
  • 找到点的质心[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有N分 每个点都有 X 和 Y 坐标 我需要找到该点的质心 X 和 Y 你能给我一个算
  • 如何让物体忽略重力(AndEngine)?

    我有一个精灵 有身体 在场景中弹跳 它需要不受重力影响 但也能够与场景中的其他物体发生碰撞 这意味着我无法使用运动体 我试过 body PhysicsFactory createCircleBody mPhysicsWorld this B
  • 在纯 NumPy 中重写 for 循环以减少执行时间

    I 最近询问有关尝试优化科学应用程序的 Python 循环的问题 https stackoverflow com questions 2586749 what is the most platform and python version
  • 是否可以在拉取请求(Github)中更改其他人的代码?

    在 Github 项目上 我看到有人在Pull Requests部分 但我发现他犯了很多错误 因此他的代码需要更正 与其要求他改他的代码 是不是可以自己动手 就是我想自己改他的代码 如何 我也是该项目的成员 而且我是新人 对现有拉取请求启用
  • 从多个 MPI 输出组成 VTK 文件

    对于盖驱动腔 CFD 的格子玻尔兹曼模拟 我将立方域分解为 也是立方 8 个子域 这些子域按 8 个等级独立计算 每个 MPI 等级都会为每个时间步生成一个 VTK 文件 并且由于我使用的是 ParaView 所以我希望将整个事物可视化为一
  • 移动的球从静止的球弹起的角度

    假设有两个球 其中一个在笛卡尔坐标平面内移动 而另一个则静止不动 在某个时刻 移动的球与惰性球发生碰撞 假设移动的球沿直线行进 根据以下信息 如何得出移动的球将被推进的新角度 移动球的中心坐标 X0 Y0 半径 R0 和撞击前的行进角度 A
  • 使用统一的初始脉冲在抛物线路径上移动 2D 物理体

    我拥有的 Unity 5 2D 中的一个射弹 受重力影响 我想以抛物线路径上的初始冲量从 A 点移动到 B 点 我知道的 随机起始位置的二维坐标 A 随机目标位置的二维坐标 B 我希望身体到达目标位置的时间 X 我想知道的是 我必须一次向身
  • 云中安全的协作软件开发环境

    我正在寻找一个安全的协作软件开发环境 例如在云中工作的 Chaperon 它应该防止代码被复制粘贴到环境之外 并且应该采取一切措施来防止 检测和阻止 IP 盗窃 当然 它应该包括用于颠覆跟踪和调试的所有常用 IDE 工具 有什么建议么 这样
  • 对于接近统一的值,浮点数学是否更精确?

    Question 我多次被告知 如果运算的数字接近于浮点运算 则浮点运算具有最高的精度 1 0 或者有时0 1 有没有道理呢 澄清 我所说的 算术 是指诸如a b a b a b 但是也sqrt x 和其他数学函数 具体来说 假设所有变量都
  • 数值求解非线性方程

    我需要解决 Java 程序中的非线性最小化 N 个未知数的最小残差平方 问题 解决这些问题的常用方法是莱文伯格 马夸特 http en wikipedia org wiki Levenberg Marquardt algorithm算法 我
  • 编辑摊牌:在句子末尾保留换行符

    编辑非所见即所得 LaTeX HTML 等 散文时 您可能希望在句子末尾添加换行符 这有几个优点 更容易重新排列句子 更容易注释句子 更容易发现连续 过长的句子 评论更方便on句子 例如 The following isn t strict
  • 科学计算中如何处理下溢?

    我正在研究概率模型 当对这些模型进行推理时 估计的概率可能会变得非常小 为了避免下溢 我目前在对数域中工作 我存储概率的对数 概率相乘相当于加法 求和是通过以下公式完成的 log exp a exp b log exp a m exp b
  • 有哪些算法可以让我模拟行星物理?

    我有兴趣制作一个 太阳系 模拟器 它可以让我模拟行星和恒星的旋转力和引力 我想说的是 模拟我们的太阳系 并以不同的速度模拟它 即观察地球和其他行星绕太阳旋转数天 数年等 我希望能够添加行星并改变行星质量等 看看它会如何影响系统 有谁有任何资
  • Python物理库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 Linux 的 Python 的最新物理库 我刚刚开始使用 PyGame 来学习 Pyt
  • HDF5 存储开销

    我正在将大量小数据集写入 HDF5 文件 生成的文件大小约为我所输入数据的简单制表所期望的文件大小的 10 倍 我的数据按层次结构组织如下 group 0 gt subgroup 0 gt dataset dimensions 100 x
  • 刚体物理旋转

    我想在 Java 中创建一个物理引擎 然而 这不是我担心的代码 这只是刚体物理学的数学 特别是力以及它们如何影响物体的旋转 举例来说 我有一个边长相同的正方形 由于重力 无空气阻力 正方形将加速向地面移动 这意味着正方形中的每个点都会有 0
  • 什么是适用于 .net (C#) 的优秀免费(开源)BLAS/LAPACK 库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个用 C 编写的项目 需要对矩阵进行各种线性代数运算 例如 LU 分解 由于该程序主要是为了证实
  • 使用 scipy、python、numpy 进行非线性 e^(-x) 回归

    下面的代码为我提供了一条最佳拟合线的平坦线 而不是沿着 e x 模型的一条适合数据的漂亮曲线 谁能告诉我如何修复下面的代码以使其适合我的数据 import numpy as np import matplotlib pyplot as pl

随机推荐

  • 删除 AJAX 响应中的空白

    我有一个返回的 php 脚本0 28 然后使用 AJAX 将其提取到 HTML 并插入到跨度中 问题是 它插入了 5 个空格 并且似乎是换行符 然后 jQuery 将其视为更改 并在没有更改时使用新值更新现有范围 看来空格不是来自 php
  • 在 Windows 服务器上设置 RabbitMQ 集群

    我正在尝试在 Windows 服务器上设置 RabbitMQ 集群 这需要使用共享的 Erlang cookie 文件 根据文档 我需要做的就是确保不同机器上的根目录包含相同的 erlang cookie 文件 所以我所做的就是在两台机器上
  • 序列压缩?

    最近我遇到了一个让我很困惑的问题 问题是 我想压缩一个序列 这样就不会丢失任何信息 例如 一个 一个 一个 b gt 一个 b a b a a c gt a b a a c 它不能被压缩为 a b a c 因为这样我们会丢失 a a 有什么
  • 下一页 13.4 错误:API 路由中的 NEXT_REDIRECT

    我的 app api auth route ts 文件 import redirect from next navigation export async function GET req Request try redirect dash
  • 是否可以在不初始化的情况下使用数组?

    我从 Stack Overflow 上看到了一些代码 这让我很困惑 我只是不知道是否缺少某些部分 代码如下 ch curl init captcha url curl setopt ch CURLOPT USERAGENT this gt
  • 快速提供静态文件和路由

    我正在使用express js 我的根路径是 xyz 如果路径是 xyz api 我想为我想要提供静态文件的任何其他路径提供 json 例如 xyz abc 或 xyz def bjk 等 我当前的配置如下 app use xyz path
  • JavaScript 中的 me = this 是支持缩小的好习惯吗?

    所以在我的 JavaScript 代码库中我一直在使用var me this支持缩小的习惯用法 但我最近开始质疑这一点 我想知道是否分配this使用更智能的缩小工具可以避免变量的变化吗 似乎工具应该能够检测创建变量来表示的函数this将通过
  • 将列逆透视为行(oracle)

    很像这个原来的SO在 Oracle 中动态地将行转换为列 https stackoverflow com questions 7730111 pivoting rows into columns dynamically in oracle
  • 尝试执行 google 脚本时出现 403

    我正在尝试通过 API 执行谷歌脚本 我已授权所有必要的范围 包括我的参数 函数和开发模式 POST https script googleapis com v1 scripts scriptId run devMode true func
  • 安装 Airflow 时出错:默认情况下 Airflow 的依赖项之一安装 GPL

    运行后出现如下错误pip install airflow postgres 命令 gt raise RuntimeError By default one of Airflow s dependencies installs gt a GP
  • 如何让 =NULL 在 SQLite 中工作?

    给出下表 Table Comedians Id First Middle Last 1 Bob NULL Sagat 2 Jerry Kal Seinfeld 我想做以下准备好的查询 SELECT FROM Comedians WHERE
  • 资产“application.js”不存在于资产管道中

    我是新来的Ruby and in ROR框架 我尝试使用 JQuery 创建网络应用程序 我的步骤是 添加 gem jquery rails 并执行捆绑安装来自命令行的命令 String require jquery2添加到应用程序 js
  • pandas to_sql 所有列均为 nvarchar

    我有一个动态创建的 pandas 数据框 其列名称各不相同 我试图将它们推送到 sql 但不希望它们作为默认数据类型 文本 转到 mssqlserver 任何人都可以解释为什么这是默认值吗 使用更常见的数据类型是否有意义 有谁知道如何为所有
  • Numpy:有效求和 M 的子矩阵 m [重复]

    这个问题在这里已经有答案了 如果我知道每个方子矩阵 m 2x2 的维数 并且大方阵 M 的维数可以被维数 m 整除 M modulo m 0 有没有一种有效的方法来求和以下矩阵 M M array 1 1 1 1 1 1 1 1 1 1 1
  • PowerShell:打破嵌套循环

    应该有一个breakPowerShell 中的命令可以通过分配标签退出嵌套循环 只是它不起作用 这是我的代码 timestampServers http timestamp verisign com scripts timstamp dll
  • 包恢复的 Nuget 版本控制问题

    由于 Nuget 存在某种版本控制问题 我无法安装包 使用包还原 以下是我采取的步骤 构建项目 错误 MagicalUnicorn MvcErrorToolkit 的架构版本与 NuGet 版本 1 6 21205 9031 不兼容 请将
  • 在 React 中导入目录

    我在 src 中有一个组件目录 其中有一个名为计算器的目录 然后它有 3 个不同的组件 而不是导入所有 3 个组件 我在想是否可以只导入目录计算器 组件之一具有以下代码 import React from react import Text
  • 霍夫曼压缩算法

    我已经使用霍夫曼算法实现了文件压缩 但我遇到的问题是 要启用压缩文件的解压缩 所使用的编码树或代码本身也应该写入文件 问题是 我该怎么做 在压缩文件的开头编写编码树的最佳方法是什么 霍夫曼编码有一个非常标准的实现基本压缩库 BCL http
  • 如何将表格视图单元格附件应用于表格视图记录

    解释 我有一个从 JSON 填充的 UITableView 表视图的目的是让用户选择单独的行记录并让复选标记附件显示为结果 问题是 虽然我可以让选中的行出现复选标记 但复选标记应用于该行 而不是记录本身 例如 如果我在 tableview
  • 在科学环境中进行编程实践? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 背景 去年 我在一所大学的物理研究小组实习 在这个组中 我们主要使用的是LabVIEW http en wikipedia org w