Skip to main content

Seamlessly integrate Python with WaveMetrics Igor Pro for data and command exchange.

Project description

PyIgor

PyIgor facilitates communication between Python and WaveMetrics Igor Pro, enabling seamless data and command exchange.

Requirements

  • Igor Pro 7.0 or later: Ensure you have Igor Pro 7.0 or a newer version installed.
  • HDF5 XOP: Install the HDF5 XOP module. Detailed installation instructions are available in the "HDF5 installation" section under Igor Pro's help topics.
  • PyIgor Procedure File: Download the pyigor.ipf file from GitHub and place it in the Igor Procedures folder for convenience.

Installation

To install PyIgor, use the following pip command:

pip install pyigor

Usage

Note: Ensure Igor Pro is running before executing these commands. If Igor Pro is not already running, the commands will start Igor Pro and pause until the process completes.

Accessing Igor Pro from Python

Here’s how you can interact with Igor Pro using PyIgor:

from pyigor import Connection
import numpy as np

# Establish a connection with Igor Pro
igor = Connection()

# Send a numpy array to Igor Pro
array = np.sin(np.linspace(0, 10, 100))
igor.put(array, "sinwave")

# Execute a command in Igor Pro
igor("sinwave += 1")

# Retrieve a wave from Igor Pro
wv = igor.get("sinwave")
print(wv.array)

Accessing Python from Igor Pro

Preparing Python

from pyigor import Connection

# Establish a connection
igor = Connection()

# Register a function callable from Igor Pro
@igor.function 
def myfunc(a):
    return a * a

# Keep the connection open; not required in interactive mode
igor.wait_done()

Use the Connection(security_hole=True) option to call any Python code from Igor Pro. This setting allows executing Python code through HTTP requests to http://localhost/code using eval(code). Important: Use this option only if you understand the security implications.

Calling Python Functions from Igor Pro

Execute Python functions registered via PyIgor from Igor Pro:

print PyIgorCall("myfunc(10)")

Security Note

When enabling security_hole=True, ensure your environment is secure and understand the risks associated with executing arbitrary code.

Contributors

A special thanks to the people who have contributed to this project:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyigor-0.2.2.tar.gz (6.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page