问题:
我在使用当前版本的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
这对我不起作用。我在终端中尝试了hidl
和hididle
命令(我使用的是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/
答案 0 :(得分:1)
hidl
是使用Healpix启动文件和路径启动IDL的别名。在系统命令行上键入它,而不是IDL命令行。您必须通过他们的configure
系统来定义hidl
。
答案 1 :(得分:1)
在子目录~/.healpix/3_20_Darwin
中有两个文件config
和idl.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例程,对吧?