J'ai un peu de mal avec les blocs de code qui produisent des tables d'organisation qui seront ensuite consommées par d'autres blocs de code. Par exemple:
#+NAME: upper_air
#+BEGIN_SRC clojure :results output raw
(clojure.pprint/print-table table)
#+END_SRC
produira
#+RESULTS: upper_air
| :m | :degree | :meter/second | :degC | :millibar |
|---------+---------+---------------+------------+-----------|
| 1545.0 | 175.0 | 12.36 | 15.400001 | 850.0 |
| 3162.0 | 265.0 | 6.69 | 4.8 | 700.0 |
mais ce que j'aimerais vraiment c'est
#+TBLNAME: upper_air
| :m | :degree | :meter/second | :degC | :millibar |
|---------+---------+---------------+------------+-----------|
| 1545.0 | 175.0 | 12.36 | 15.400001 | 850.0 |
| 3162.0 | 265.0 | 6.69 | 4.8 | 700.0 |
(note #+RESULTSvs #+TBLNAME) pour que je puisse ensuite faire quelque chose comme
#+BEGIN_SRC ipython :session :var data=upper_air
import numpy as np
arr = np.array(data)
p = arr[:,4]
#+END_SRC
Avec le #+RESULTSrésultat, le deuxième bloc de code interprétera l' data
argument comme une chaîne au lieu d'une table de données et je ne pourrai pas extraire les données de manière simple. Je pourrais convertir les données ASCII en une structure de données Python «manuellement», mais je préférerais que l'organisation s'en occupe pour moi :-) Existe-t-il un moyen pour le premier bloc de code de produire un #+TBLNAMEau lieu de #+RESULTS? Alternativement, le deuxième bloc de code peut-il contraindre l'argument en tant que table org au lieu d'une chaîne?
clojure.pprint/print-tablerenvoie une chaîne au format Org table, et puisque vous définissez l'argument d'en-tête sur outputet raw, vous obtenez ce que vous obtenez. Cependant, lorsque vous l'utilisez une deuxième fois, Org ne lit pas la table résultante, mais réévalue le bloc Clojure et transmet son résultat au bloc Python. Cependant, si le bloc Clojure produisait un tableau 2D, vous pourriez changer le résultat pour être valueet non rawpour Org pour formater ce résultat sous forme de tableau, et vous l'obtiendriez comme un tableau 2D dans un bloc Python.