Python in GX Developer
Python is a powerful environment for creating scientific processing applications, and with Geosoft GX Developer, Python developers are able to create Python extensions that run from the Geosoft Desktop application or stand-alone Python applications that read, process and write Geosoft supported data.Â
Python in this document
Python Tutorial | Python Tutorial for Geosoft GX Developer |
---|---|
Extending Oasis montaj with Python | |
Stand-alone Python |
Release History
Version 2024.2 :
This is a minor upgrade that provides compatibility with the Geosoft 2024.2 platform.
A number of bug fixes that are part of the 2024.2 platform are included.
Issue Summary
Version 2024.1 :
This is a minor upgrade that provides compatibility with the Geosoft 2024.1 platform.
A number of bug fixes that are part of the 2024.1 platform are included.
Issue Summary
Version 2023.2 :
This is a minor upgrade that provides compatibility with the Geosoft 2023.2 platform.
A number of bug fixes that are part of the 2023.2 platform are included.
Issue Summary
Version 2023.1 :
This is a minor upgrade that provides compatibility with the Geosoft 2023.1 platform.
A number of bug fixes that are part of the 2023.1 platform are included.
Issue Summary
Version 2022.2 :
This is a minor upgrade that provides compatibility with the Geosoft 2022.2 platform.
A number of bug fixes that are part of the 2022.2 platform are included.
Issue Summary
Version 2022.1 :
This is a minor upgrade that provides compatibility with the Geosoft 2022.1 platform.
A number of bug fixes that are part of the 2022.1 platform are included.
Issue Summary
Version 2021.2 :
This is a minor upgrade that provides compatibility with the Geosoft 2021.2 platform.
A number of bug fixes that are part of the 2021.2 platform are included.
Issue Summary
Version 9.10 :
This is a minor upgrade that provides compatibility with the Geosoft 9.10 platform.
A number of bug fixes that are part of the 9.10 platform are included.
Issue Summary
Version 9.9 :
This is a minor upgrade that provides compatibility with the Geosoft 9.9 platform.
A number of bug fixes that are part of the 9.9 platform are included.
Issue Summary
Version 9.8 :
This is a minor upgrade that provides compatibility with the Geosoft 9.8 platform.
The \user\ folder has been moved. See Sharing Your Work and Geosoft Desktop - Installation Folder Organization
A number of bug fixes that are part of the 9.8 platform are included.
Issue Summary
Version 9.7 :
This is a minor upgrade that provides compatibility with the Geosoft 9.7 platform.
A number of bug fixes that are part of the 9.7 platform are included.
Issue Summary
Version 9.6 :
This is a minor upgrade that provides compatibility with the Geosoft 9.6 platform.
In version 9.6 the standalone gxpy Python setup.py mechanism was changed (compared to the 9.5 mechanisms). Instead of using the 'python setup.py install'
mechanism to embed the redistributables they can be installed externally and the paths can be configured at runtime via new parameters passed to the gxpy.gx.GXpy constructor: See Using the GX API Externally for full details about standalone redistributable options.
A number of bug fixes that are part of the 9.6 platform are included.
Issue Summary
Version 9.5 :
This is a minor upgrade that provides compatibility with the Geosoft 9.5 platform.
Support for Python 3.7 has been added.
Stand-alone applications can now be distributed and installed without requiring a full Geosoft platform installation. See Using the GX API Externally for more information.
A number of bug fixes that are part of the 9.5 platform are included.
Issue Summary
Version 9.4 :
Compatible with platform release 9.4.
New gxpy Modules
geosoft.gxpy.dap_client
Support communication with a Geosoft DAP service.geosoft.gxpy.grid_fft
Discrete Fourier Transform of a grid, with FFT filters.geosoft.gxpy.grid_utility
Utilities for working with grids and images.geosoft.gxpy.geometry_utility
Utilities for working with geometries.
New Classes and Functions
- New in geosoft.gxpy module for Python: https://geosoftinc.github.io/gxpy/9.4/python/version_history.html#geosoft-pxpy-module-history
- New in geosoft.gxapi module for Python: https://geosoftinc.github.io/gxpy/9.4/python/version_history.html#geosoft-gxapi-module-history
New Jupyter Notebook Examples
- Grid FFT: https://github.com/GeosoftInc/gxpy/blob/9.4/examples/jupyter_notebooks/Tutorials/Grid%20FFT.ipynb
- Grid derivatives and tilt-derivative: https://github.com/GeosoftInc/gxpy/blob/9.4/examples/jupyter_notebooks/Tutorials/Grid%20Derivatives.ipynb
- Tilt-depth: https://github.com/GeosoftInc/gxpy/blob/9.4/examples/jupyter_notebooks/Tutorials/Tilt-Depth.ipynb
Issue Summary
See also: 9.4 Known Issues
Version 9.3.1 :
Compatible with platform release 9.3.1.
New gxpy Classes
- geosoft.gxpy.geometry.Geometry - expanded base class for all spatial geometries
- geosoft.gxpy.geometry.Mesh - mesh surfaces
- geosoft.gxpy.surface.SurfaceDataset - Geosoft surface data sets that contain one or more Surface instances
- geosoft.gxpy.surface.Surface - surfaces, which contain one or more Mesh instances
- geosoft.gxpy.vox.Vox - Geosoft voxels
- geosoft.gxpy.vox_display.VoxDisplay - Geosoft voxel display handling
New Functions
- New in geosoft.gxpy module for Python: https://geosoftinc.github.io/gxpy/9.3.1/python/version_history.html#geosoft-pxpy-module-history
New Jupyter Notebook Examples
- Working with voxsets (voxels) and surfaces: https://github.com/GeosoftInc/gxpy/blob/9.3.1/examples/jupyter_notebooks/Tutorials/Geosoft%20Voxel.ipynb
Issue Summary
Version 9.3 :
The GX Developer 9.3 revision keeps pace with the Geosoft Platform release 9.3, including a number of new API functions.
- Updated to conform to Geosoft Desktop 9.3 platform release (see https://my.geosoft.com/downloads)
- New Python Tutorial for Geosoft GX Developer.
- New Python desktop menu to simplify Python configuration.
- Jupyter notebook examples: https://github.com/GeosoftInc/gxpy/tree/9.3/examples/jupyter_notebooks
- Documentation refresh: GX Developer 9.3
- New in geosoft.gxpy module for Python: https://geosoftinc.github.io/gxpy/9.3/python/version_history.html#geosoft-pxpy-module-history
- Minor consistency naming changes in geosoft.gxpy. It is possible these will affect existing scripts, though primary classes, methods and functions remain the same.
- New in geosoft.gxapi module for Python: https://geosoftinc.github.io/gxpy/9.3/python/version_history.html#geosoft-gxapi-module-history
- New in GX API for .NET: https://geosoftinc.github.io/gxpy/9.3/dotnet/GXNet/html/version-history.htm
- GX Developer for Geosoft GXC language now on github: https://github.com/GeosoftInc/gxc/tree/9.3
- GX Developer for .NET on github: https://github.com/GeosoftInc/gxdotnet/tree/9.3
- GX Developer for C/C++ on github: https://github.com/GeosoftInc/gxcore/tree/9.3
- GX Developer for Python on github: https://github.com/GeosoftInc/gxpy/tree/9.3
See also: 9.3.0 Known Issues
Downloading GX Developer for 9.3
Starting with the 9.3 platform release there is no longer a "download" from Geosoft. All developer resources are available on the Geosoft Inc. Github account. Different programming languages require resources specific to that language, as follows:
Language | What you need | Resources |
---|---|---|
Python | Python extensions are installed to your Python environment using pip. You do not need to download anything more. See Python Quick-Start for more information. | For reference only - you do not need this: |
Geosoft GXC | The GX compilers grc.exe and gxc.exe are now included in the Oasis montaj platform installation and do not need to be installed separately. The gxc header files and all Geosoft source code can be downloaded from GitHub. See GXC Quick-Start for more information. | https://github.com/GeosoftInc/gxc/releases |
.NET (C# etc.) | .NET developers can use references to the GX.Net assemblies from the Geosoft Desktop Applications bin directory. The gxdotnet repository also contains an See .NET Quick-Start for more information. | |
C/C++ | C and C++ headers, library files and redistributable DLL's can be downloaded from the gxcore release on GitHub. See C/C++ Quick-Start for more information. | https://github.com/GeosoftInc/gxcore/releases |
Version 9.2.1 :
- Corrected and improved some docstrings.
- Added iterator support to the geosoft.gxpy.Grid class.
- Fixed problems saving parameters to the parameter block when the parameter group does not already exist. Also added the ability to recognize default parameter settings from the initial dictionary settings.
If you already have the Geosoft package installed you should uninstall Geosoft, then install the latest version, as follows:
pip uninstall geosoft pip install geosoft
Alternately, you can update the Geosoft package in-place, which will also update any dependencies:
pip install geosoft --upgrade
Version 9.2 :
May 31, 2017
The Python geosoft.gxpy 9.2 revision includes many advances that make the api more consistent with current Python best practice, particularly around naming conventions and the consistent use of class instance properties and iterators. As a result, python scripts written for geosoft.gxpy 9.1 will need to be modified to conform to new naming conventions and the use of properties on some classes.
The base GX API, which is exposed to Python by the geosoft.gxapi module, is consistent across versions (9.0, 9.1 and 9.2). As a result, the geosoft.pxpy 9.1 will continue to work with Geosoft Desktop 9.2, though both the 9.1 and 9.2 api cannot exist in the same Python environment. While we recommend that your 9.1 scripts be updated to conform to the 9.2 api, should you do need support for both 9.1 and 9.2 you can create separate Anaconda Python environments for each version. For example, you might create an environment 'py35
' for Python 3.5 and the GX API version 9.1, and 'py36
' for Python 3.6 and GX Developer 9.2. If you are not using the 9.1 GX API at all, it is best to simply start with the GX API version 9.2 and either Python 3.6 (or Python 3.5 or 3.4 if other applications depend on earlier versions of Python)..
- Updated to conform to Oasis montaj 9.2 (see https://my.geosoft.com/downloads)
- Documentation refresh: GX Developer 9.2
- Added/verified support for 64-bit Python 3.5 and 3.6. Forward compatibility with future 64-bit Python is expected.
- Many new GX API methods introduced:
- Extensive revision and extension of gxpy, the Geosoft Python module that "pythonifies" the GX API:
Version 9.1 :
- Major documentation revision: GX Developer 9.1
- 64-bit Python 3.4 and higher support.
- Support for Python extensions to Oasis montaj (run a Python script just like a GX).
- Geosoft Python modules that abstract and simplify the GX API for Python development.
- New GX API methods available in 9.1 are available at the following locations:
- All bugs fixed up to Oasis montaj 9.1 (see https://my.geosoft.com/downloads)
Version 9.0 Beta :
This is a BETA release intended to support developers that link stand-alone programs and external DLL's with the GX Developer API. Oasis montaj 9.0 is a 64-bit application and will only work with 64-bit DLLs. Any GX programs that use external DLLs AND need to run inside Oasis montaj 9.0 will need to have the external DLLs recompiled as 64-bit DLLs.
See GX Developer 9.0 BETA for more information.
Version 8.5.1 :
Note that version 8.5.1 is the first released version of GX Developer for Geosoft version 8.5 applications.
Documentation: GX Developer 8.5
- See http://docs.geosoft.com/gxdev/8.5/dotnet/GXNet/html/version-history.htm for a list of new API methods added in 8.5.0. Note that 8.5.1 is a maintenance release that has no new API methods. Notable in the 8.5 is the DBREAD class, which support blocked reading and writing for very large lines.
- Geosoft ID authentication improvements. These important changes support user security and future rights management through Geosoft ID. Note that in the next major release of Geosoft platforms the Geosoft license key will be replaced by rights managed using Geosoft ID. This removes the need for users to park license keys to transfer rights.
- All bugs included in Oasis montaj 8.5 and 8.5.1 (see https://my.geosoft.com/downloads/update/832)
Version 8.4.1 :
- Addressed issue with GXC.exe failing to report compilation errors
Version 8.4 :
- Python 3.4 support, 32-bit and 64-bit
- Reference documentation (this document) improved and moved on-line
- Added support for Geosoft ID and user authentication via Geosoft Connect
- Added support for Geosurface and Geostring