Difference between revisions of "Python example: editing HV results"

From GeopsyWiki
Jump to navigation Jump to search
Line 1: Line 1:
 +
This script works only with GeopsyPack>=3.6
 +
 
Import SciFigs module and create a blank sheet
 
Import SciFigs module and create a blank sheet
 
   import GeopsyPySciFigs as sf
 
   import GeopsyPySciFigs as sf
Line 16: Line 18:
 
   hvedit.addLayer(s)
 
   hvedit.addLayer(s)
  
 +
=== Python code ===
  
 
   def setWidth(s):
 
   def setWidth(s):

Revision as of 08:55, 22 October 2024

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