Al crear un nuevo árbol MDSplus, es posible (o quizás incluso necesario) especificar el número de disparo más pequeño para el cual se pueden almacenar datos en el árbol. Los números de disparo son solo valores de índice que identifican experimentos que producen datos para almacenar. Estoy trabajando con un árbol MDSplus ahora y descubrí que hay datos disponibles para números de disparos anteriores y me gustaría reducir el límite configurado para mi árbol para poder almacenar esos conjuntos de datos anteriores. Sin embargo, inicialmente no configuré el árbol y no pude encontrar ninguna ayuda para esto en línea. A menos que todavía no haya encontrado el documento correcto, tengo entendido y experiencia que la documentación en línea de MDSplus está notoriamente incompleta y/o desactualizada.
Respuesta1
Lo siento, descubrí que no hay un límite inferior para el número de disparos en un árbol MDSplus excepto 0. Usar -1 como número de disparos es una forma de referirse al árbol modelo en sí, y no creo que los números de disparos negativos tengan cualquier significado.
Lo que presentaba la apariencia de tal escenario era que:
- Tienes que llamar a createPulse() en Python antes de almacenar nuevos datos de disparo;
- Nuestro servidor MDSplus fue configurado para hacer esto automáticamente para cada número de disparo incremental en el futuro;
- Nuestro servidor MDSplus NO fue configurado para crear pulsos automáticamente al intentar archivar datos históricos de disparos.
Por lo tanto, ya se habían creado pulsos para números de disparos superiores a un cierto número, que se había determinado mediante mi patrón de uso.
En caso de que encuentre este problema usted mismo, puede escribir un método node_exists(nombre, disparo) para averiguar si ya se ha creado un nodo para un determinado punto de datos y número de disparo, luego llamar a createPulse() solo cuando node_exists() devuelva falso. , p.ej:
import MDSplus as mds
if not node_exists(data_name, shot_num):
tree = mds.Tree(tree_name, shot_num, tree_mode)
tree.getNode(data_name).include_in_pulse=True
tree.createPulse(shot_num)
Luego continúe y almacene los datos de su disparo.
Perdón por la confusion...