难以使 Healpix 与 GDL 兼容

Difficulty making Healpix compatible with GDL

问题:

我在使用当前版本的 Healpix Healpix_3.20.

时遇到困难 运行 使用 GDL 的 Healpix-IDL 例程

最简单的方法是在 post:

中关注用户 gilo

http://sourceforge.net/p/gnudatalanguage/discussion/338692/thread/6546b9ad/?limit=25#324d

所有Healpix IDL例程都在~/user/downloads/Healpix_3.20/src/idl

下载

然后,使用 !PATH 即:

GDL> !PATH = expand_path('+/user/myname/downloads/HEALPix_3.20/')+':'+!PATH

之后您可以访问 gdl

内的所有 healpix 程序

这对我不起作用。我在终端中尝试命令 hidlhididle(我正在使用 Mac OS X Yosemite, 10.10.5):

GDL> hidl
% Procedure not found: HIDL
% Execution halted at: $MAIN$

还有其他解决方案吗?

POS兄弟解决方案: 在安装程序install.pdf中,Section 7.6 hidl usage 描述了有时无法识别hidl。修复方法是将环境变量 IDL STARTUP 设置为等于 HEALPix 启动文件 HEALPix 启动,包括文件的目录路径,即使用

setenv IDL_STARTUP /disk1/user1/HEALPix_2.15a/src/idl/HEALPix_startup for C shell, csh

export IDL_STARTUP="+/disk1/user1/HEALPix_2.15a/src/idl/HEALPix_startup" 为 s, sh, bash

对于我的例程,这应该是

export IDL_STARTUP="+/usr/downloads/HEALPix_3.20/src/idl/HEALPix_startup"

在 bash 终端 (回忆语法: export key=value 是 sh,ksh,bash setenv key value 是 csh) 这对我不起作用。执行命令并输入 gdl 后,我得到:

% Error opening startup file: /user/myname/downloads/HEALPix_3.20/src/idl/HEALPix_startup

根据第 7.8 节使用 GDL 而不是 IDL,我尝试

$ export IDL_TMPDIR=/tmp
$ gdl

这也不行。 在 IDL 例程手册 idl.pdf 中将 HEALPix IDL 与其他 IDL 库一起使用后,我尝试

export IDL_PATH="+/user/myname/downloads/HEALPix_3.20/src/idl/:+/opt/local/share/gnudatalanguage/lib:<IDL_DEFAULT>"
export IDL_STARTUP="+/user/myname/downloads/HEALPix_3.20/src/idl/HEALPix_startup"gdl`

输出错误:

% Error opening startup file: /user/myname/downloads/HEALPix_3.20/src/idl/HEALPix_startup.

我试试

export IDL_PATH="+/opt/local/share/gnudatalanguage/lib:<IDL_DEFAULT>"
hidl

输出错误:

-bash: hidl: command not found

没有任何效果。

背景:

Healpix 在这里有安装程序,来源forge.net:healpix.sourceforge.net/pdf/install.pdf

和此处的 IDL 例程:healpix.sourceforge.net/pdf/idl.pdf

源代码在这里:sourceforge.net/projects/healpix/

为了安装 Healpix,您使用 ./configure 然后 make。 (参见 install.pdf,第 4 节)

Healpix IDL 例程已在 /user/myname/downloads/HEALPix_3.20/

下载

GDL 例程位于 /opt/local/share/gnudatalanguage/lib/

hidl是用Healpix启动文件和路径启动IDL的别名。在系统命令行中键入它,而不是在 IDL 命令行中键入它。您必须 运行 通过他们的 configure 系统来定义 hidl.

在子目录 ~/.healpix/3_20_Darwin 中有两个文件,configidl.sh

config

# configuration for Healpix 3.20
HEALPIX=/Users/myname/downloads/Healpix_3.20 ; export HEALPIX
HPX_CONF_DIR=/Users/myname/.healpix/3_20_Darwin
if [ -r ${HPX_CONF_DIR}/idl.sh ] ; then . ${HPX_CONF_DIR}/idl.sh ; fi
if [ -r ${HPX_CONF_DIR}/f90.sh ] ; then . ${HPX_CONF_DIR}/f90.sh ; fi
if [ -r ${HPX_CONF_DIR}/cpp.sh ] ; then . ${HPX_CONF_DIR}/cpp.sh ; fi
if [ -r ${HPX_CONF_DIR}/c.sh ] ;   then . ${HPX_CONF_DIR}/c.sh ;   fi

idl.sh 文件是

# IDL configuration for HEALPix Fri MONTH DAY TIME EDT YEAR
# make sure IDL related variables are global
export IDL_PATH IDL_STARTUP
# back up original IDL config, or give default value
OIDL_PATH="${IDL_PATH-<IDL_DEFAULT>}"
OIDL_STARTUP="${IDL_STARTUP}"
# create Healpix IDL config, and return to original config after running Healpix-enhanced IDL
HIDL_PATH="+${HEALPIX}/src/idl:${OIDL_PATH}"
HIDL_STARTUP="${HEALPIX}/src/idl/HEALPix_startup"
alias hidl="IDL_PATH=\"${HIDL_PATH}\"   ; IDL_STARTUP=${HIDL_STARTUP} ; idl   ; IDL_PATH=\"${OIDL_PATH}\" ; IDL_STARTUP=${OIDL_STARTUP} "
alias hidlde="IDL_PATH=\"${HIDL_PATH}\" ; IDL_STARTUP=${HIDL_STARTUP} ; idlde ; IDL_PATH=\"${OIDL_PATH}\" ; IDL_STARTUP=${OIDL_STARTUP} " 

因此,如果我手动设置此 idl.sh 文件和 运行 config 中的路径,即 ~/.config。这应该允许在命令行中使用 hidl 到 运行 Healpix IDL 例程,对吧?