Tutorial per sviluppatori: nuova integrazione Python e funzionalità di scripting in JMP 18Questo video include domande e risposte dei partecipanti che hanno partecipato al webinar dal vivo il 21 marzo 2024 alle ore 25:36-50:39 e 01:00:21 Di seguito è fornito un riepilogo di alcune domande e risposte. Per una risposta completa, valuta la possibilità di rivedere le domande e risposte nel video.
Automazione e scriptingRi: Tutorial per sviluppatori: nuova integrazione Python e funzionalità di scripting in JMP 18Voglio chiarire la risposta alla domanda:
Ciò significa che JMP non può utilizzare altre versioni di Python?
JMP 18 utilizzerà solo Python 3.11 integrato installato. I parametri Python Init() e Python Connect() per la selezione di un'installazione Python sono stati tutti deprecati e i parametri ignorati.
Python di JMP 18 è un ambiente isolato, quindi non sarà ( non dovrebbe) entrare in conflitto con altre installazioni Python sul sistema. Non c'è nulla che ti impedisca di utilizzare la tua pipeline Python esistente. Puoi utilizzare Python di JMP per trasferire i dati da e verso JMP alla pipeline esistente.
Ri: Tutorial per sviluppatori: nuova integrazione Python e funzionalità di scripting in JMP 18
@gail_massari ha scritto:
Se desidero accedere a una tabella dati JMP dal notebook Jupyter in un ambiente Python diverso, l'istruzione 'import 'JMP' funzionerebbe comunque?
R: No.
Che ne dici di "stesso ambiente Python": è possibile collegare IDE Python come Spyder o Visual Studio Code Editors all'installazione JMP Python?
Avere tutte le funzionalità di programmazione Python degli IDE + la possibilità di farlo
import 'JMP'
Ri: Tutorial per sviluppatori: nuova integrazione Python e funzionalità di scripting in JMP 18L'istruzione import jmp funzionerà solo dall'interno di JMP stesso.
Non è implementato come libreria condivisa o script Python, il ponte dalla funzionalità Python alla funzionalità JMP è il codice C++ interno all'eseguibile JMP stesso.
Ri: Tutorial per sviluppatori: nuova integrazione Python e funzionalità di scripting in JMP 18Quando si inviano tabelle con immagini a Python, è possibile accedere alle immagini da Python?
Ri: Tutorial per sviluppatori: nuova integrazione Python e funzionalità di scripting in JMP 18# getColImage.py
#
# Description:
# Get a picture from an image column using Python
# JMP 18 only supports numeric and character column types for transfer
# but the value can be grabbed via JSL, and passed to Python as a string
# in the meantime. The Python code will need to trim off the
# New Image( Char To Blob()) and decode the image back to binary.
import jmp
dt = jmp.open(jmp.SAMPLE_DATA + 'Big Class Families.jmp')
jmp.run_jsl('''
Names Default to Here(1);
dt = Current Data Table();
img = dt:picture[1]; // get the picture
img_str = char(img); // make it a string
Python Send(img_str); // send Python the string
''')
# print the object's JSL representation
# which is text encoding of the binary, a description of the
# encoding and image format type.
print(img_str)
Con uscita:
Nuova immagine (Carattere al BLOB( "1iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuK ...
VORK5CYII=", "base64compressed" ), "png")
Dal lato Python è necessario analizzare la stringa BLOB, il metodo di compressione e il formato, decodificare l'immagine da testo a binario.
Tuttavia, un modo alternativo e probabilmente migliore è utilizzare << Get Pixels("rgba"); sulla colonna per ottenere un elenco di matrici di 4 elementi supportato tramite Python Send().
GetColImage.py aggiornato
# getColImage.py
#
# Description:
# Get a picture from an image column using Python
# JMP 18 only supports numeric and character column types for transfer
# but the value can be grabbed via JSL, and passed to Python as a string
# in the meantime. The Python code will need to trim off the
# New Image( Char To Blob()) and decode the image back to binary.
#
# Alternatively use << Get Pixels("rgba"); to get a list of matricies
# which is passable from JSL to Python using Python Send();
#
import jmp
dt = jmp.open(jmp.SAMPLE_DATA + 'Big Class Families.jmp')
jmp.run_jsl('''
Names Default to Here(1);
dt = Current Data Table();
img = dt:picture[1]; // get the picture
img_str = char(img); // make it a string
Python Send(img_str); // send Python the string
asRGBA = { r, g, b, a} = dt:picture[1] << Get Pixels("rgba");
Python Send(asRGBA);
''')
# print the object's JSL representation
# which is text encoding of the binary, a description of the
# encoding and image format type.
print(img_str)
print(asRGBA)
Ri: Tutorial per sviluppatori: nuova integrazione Python e funzionalità di scripting in JMP 18Da qualche parte le prime righe del post sono state troncate.
No, non è direttamente possibile utilizzando l'integrazione Python in JMP 18, ma è possibile risolvere il problema utilizzando JSL.
L'attenzione su JMP 18 era rivolta alle colonne di caratteri e numeriche. Il supporto completo della tabella dati è attualmente in fase di sviluppo.