srsinst.rga


Namesrsinst.rga JSON
Version 0.3.4 PyPI version JSON
download
home_page
SummaryInstrument driver package for Residual Gas Analyzers (RGA) from Stanford Research Systems
upload_time2023-06-28 16:11:37
maintainer
docs_urlNone
authorChulhoon Kim
requires_python>=3.7
licenseMIT license
keywords rga residual gas analyzer srs stanford research systems
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # `srsinst.rga`

`srsinst.rga` provides Python instrument classes to control and acquire mass spectra from 
[Stanford Research Systems (SRS) Residual Gas Analyzers (RGA)](https://thinksrs.com/products/rga.html).
It also provides tasks running in GUI environment based on 
[srsgui](https://thinksrs.github.io/srsgui/).  
For safe operation of an SRS RGA with this package, familiarize yourself with the RGA
[manual](https://thinksrs.com/downloads/pdfs/manuals/RGAm.pdf) and
the `srsinst.rga` [documentation](https://thinksrs.github.io/srsinst.rga/).

![screenshot](https://thinksrs.github.io/srsinst.rga/_images/comp-analysis-screenshot.png " ")

## Installation
You need a working Python version 3.7 or later with `pip` (Python package installer) installed. 
If you don't, [install Python 3](https://www.python.org/) to your system.

To use its full GUI application, create a virtual environment, if necessary,
and run Python package installer `pip` with *[full]* option from the command prompt.

    # To create a simple virtual environment (Optional) 
    # The activate command may differ depending on your computer operating systems.
    # Following is for Windows.

    python -m venv venv
    venv\scripts\activate

    # To install full GUI application

    python -m pip install srsinst.rga[full]


To install `srsinst.rga` as an instrument driver only, install WITHOUT the *[full]* option. 
Installation will be faster, because it does NOT install GUI related packages.

    python -m pip install srsinst.rga


## Run `srsinst.rga` as GUI application
If the Python Scripts directory is in PATH environment variable,
Start the application by typing from the command line:

    rga

If not,

    python -m srsinst.rga

It will start the GUI application.

Connect to an RGA from the Instruments menu.
Select a task from the Task menu.
Press the green arrow to run the selected task. 

You can write your own task or modify an existing one and run it from the application.
Refer to [srsgui](https://thinksrs.github.io/srsgui/) documentation for details.

## Use `srsinst.rga` as instrument driver
* Start the Python program, or an editor of your choice to write a Python script.
* import the **RGA100** class from `srsinst.rga` package.
* Instantiate **RGA100** to connect to an SRS RGA.

        from srsinst.rga import RGA100

        # for TCPIP communication
        ip_address = '192.168.1.100'
        user_id = 'admin'
        password = 'admin'

        rga1 = RGA100('tcpip', ip_address, user_id, password)

        # for serial communication
        # Baud rate for RGA100 is fixed to 28800
        # rga2 = RGA('serial', /dev/ttyUSB0', 28800)  # for Linux serial communication

        rga2 = RGA('serial', 'COM3', 28800)  # for Windows serial communication

        # or initialize a RGA100 instance without connection, then connect.
        rga3 = RGA100()
        rga3.connect('tcpip', ip_address, user_id, password)

* Control ionizer parameters.

        # Set ionizer values
        rga1.ionizer.electron_energy = 70
        rga1.ionizer.ion_energy = 12
        rga1.ionizer.focus_voltage = 90

        # or
        rga1.ionizer.set_parameters(70, 12, 90)


        # Get the ionizer parameters
        a = rga1.ionizer.electron_energy
        b = rga1.ionizer.ion_energy
        c = rga1.ionizer.focus_voltage

        # or
        a, b, c = rga1.ionizer.get_parameters()


        # Set the filament emsission current.

        rga1.ionizer.emission_current = 1.0  # in the unit of mA
        rga1.ionizer.emission_current = 0.0  # It will turn off the filament.

        # or

        rga1.filament.turn_on()  # Turn on with the default emission cureent of 1 mA.
        rga1.filament.turn_off()


        # Read back the emission current
        a = rga1.ionizer.emission_current

* Control detector parameters.

        # Set CEM voltage to the calibrated CEM voltage, or 0 to turn off
        rga1.cem.voltage = rga1.cem.stored_voltage
        rga1.cem.voltage = 0

        # or simply turn on or off
        rga1.cem.turn_on()
        rga1.cem.turn_off()

        # Read back CEM voltage setting
        a = rga1.cem.voltage

* Control scan parameters.

        # Set scan parameters
        rga1.scan.initial_mass = 1
        rga1.scan.final_mass = 50
        rga1.scan.scan_speed = 3
        rga1.scan.resolution = 10  # steps_per_amu

        # or
        rga1.scan.set_parameters(1, 50, 3, 10)

        # Get scan parameters
        mi, mf, nf, sa = rga1.scan.get_parameters()

* Run an analog scan.

        analog_spectrum  = rga1.scan.get_analog_scan()
        spectrum_in_torr = rga1.scan.get_partial_pressure_corrected_spectrum(analog_spectrum)

        # Get the matching mass axis with the spectrum
        analog_mass_axis = rga1.scan.get_mass_axis(True)  # is it for analog scan? Yes.

* Run a histogram scan.

        histogram_spectrum  = rga1.scan.get_histogram_scan()

        # Get the matching mass axis with the spectrum
        histogram_mass_axis = rga1.get_mass_axis(False)  # is it for analog scan? No.

* Run a PvsT scan.

        masses_of_choice = [2, 18, 28, 32, 44]
        intensities = rga1.scan.get_multiple_mass_scan(masses_of_choice)

* Measure a single mass ion current of nitrogen at 28 amu

        intensity = rga1.scan.get_single_scan(28)

* Save the spectrum to a file.

        with open('spectrum.dat', 'w') as f:
            for x, y in zip(analog_mass_axis, analog_spectrum):
                f.write('{:.2f} {:.4e}\n'.format(x, y))

* Plot with [matplotlib](https://matplotlib.org/stable/users/getting_started/).

        import matplotlib.pyplot as plt
        plt.plot(analog_mass_axis, spectrum_in_torr)
        plt.show()

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "srsinst.rga",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "RGA,residual gas analyzer,SRS,Stanford Research Systems",
    "author": "Chulhoon Kim",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/d3/33/7c8fa6989a50574126a6cb3cd06860ecac7ffca92f80356fc223d677931d/srsinst.rga-0.3.4.tar.gz",
    "platform": null,
    "description": "# `srsinst.rga`\r\n\r\n`srsinst.rga` provides Python instrument classes to control and acquire mass spectra from \r\n[Stanford Research Systems (SRS) Residual Gas Analyzers (RGA)](https://thinksrs.com/products/rga.html).\r\nIt also provides tasks running in GUI environment based on \r\n[srsgui](https://thinksrs.github.io/srsgui/).  \r\nFor safe operation of an SRS RGA with this package, familiarize yourself with the RGA\r\n[manual](https://thinksrs.com/downloads/pdfs/manuals/RGAm.pdf) and\r\nthe `srsinst.rga` [documentation](https://thinksrs.github.io/srsinst.rga/).\r\n\r\n![screenshot](https://thinksrs.github.io/srsinst.rga/_images/comp-analysis-screenshot.png \" \")\r\n\r\n## Installation\r\nYou need a working Python version 3.7 or later with `pip` (Python package installer) installed. \r\nIf you don't, [install Python 3](https://www.python.org/) to your system.\r\n\r\nTo use its full GUI application, create a virtual environment, if necessary,\r\nand run Python package installer `pip` with *[full]* option from the command prompt.\r\n\r\n    # To create a simple virtual environment (Optional) \r\n    # The activate command may differ depending on your computer operating systems.\r\n    # Following is for Windows.\r\n\r\n    python -m venv venv\r\n    venv\\scripts\\activate\r\n\r\n    # To install full GUI application\r\n\r\n    python -m pip install srsinst.rga[full]\r\n\r\n\r\nTo install `srsinst.rga` as an instrument driver only, install WITHOUT the *[full]* option. \r\nInstallation will be faster, because it does NOT install GUI related packages.\r\n\r\n    python -m pip install srsinst.rga\r\n\r\n\r\n## Run `srsinst.rga` as GUI application\r\nIf the Python Scripts directory is in PATH environment variable,\r\nStart the application by typing from the command line:\r\n\r\n    rga\r\n\r\nIf not,\r\n\r\n    python -m srsinst.rga\r\n\r\nIt will start the GUI application.\r\n\r\nConnect to an RGA from the Instruments menu.\r\nSelect a task from the Task menu.\r\nPress the green arrow to run the selected task. \r\n\r\nYou can write your own task or modify an existing one and run it from the application.\r\nRefer to [srsgui](https://thinksrs.github.io/srsgui/) documentation for details.\r\n\r\n## Use `srsinst.rga` as instrument driver\r\n* Start the Python program, or an editor of your choice to write a Python script.\r\n* import the **RGA100** class from `srsinst.rga` package.\r\n* Instantiate **RGA100** to connect to an SRS RGA.\r\n\r\n        from srsinst.rga import RGA100\r\n\r\n        # for TCPIP communication\r\n        ip_address = '192.168.1.100'\r\n        user_id = 'admin'\r\n        password = 'admin'\r\n\r\n        rga1 = RGA100('tcpip', ip_address, user_id, password)\r\n\r\n        # for serial communication\r\n        # Baud rate for RGA100 is fixed to 28800\r\n        # rga2 = RGA('serial', /dev/ttyUSB0', 28800)  # for Linux serial communication\r\n\r\n        rga2 = RGA('serial', 'COM3', 28800)  # for Windows serial communication\r\n\r\n        # or initialize a RGA100 instance without connection, then connect.\r\n        rga3 = RGA100()\r\n        rga3.connect('tcpip', ip_address, user_id, password)\r\n\r\n* Control ionizer parameters.\r\n\r\n        # Set ionizer values\r\n        rga1.ionizer.electron_energy = 70\r\n        rga1.ionizer.ion_energy = 12\r\n        rga1.ionizer.focus_voltage = 90\r\n\r\n        # or\r\n        rga1.ionizer.set_parameters(70, 12, 90)\r\n\r\n\r\n        # Get the ionizer parameters\r\n        a = rga1.ionizer.electron_energy\r\n        b = rga1.ionizer.ion_energy\r\n        c = rga1.ionizer.focus_voltage\r\n\r\n        # or\r\n        a, b, c = rga1.ionizer.get_parameters()\r\n\r\n\r\n        # Set the filament emsission current.\r\n\r\n        rga1.ionizer.emission_current = 1.0  # in the unit of mA\r\n        rga1.ionizer.emission_current = 0.0  # It will turn off the filament.\r\n\r\n        # or\r\n\r\n        rga1.filament.turn_on()  # Turn on with the default emission cureent of 1 mA.\r\n        rga1.filament.turn_off()\r\n\r\n\r\n        # Read back the emission current\r\n        a = rga1.ionizer.emission_current\r\n\r\n* Control detector parameters.\r\n\r\n        # Set CEM voltage to the calibrated CEM voltage, or 0 to turn off\r\n        rga1.cem.voltage = rga1.cem.stored_voltage\r\n        rga1.cem.voltage = 0\r\n\r\n        # or simply turn on or off\r\n        rga1.cem.turn_on()\r\n        rga1.cem.turn_off()\r\n\r\n        # Read back CEM voltage setting\r\n        a = rga1.cem.voltage\r\n\r\n* Control scan parameters.\r\n\r\n        # Set scan parameters\r\n        rga1.scan.initial_mass = 1\r\n        rga1.scan.final_mass = 50\r\n        rga1.scan.scan_speed = 3\r\n        rga1.scan.resolution = 10  # steps_per_amu\r\n\r\n        # or\r\n        rga1.scan.set_parameters(1, 50, 3, 10)\r\n\r\n        # Get scan parameters\r\n        mi, mf, nf, sa = rga1.scan.get_parameters()\r\n\r\n* Run an analog scan.\r\n\r\n        analog_spectrum  = rga1.scan.get_analog_scan()\r\n        spectrum_in_torr = rga1.scan.get_partial_pressure_corrected_spectrum(analog_spectrum)\r\n\r\n        # Get the matching mass axis with the spectrum\r\n        analog_mass_axis = rga1.scan.get_mass_axis(True)  # is it for analog scan? Yes.\r\n\r\n* Run a histogram scan.\r\n\r\n        histogram_spectrum  = rga1.scan.get_histogram_scan()\r\n\r\n        # Get the matching mass axis with the spectrum\r\n        histogram_mass_axis = rga1.get_mass_axis(False)  # is it for analog scan? No.\r\n\r\n* Run a PvsT scan.\r\n\r\n        masses_of_choice = [2, 18, 28, 32, 44]\r\n        intensities = rga1.scan.get_multiple_mass_scan(masses_of_choice)\r\n\r\n* Measure a single mass ion current of nitrogen at 28 amu\r\n\r\n        intensity = rga1.scan.get_single_scan(28)\r\n\r\n* Save the spectrum to a file.\r\n\r\n        with open('spectrum.dat', 'w') as f:\r\n            for x, y in zip(analog_mass_axis, analog_spectrum):\r\n                f.write('{:.2f} {:.4e}\\n'.format(x, y))\r\n\r\n* Plot with [matplotlib](https://matplotlib.org/stable/users/getting_started/).\r\n\r\n        import matplotlib.pyplot as plt\r\n        plt.plot(analog_mass_axis, spectrum_in_torr)\r\n        plt.show()\r\n",
    "bugtrack_url": null,
    "license": "MIT license",
    "summary": "Instrument driver package for Residual Gas Analyzers (RGA) from Stanford Research Systems",
    "version": "0.3.4",
    "project_urls": {
        "documentation": "https://thinksrs.github.io/srsinst.rga",
        "homepage": "https://github.com/thinkSRS/srsinst.rga",
        "repository": "https://github.com/thinkSRS/srsinst.rga.git"
    },
    "split_keywords": [
        "rga",
        "residual gas analyzer",
        "srs",
        "stanford research systems"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "07fda23a060ea0ddbe3147c7a3fa6ca14ed7fd01733b0644ed788128dac5f583",
                "md5": "a6a4c45775797ac29c27b6fd34451545",
                "sha256": "7dcf858a203d73a00e0ff0a0eaa23c5bb349dcff30dc2cb2908bf052285cdba0"
            },
            "downloads": -1,
            "filename": "srsinst.rga-0.3.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a6a4c45775797ac29c27b6fd34451545",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 54646,
            "upload_time": "2023-06-28T16:11:34",
            "upload_time_iso_8601": "2023-06-28T16:11:34.306637Z",
            "url": "https://files.pythonhosted.org/packages/07/fd/a23a060ea0ddbe3147c7a3fa6ca14ed7fd01733b0644ed788128dac5f583/srsinst.rga-0.3.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d3337c8fa6989a50574126a6cb3cd06860ecac7ffca92f80356fc223d677931d",
                "md5": "44b44fd64e3767585406e15e3232ed88",
                "sha256": "ad56668c707e6436817de89b1f89faa456b27d533e5611288a276d9bf48e4584"
            },
            "downloads": -1,
            "filename": "srsinst.rga-0.3.4.tar.gz",
            "has_sig": false,
            "md5_digest": "44b44fd64e3767585406e15e3232ed88",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 405121,
            "upload_time": "2023-06-28T16:11:37",
            "upload_time_iso_8601": "2023-06-28T16:11:37.174004Z",
            "url": "https://files.pythonhosted.org/packages/d3/33/7c8fa6989a50574126a6cb3cd06860ecac7ffca92f80356fc223d677931d/srsinst.rga-0.3.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-28 16:11:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "thinkSRS",
    "github_project": "srsinst.rga",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "srsinst.rga"
}
        
Elapsed time: 0.08586s