难以使Healpix与GDL兼容

时间:2015-09-11 10:45:09

标签: idl-programming-language

问题:

我在使用当前版本的Healpix,Healpix_3.20使用GDL运行Healpix-IDL例程时遇到困难。

最简单的方法是在此帖子中关注用户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$

还有其他解决方案吗?

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

对于C shell,

setenv IDL_STARTUP /disk1/user1/HEALPix_2.15a/src/idl/HEALPix_startup,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/

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在子目录~/.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例程,对吧?