Python example: editing HV results
Jump to navigation
Jump to search
This script works only with GeopsyPack>=3.6
Import SciFigs module and create a blank sheet
import GeopsyPySciFigs as sf s=sf.newSheet()
Open the .page file saved from Geopsy H/V module
s.fileOpen_2("hv-before-9.10.page")
Import a few Python functions to manipulate graphical objects.
import hvedit
Change the color and the width of the average and stddev curves
hvedit.setRed(s)
Save the average and stddev layers
hvedit.saveLayers(s)
Open other results with the same stations, change the width of curves and compare the results
s.fileNew() s.fileOpen_2("hv-after-9.10.page") hvedit.setWidth(s) hvedit.addLayer(s)
Python code
def setWidth(s): n=s.numberOfObjects() for i in range(0, n): g=s.object_1(i) print(g.objectName()) # Average l=g.object(1).graphContents().layer(3) if l: leg=l.legend() pen=leg.child("LegendItem index='0'").child("Pen") pen.setValue("width", '0.3') l.setLegend(leg) # stddev l=g.object(1).graphContents().layer(4) if l: leg=l.legend() pen=leg.child("LegendItem index='0'").child("Pen") pen.setValue("width", '0.3') pen=leg.child("LegendItem index='1'").child("Pen") pen.setValue("width", '0.3') l.setLegend(leg)
def setRed(): n=s.numberOfObjects() for i in range(0, n): g=s.object_1(i) print(g.objectName()) # Average l=g.object(1).graphContents().layer(3) if l: leg=l.legend() pen=leg.child("LegendItem index='0'").child("Pen") pen.setValue("color", '#FF0000') pen.setValue("width", '0.3') l.setLegend(leg) # stddev l=g.object(1).graphContents().layer(4) if l: leg=l.legend() pen=leg.child("LegendItem index='0'").child("Pen") pen.setValue("color", '#FF0000') pen.setValue("width", '0.3') pen=leg.child("LegendItem index='1'").child("Pen") pen.setValue("color", '#FF0000') pen.setValue("width", '0.3') l.setLegend(leg)
def saveLayers(s): n=s.numberOfObjects() for i in range(0, n): g=s.object_1(i) print(g.objectName()) gc=g.object(1).graphContents() if gc: gc.saveLayers_3(g.objectName()+"-average.layer", "Average") gc.saveLayers_3(g.objectName()+"-stddev.layer", "Stddev")
def addLayer(s): n=s.numberOfObjects() for i in range(0, n): g=s.object_1(i) print(g.objectName()) gc=g.object(1).graphContents() if gc: gc.insertLayers(g.objectName()+"-average.layer", "Stddev") gc.insertLayers(g.objectName()+"-stddev.layer", "Stddev")