Ao criar uma nova árvore MDSplus, é possível (ou talvez até necessário) especificar o menor número de disparos para o qual os dados podem ser armazenados na árvore. Os números dos disparos são apenas valores de índice que identificam experimentos que produzem dados a serem armazenados. Estou trabalhando com uma árvore MDSplus agora e descobri que os dados de números de tomadas anteriores estão disponíveis e gostaria de diminuir o limite configurado para minha árvore para que eu possa armazenar esses conjuntos de dados anteriores. No entanto, inicialmente não configurei a árvore e não consegui encontrar nenhuma ajuda online para isso. A menos que eu ainda não tenha encontrado o documento correto, é meu entendimento e experiência que a documentação on-line do MDSplus está notoriamente incompleta e/ou desatualizada.
Responder1
Desculpe, descobri que não há limite inferior para o número de fotos em uma árvore MDSplus, exceto 0. Usar -1 como o número de fotos é uma forma de se referir à própria árvore do modelo, e não acho que números de fotos negativos tenham qualquer significado.
O que apresentou a aparência de tal cenário foi que:
- Você deve chamar createPulse() em Python antes de armazenar novos dados de disparo;
- Nosso servidor MDSplus foi configurado para fazer isso automaticamente para cada número de disparo incremental daqui para frente;
- Nosso servidor MDSplus NÃO foi configurado para criar pulsos automaticamente ao tentar arquivar dados históricos de disparos.
Portanto, os pulsos já haviam sido criados para números de disparos acima de um determinado número, que foi determinado através do meu padrão de uso.
Caso você mesmo encontre esse problema, você pode escrever um método node_exists(name, shot) para descobrir se um nó já foi criado para um determinado ponto de dados e número de disparo e, em seguida, chamar createPulse() somente quando node_exists() retornar falso , por exemplo:
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)
Em seguida, vá em frente e armazene os dados da sua tacada.
Desculpe pela confusão...