问题标签 [idl-programming-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
astronomy - 交互式数据语言,IDL:有人关心吗?
有人使用称为交互式数据语言(IDL)的语言吗?它很受科学家欢迎。我认为它是一种糟糕的语言,因为它是专有的(运行它的每个终端都必须购买昂贵的许可证)并且它的支持很少(尝试搜索 IDL,这种语言,现在在堆栈上)。我试图说服我的同事停止使用它并学习 C/C++/Python/Fortran/Java/Ruby。有没有人足够了解甚至关心 IDL 并对此发表意见?你怎么看呢?我应该告诉我的同事现在不要再在这上面浪费时间了吗?我怎样才能说服他们?
编辑:人们得到的印象是我不知道或不使用 IDL。另外,我说 IDL 的支持很少,这在某种意义上是正确的,所以我必须澄清一下,科学图书馆确实很大。我一直使用 IDL,但这正是问题所在:我只使用 IDL,因为同事使用它。IDL 使用了一种文件格式,即 .sav,它只能在 IDL 中打开。所以我必须使用 IDL 来处理这些数据并将数据传回给同事,但我知道我使用另一种语言会更有效率。这就像有人在电子邮件附件中向您发送了一个 microsoft word 文件,如果您不明白这是多么错误,那么您可能写了太多单词而没有足够的代码,然后您购买了 microsoft word。
编辑:作为 IDL Python 的替代品很受欢迎。这是来自AstroBetter的 IDL 的优点(和缺点)列表:
IDL 的优点
- 成熟的许多数值和天文库可用
- 广泛的天文用户群
- 数字方面与语言本身很好地结合在一起
- 许多本地用户经验丰富
- 小阵列更快
- 安装更简单
- 好的,统一的文档
- 标准 GUI 运行/调试工具 (IDLDE)
- 单一小部件系统(无需担心选择或学习)
- 保存/恢复功能
- 使用关键字参数作为标志更方便
IDL 的缺点
- 适用性窄,不太适合一般编程
- 大型阵列较慢
- 阵列功能不太强大
- 表支持差
- 使用 C 或 Fortran 扩展的能力有限,此类扩展难以分发和支持
- 与没有或负担不起许可证的其他人合作昂贵,有时会出现问题。
- 闭源(只有 RSI 可以修复错误)
- 与 IRAF 任务集成非常尴尬
- 内存管理更尴尬
- 单个小部件系统(如果在另一个框架中工作则无用)
- 绘图:
- 对符号和数学文本的尴尬支持
- 许多字体系统,可移植性问题(v5.1有所缓解)
- 不灵活或可扩展
- 绘图窗口本质上不是交互式的(例如,平移和缩放)
Python的优点
- 非常通用且功能强大的编程语言,但易于学习。强大但可选的面向对象编程支持
- 非常大的用户和开发者社区,非常广泛的图书馆基础
- 使用 C、C++ 或 Fortran 非常可扩展,提供可移植的分发机制
- 自由; 非限制性许可;开源
- 成为天文学的标准脚本语言
- 易于使用 IRAF 任务
- STScI 应用工作的基础
- 更通用的阵列功能
- 对大数组更快,更好地支持内存映射
- 许多书籍和在线文档资源可用(用于语言及其库)
- 更好地支持表结构
- 绘图
- 框架(matplotlib)更具扩展性和通用性
- 更好的字体支持和可移植性(也只有一种方法)
- 可用于许多窗口框架(GTK、Tk、WX、Qt…)
- 独立于所用框架的标准绘图功能
- 绘图可嵌入其他 GUI
- 更强大的图像处理(多个同步 LUTS、可选的重新采样/重新缩放、alpha 混合等)
- 支持许多小部件系统
- 对 Python 开发能力的强大本地影响
Python的缺点
- 更多需要单独安装的项目
- 在天文学界不太被接受(但支持明显增长)
- 科学图书馆不那么成熟:
- 文档不完整,不统一
- 没有那么深入的天文图书馆和实用程序
- 并非所有 IDL 数值库函数在 Python 中都有相应的功能
- 一些数字结构与语言不太一致(或不如 IDL 方便)
- 数组索引约定“向后”</li>
- 小阵列性能较慢
- 没有标准的 GUI 运行/调试工具
- 支持许多小部件系统(担心选择哪个)
- 当前缺少相当于 IDL 中的 SAVE/RESTORE 的功能
- matplotlib 还没有所有 IDL 2-D 绘图功能的等效项(例如,曲面图)
- 使用用作标志的关键字参数不太方便
- 绘图:
- 比较不成熟,还有很大的发展空间
- 缺少一些绘图类型(例如,表面)
- 3-d 能力需要 VTK(尽管 matplotlib 有一些基本的 3-d 能力)
position - 如何找到给定纬度/经度以东/西 x 公里的纬度/经度?
我有两个给定的纬度和经度点。例如,假设我在坐标 (lat1, lon1) 和 (lat2, lon2) 处有两个位置(point_1 和 point_2)。我想计算第三个点,它与 point_2 的纬度相同,但在 point_2 以东或以西 x 公里处。所以第三个点将与 point_2 具有相同的纬度,但经度不同,具体取决于距离 x(以公里为单位),换句话说,point_3 将是 (lat2, lon?)。我用 IDL 写这个,但任何其他语言或公式都会受到欢迎。
谢谢
notepad++ - Notepad++ IDL 语法高亮?
我正要为 Notepad++ 创建一个用户定义的语言文件来语法高亮IDL(交互式数据语言)。但在我去创建一个之前,我想与“社区”核实一下,看看是否有其他人准备好了一个。
有没有人有什么建议?
idl-programming-language - 如何在for循环中声明变量?(IDL)
例如,
我的文件以00.dat、01.dat、02.dat ... 命名,每个文件包含多个列,我用来READCOL
将它们读入变量。
这很好用,但如果有一百个变量,我不能一一键入所有变量。
因此,我想使用 for 循环来生成:a(i), b(i), c(i), d(i)。从这个意义上说,代码将如下所示:
但这不起作用,是否有任何方法可以在 for 循环中声明变量并同时进行数学运算?
(我不是以英语为母语的人。如果我的问题有什么不清楚的地方,请告诉我。谢谢!)
python - Python 等效于 IDL 的 stop 和 .reset
我对 python 比较陌生,但对使用 IDL 有一些经验。我想知道是否有人知道 python 中是否有用于 IDL 的 stop 和 .reset 命令的等效命令。
如果我正在运行一些我写的 IDL 脚本,我在其中放置了一个停止命令,基本上它所做的就是在那里停止脚本并让我访问脚本中间的命令行。所以我可以访问我在停止命令之前定义的所有函数和变量,我发现它们对调试非常有用。
我发现 .reset 命令也非常有用。它所做的是重置 IDL 环境(清除所有变量、函数等)。就好像我关闭了该会话并打开了一个新会话,但无需退出并重新启动 IDL。我发现如果我尝试调试我编写的脚本,有时从头开始而不需要重置 IDL(或现在的 python)很有用。在 python 中能够取消导入我之前导入的任何模块也会很有用。
对于这些问题的任何帮助将不胜感激。
干杯
有关的
java - 保存和访问大量 ROI 多边形(IDL、ImageJ、Java?、XML?)
我需要在一堆图像上保存和重新加载数千个 ROI 多边形,实际上是一部 30 多分钟每秒 30 帧的电影,所以至少有 54,000 帧。堆栈中的单个图像(帧)上可以有多个 ROI,每个 ROI 的大小和顶点数不同。ROI 多边形会随着时间的推移跟踪形状的边缘。
电影堆栈通常太大而无法一次保存在内存中。我对它进行后期处理,逐帧搅拌以跟踪我的形状。我可以一次一帧地将 ROI 对象保存到二进制文件中,但这会生成 54,000 多个文件以保存在一起。或者,如果我尝试分配一个容器对象来保存所有 54,000 多个 ROI 帧,然后将其保存到一个文件中,我很快就会耗尽资源。
我想将所有 ROI 保存到一个可以随机访问和修改的文件中。如果我想要第 100 帧上的第三个 ROI 多边形,我希望能够立即加载它。我还希望能够在保存的文件中插入和删除 ROI。
执行此操作的最佳文件格式是什么?是否有可接受的格式或应用程序?ImageJ 有一个原生的 ROI 格式,但我不太了解它。我的应用程序现在在 IDL 中编程。IDL 有自己的 ROI 类,但就像我说的,我不想将它们全部写到单独的文件中,而且我没有资源将它们全部组合到一个文件中。XML?谢谢。
struct - IDL:使用存储在变量中的字段名称访问结构字段?
如果我有一个字段名称为“字段名称”的结构,是否可以仅使用变量访问该字段中的数据?
IE。
x = '字段名'
有可能吗
data = struct.(x) 以某种方式?我想使用 x 中的字符串作为字段名称。
string - IDL 可以将字符串评估为代码吗?
IDL 中是否有任何功能可以将字符串评估为代码?
或者,如果做不到这一点,是否有一种在函数中包含 /KEYWORD 的好方法?例如,如果我想问他们用户想要什么类型的地图投影,有没有办法很好地做到这一点,而不需要 /Projection_Type 关键字的大型 if/case 语句?
即使是少量的用户选项,这些组合也会导致 if/case 语句很快失控,无法处理所有可能的选项。
colors - IDL 可以像这样创建等高线图颜色条吗?
在此图像的底部,您会看到一个与图表颜色正确匹配的漂亮颜色条:
http://stribog.cc.umanitoba.ca/ceos/20100517_00z_prod/
我找不到任何可以创建具有我想要的颜色的颜色条的东西,它似乎总是涉及包含我没有使用的颜色的光谱。
我有一个用于数据的颜色矢量。有没有办法可以使用该矢量创建一个只有这些颜色的颜色条?
map - IDL:IDL 能否在等高线图下方添加颜色条/其他图例信息,使其不重叠任何内容?
我正在使用 map_set 调用来绘制地图,然后使用轮廓在其上绘制一些数据。
我想在这个情节中添加一个图例以使其有用,但它必须位于整个情节下方,并且我尝试的所有内容都会在我的图像之上创建一个重叠的图例。