Utilisez CASA Toolkit dans votre propre environnement Python

Aperçu

CASA (Common Astronomy Software Application) et son noyau CASA Toolkit sont très utiles pour l'analyse de données comme ALMA, mais pour utiliser casapy (en fait un shell IPython généré par casapy.py) ) Doit être exécuté. Pour cette raison, il ne peut pas être exécuté dans son propre environnement Python et il est difficile d'effectuer une analyse interactive et hautement reproductible avec, par exemple, le notebook Jupyter (notebook IPython). Copions donc le Toolkit CASA sur Mac OSX et le rendons disponible sous forme de module dans votre propre environnement Python [^ linux].

[^ linux]: Cette méthode a été créée par l'auteur en tant que version Mac OS X en référence à ici. Chose. Ce n'est pas une méthode officiellement prise en charge.

Comment copier

La boîte à outils CASA a été importée dans casapy en tant que module appelé casac, donc copiez les scripts appropriés ( * .py) et les bibliothèques partagées (* .so, * .dylib). Cependant, cela ne suffit pas et vous devez changer le chemin de la bibliothèque partagée Python utilisée par chaque bibliothèque partagée par le chemin de votre propre environnement Python. Ajoutez PYTHONPATH et CASAPATH pour que Python puisse lire le dernier casac.py copié.

La série de travaux ... devrait être complétée en exécutant le script shell suivant [^ cltools] [^ pyver] [^ casaver] [^ dépendances]. Avant l'exécution, personnalisez le chemin CASA (casaapp), copiez le chemin de destination (ʻoutput) et la destination d'exportation * PATH ( profile`) en fonction de votre propre environnement. Bien sûr, assurez-vous de faire une sauvegarde avant de l'exécuter!

$ ./extract_casatk_osx.sh

[^ cltools]: les outils de ligne de commande Xcode sont nécessaires pour exécuter le script. [^ pyver]: Si vous avez plusieurs environnements Python tels que pyenv, sélectionnez Python 2.7.x avant de démarrer. Cela correspond à la version Python dans CASA. [^ casaver]: Le script est écrit selon la structure de répertoire CASA de la version Mac OS X, donc il ne fonctionnera pas correctement sur la version Linux. De plus, nous avons confirmé l'opération uniquement avec CASA 4.5.0. [^ dépendances]: Certains outils dépendent des données à l'intérieur de CASA (casa-data) et ne fonctionneront pas si vous désinstallez ou déplacez la source CASA (comme ʻia). CASAPATH` est défini pour ces derniers.

Importation de module

Il ne vous reste plus qu'à lancer Python et à importer le casac. Par exemple, l'outil associé à l'image CASA (ʻia`) peut être utilisé en spécifiant comme suit!

$ python # or ipython, jupyter notebook
>>> import casac
>>> ia = casac.casac.image()
>>> ia.open('casaimage.image')
True

finalement

Si vous souhaitez simplement mettre une bibliothèque tierce dans CASA, vous pouvez également utiliser casa-pip casa-pip.

Script shell

extract_casatk_osx.sh


casaapp=/Applications/CASA.app # customize this!
outputdir=${HOME}/Documents    # customize this!
profile=~/.bash_profile        # customize this!

echo "CASA directory:  " ${casaapp}
echo "Output directory:" ${outputdir}
echo -n "Press any key to continue >"
read INPUT

echo "Step 1: creating casatk directory"
casart=${casaapp}/Contents
casatk=${outputdir}/casatk
mkdir -p ${casatk}/Frameworks
mkdir -p ${casatk}/Resources/python/__casac__

echo "Step 2: copying libraries and Python scripts from CASA app"
echo "        this may take a while ..."
cp -a ${casart}/Frameworks/lib ${casatk}/Frameworks
cp -a ${casart}/Frameworks/*.jar ${casatk}/Frameworks
cp -a ${casart}/Frameworks/*.dylib ${casatk}/Frameworks
cp -a ${casart}/Frameworks/Qt*.framework ${casatk}/Frameworks
cp -a ${casart}/Resources/python/casac.py ${casatk}/Resources/python
cp -a ${casart}/Resources/python/__casac__/*.so ${casatk}/Resources/python/__casac__
cp -a ${casart}/Resources/python/__casac__/*.py ${casatk}/Resources/python/__casac__

echo "Step 3: changing Python-framework's path of libraries"
libpy_so=@loader_path/../../../Frameworks/Python.framework/Versions/2.7/Python
libpy_dylib=@loader_path/lib/Python.framework/Versions/2.7/Python
libpy_user=`python -c "import glob; from distutils import sysconfig;
print(glob.glob(sysconfig.get_config_var('LIBDIR')+'/libpython*')[0])"`

for f in ${casatk}/Resources/python/__casac__/*.so ; do
    install_name_tool -change ${libpy_so} ${libpy_user} ${f}
done

for f in ${casatk}/Frameworks/*.dylib ; do
    install_name_tool -change ${libpy_dylib} ${libpy_user} ${f}
done

echo "Step 4: exporting PYTHONPATH and CASAPATH to profile"
casapath="${casart} darwin socorro-\$(uname -p) \$(hostname -s)"
pythonpath="${casatk}/Resources/python"
echo "export CASAPATH=\"${casapath}\"" >> ${profile}
echo "export PYTHONPATH=\$PYTHONPATH:${pythonpath}" >> ${profile}

echo "Done!"

Recommended Posts

Utilisez CASA Toolkit dans votre propre environnement Python
Utilisez facilement vos propres fonctions en Python
Utilisez Python dans votre environnement depuis Win Automation
[Python] journalisation dans votre propre module
Créez vos propres commandes Linux en Python
[Python] Lorsque vous souhaitez importer et utiliser votre propre package dans le répertoire supérieur
Obtenez votre propre adresse IP en Python
Comment utiliser la bibliothèque C en Python
Utilisez le dernier pip dans un environnement virtualenv
N'utilisez pas readlines () dans votre instruction Python for!
Importez vos propres modules avec le développement Python de Grasshopper
Utiliser jupyter-lab installé dans l'environnement virtuel python (venv)
Utiliser Python dans un environnement Anaconda avec VS Code
Utilisez l'application LibreOffice en Python (3) Ajouter une bibliothèque
python: utilisez votre propre classe pour numpy ndarray
Utilisez pydantic lors de la lecture des variables d'environnement en Python
Utilisez os.getenv pour obtenir des variables d'environnement en Python
Utilisez un GPU gratuit dans votre environnement préféré
Utiliser des dates en Python
Utiliser Valgrind avec Python
environnement virtuel en Python
Utiliser le profileur en Python
Environnement de développement en Python
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Créez votre propre Big Data en Python pour validation
Créez votre propre stéréogramme aléatoire (RDS) en Python.
Essayez d'améliorer votre propre quiz d'introduction avec Python
Utilisons les données ouvertes de "Mamebus" en Python
[Road to Intermediate Python] Définissez dans votre propre classe
Appelez votre propre module python à partir du package ROS
Comment utiliser le modèle appris dans Lobe en Python
Je veux utiliser le jeu de données R avec python
Voyons comment utiliser def en python
Utiliser l'expression let en Python
Utiliser Anaconda dans un environnement pyenv
Utiliser le protocole de mesure avec Python
Utiliser la fonction de rappel en Python
Trouver des erreurs en Python
Utiliser le magasin de paramètres en Python
Utiliser le cache HTTP en Python
Utilisez l'ODM de MongoDB avec Python
Gérer les variables d'environnement en Python
Utiliser un dict clé de liste en Python
Utiliser Random Forest avec Python
Organiser l'environnement de développement Python
Utilisez Spyder de Python IDE
Obtenez votre fréquence cardiaque à partir de l'API fitbit en Python!
Vérifiez le fonctionnement de Python pour .NET dans chaque environnement
Comment utiliser la méthode __call__ dans la classe Python
Commandes souvent utilisées dans l'environnement de développement lors de l'implémentation de Python
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
Comment utiliser pyenv et pyenv-virtualenv à votre manière
Exécutez le fichier python après avoir activé l'environnement virtuel python avec le fichier de commandes
[Python] Créez votre propre bot LINE
Obtenir l'API arXiv en Python
Envelopper (partie de) la bibliothèque AtCoder en Cython pour une utilisation en Python
Utilisez le tissu tel quel en python (fabric3)
Python dans le navigateur: la recommandation de Brython
Enregistrez le fichier binaire en Python