def test_get_user_input(): gxprj.user_message('TEST', 'Starting get_user_info test') gxprj.pause( 'Testing pause\nSome descriptive text\nLine 2\nLine 3\nThis tests the ability for DGW to properly resize a a dialog..........' ) gxprj.pause('Testing pause with cancel', cancel=True) ret = gxprj.get_user_input('Testing string input', 'String is a bit long', default='test') print('string return: {}'.format(ret)) ret = gxprj.get_user_input('Testing float', 'Float', kind='float', default=1.5) print('float return: {}'.format(ret)) ret = gxprj.get_user_input('Testing int\nThis must be an integer value.', 'Int', kind='int', default=7) print('int return: {}'.format(ret)) ret = gxprj.get_user_input('Testing a list', 'List', kind='list', default='maki', items='maki, rider, explorer') print('list return: {}'.format(ret)) input("Simple inputs test finished, press enter to continue...")
def test_scripting(): import os import geosoft.gxapi as gxa py_file = 'py_file.py' gs_file = 'project.gs' with open(py_file, 'w+') as f: f.write('import geosoft\n') f.write('def rungx():\n') f.write(' pass\n') gxprj.user_message('SCRIPTING TEST', 'Enter "project" in the next browse dialog.') gxa.GXSYS.do_command("[ID] ID_GX_RECORD") gxa.GXSYS.do_command("[GX] {}".format(py_file)) gxa.GXSYS.do_command("[ID] ID_GX_ENDRECORD") with open(gs_file, 'r') as f: script = f.read() gxprj.user_message( 'SCRIPTING TEST RESULT', 'The following should contain "GX py_file.py"\n{}'.format(script)) # run script gxa.GXSYS.set_interactive(0) gxa.GXSYS.run_gs(os.path.normpath(gs_file)) gxa.GXSYS.set_interactive(1) os.remove(gs_file) os.remove(py_file)
def rungx(): float_val = gxa.GXSYS.get_double("SCRIPT_GX", "VALUE") if gxa.GXSYS.interactive() != 0: ret_val = gxprj.get_user_input('SCRIPT GX (interactive)', 'Float', kind='float', default=float_val) print('float return: {}'.format(ret_val)) gxa.GXSYS.set_double("SCRIPT_GX", "VALUE", ret_val) else: gxa.GXSYS.set_interactive(1) # Restore interactive mod to make dialogs appear gxprj.user_message('SCRIPT GX (non interactive)', "Received value: {}".format(float_val))
def rungx(): gxprj.user_message('Running:', __file__) test_project() test_get_user_input() test_file() test_multifile() test_scripting() gxprj.user_message('Project test', "test finished")
def rungx(): # get the name of a grid from the user grid_file = gxproj.get_user_input(title='Grid statistics', prompt='Grid file', kind='file', filemask='*.grd') stats = grid_stats(grid_file) gxproj.user_message( grid_file, 'min: {}\nmax: {}\nmean: {}\nstd_dev: {}'.format( stats.get_info(gxapi.ST_MIN), stats.get_info(gxapi.ST_MAX), stats.get_info(gxapi.ST_MEAN), stats.get_info(gxapi.ST_STDDEV)))
def rungx(): # parameter 'GRID_FILE' is the last-specified grid file name for this script. grid_parameter = 'GRID_FILE' group = os.path.basename(__file__).split('.')[0] parms = gxu.get_parameters(group, {grid_parameter: ''}) # get the name of a grid from the user grid_file = gxproj.get_user_input(title='Grid statistics', prompt='Grid file', default=parms.get(grid_parameter), kind='file', filemask='*.grd') # save the grid file name as the default the next time this script is run parms[grid_parameter] = grid_file gxu.save_parameters(group, parms) stats = grid_stats(grid_file) gxproj.user_message( grid_file, 'min: {}\nmax: {}\nmean: {}\nstd_dev: {}'.format( stats.get_info(gxapi.ST_MIN), stats.get_info(gxapi.ST_MAX), stats.get_info(gxapi.ST_MEAN), stats.get_info(gxapi.ST_STDDEV)))
def rungx(): project = gxpj.Geosoft_project() gxpj.user_message("Project name: {}".format(project.name), "Project user: {}".format(project.gid))