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 TutorialPython Tutorial for Geosoft GX Developer
Extending Oasis montaj with Python

Python Extensions

Stand-alone Python

Python Stand-Alone Programs


Release History

Release Notes

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

Release Notes

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

Release Notes

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

Release Notes

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

Release Notes

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

Release Notes

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

Release Notes

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

Release Notes

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

Release Notes

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

Release Notes

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

Release Notes

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 constructorSee 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

Release Notes

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

Release Notes

Version 9.4 :

Compatible with platform release 9.4.

New gxpy Modules

New Classes and Functions

New Jupyter Notebook Examples

Issue Summary

See also: 9.4 Known Issues


Release Notes

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 Jupyter Notebook Examples

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. 

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:

LanguageWhat you needResources
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:

https://github.com/GeosoftInc/gxpy/tree/9.3

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 x86_references directory that provides minimal assemblies necessary to build assemblies targeting x86 for use in the Visual Studio Windows Forms Designer.

See .NET Quick-Start for more information.

https://github.com/GeosoftInc/gxdotnet

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


Release Notes

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)..

Release Notes

Version 9.1 : 

Release Notes

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.

Release Notes

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)

Release Notes

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