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

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(使用前将#替换为@)

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

  • 无法在不扰乱重力的情况下翻转球的方向

    我正在制作一款类似乒乓球的游戏 只不过只有一个球拍并且球以抛射运动移动 目标是让球尽可能长时间地在球拍上弹跳 当球被球拍击中时 y其速度分量的符号翻转 问题是重力也作用在球上 因此当球向上击打时 由于重力的反向作用 球会加速 这是球类的代码
  • 计算将 Box2D 主体移动到特定位置的正确冲击力或力 - Box2D

    我有一个关于将 Box2D 主体移动到特定位置而不使用此示例的问题 body gt SetTransform targetVector body gt GetAngle 我有一些适用于 applyForce 的代码 here const f
  • 如何让物体忽略重力(AndEngine)?

    我有一个精灵 有身体 在场景中弹跳 它需要不受重力影响 但也能够与场景中的其他物体发生碰撞 这意味着我无法使用运动体 我试过 body PhysicsFactory createCircleBody mPhysicsWorld this B
  • THREE.js - 旋转移动 3D 球

    我是 THREE js 的新手 对物理学的了解非常少 但我正在尝试构建一个足球游戏引擎 从顶部看 而现在我正在努力处理球的运动 当尝试将球从一侧移动到另一侧时 旋转始终面向一个方向 我不明白如何使其沿其移动方向旋转 我添加了一个简单的代码来
  • 了解自适应龙格库塔积分器的局部截断误差

    我正在实现一个 RKF4 5 积分器 我无法确定我的代码是否正常工作 并且我不明白本地截断错误 或者我的代码是否无法正常工作 对于代码块的大小 我深表歉意 但在这种情况下 最小可重现示例相当大 import numpy as np def
  • 多个物体之间的碰撞

    我正在编写一个简单的物理系统来娱乐 但我遇到了一个让我陷入困境的问题 现在的基本算法是 移动物体 检查是否有碰撞 If there was a collision 将对象移动最小距离以解决碰撞 根据法线 质量等调整速度 我有一个移动的物体朝
  • 如何将本地文件夹连接到 Git 存储库并开始在分支上进行更改?

    我是源代码管理新手 过去 我手动备份文件副本并对克隆进行更改 然后在调试后将更改手动传输到主文件 我意识到这类似于分支与 Git 存储库的工作方式 但我从未使用过 我下载了 Git 并在 GitLab 上注册了一个帐户 并开始了一个新项目
  • 概念性 iPhone 2d 游戏开发问题。石英?科科斯2d?花栗鼠?盒子2d?

    我是 iPhone 开发新手 想编写一款涉及 2d 碰撞的游戏 有人可以给我一个概念性概述 说明各种框架如何在典型的 2D 碰撞游戏中交互吗 到目前为止 我看到提到的候选者是 2d 软件包 例如quartz 和 cocos2d 以及物理引擎
  • 在 SceneKit 中模拟折射

    我正在尝试为一个项目创建一个 ios 9 应用程序 它将使用这些特殊的理论镜头 称为 一个名为 TIM 的光线追踪程序已经从头开始编写 用于模拟这些镜头等 但简单地将其移植到 ios 是不可行的 我通过搜索网站得到的理解 即this htt
  • 编辑摊牌:在句子末尾保留换行符

    编辑非所见即所得 LaTeX HTML 等 散文时 您可能希望在句子末尾添加换行符 这有几个优点 更容易重新排列句子 更容易注释句子 更容易发现连续 过长的句子 评论更方便on句子 例如 The following isn t strict
  • 辛积分器帮助

    我正在尝试开发物理模拟 并且想要实现四阶辛积分 http en wikipedia org wiki Symplectic integration方法 问题是我的数学一定是错误的 因为使用辛积分器时我的模拟根本不起作用 与模拟效果相当好的四
  • 如何处理多个同时发生的弹性碰撞?

    我通过碰撞二维凸面物体对 不旋转 来计算结果 使用维基百科上的基本方程 http en wikipedia org wiki Elastic collision 但是 当存在依赖关系时 例如两个对象同时撞击另一个对象 例如这里 当对象 1
  • 尝试访问 heroku 控制台时“您无权访问该应用程序”

    我最近开始在 Heroku 上使用 Ruby on Rails 合作开展一个项目 我被添加为协作者并将遥控器添加到我的环境中 经过一些开发 我推送了一些更改 没有出现任何问题 git push staging 其中 staging 是我的遥
  • Scipy的solve_ivp函数的文档中字母k是什么意思?

    Solve ivp 是 Scipy 中的初始值问题求解器函数 简单来说 scipy integrate solve ivp 乐趣 t span y0 方法 RK45 t eval 无 dense output False 事件 无 向量化
  • 使用 C 编译器选项捕获浮点异常 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 Gfortran有得心应手的 ffpe trap编译器选项 但没有类似的选项可用gcc 我隐约意识到他们处理异常的方式不同 但不足以知道为什
  • 使用 Box2D 制作角色动画的最佳方法是什么?

    我正在为 Android 开发一款 2D 水下动作角色扮演游戏 使用 Box2D 作为物理引擎 主要用于碰撞检测 碰撞响应以及游戏角色在由墙壁 岩石和其他生物组成的环境中的移动 我尝试了两种不同的方法来使用 Box2D 实现角色动画 但都发
  • JavaScript 和科学处理? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Matlab R 和 Python 功能强大 但对于我想做的一些数据挖掘工作来说要么成本高昂 要么速度缓慢 我正在考虑使用 Javascript
  • 如何弥补丢失的引用来声明字段(numpy)?

    假设我有一个包含很多字段的类 并且我想使初始化程序适用于所有字段 这样我就不需要为每个字段编写初始化程序 class Foo def init n self n n self x None self m None self v None 但
  • C# 中的 N 体模拟

    我正在尝试使用 Runge Kutta 4 或 Velocity Verlet 集成算法在 C 中实现 N 体模拟 在我转向更多数量的粒子之前 我想通过模拟地球绕太阳的轨道来测试模拟 但是 由于某种原因 我得到的不是椭圆轨道 而是一个奇怪的
  • 二维宇宙飞船运动数学

    我正在尝试制作一款自上而下的太空飞船游戏 我希望动作更加真实 360度 有惯性 重力等 我的问题是我可以毫无问题地让船以惯性移动 360 但我需要做的是限制发动机的运行速度 同时不限制其他推 拉船的力 因此 如果发动机速度最大为 500 并

随机推荐

  • 删除 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