All pastes #633690 Raw Edit

statistica macro attn jkent

public text v1 · immutable
#633690 ·published 2007-07-25 21:53 UTC
rendered paste body
Dim ListArray(4) As String
Dim ComboArray(5) As String

Dim DataFileName As String
Dim DataDirectory As String
Dim SaveDirectory As String

Dim gain As New Spreadsheet
Dim phase As New Spreadsheet
Dim coherence As New Spreadsheet

Dim FileNumber As Integer
Dim strFileNames(1 To 9) As String
Dim strPrefix, strSuffix As String

Dim NumberOfRows As Integer
Dim NumberOfColumns As Integer 


Sub Main
NumberOfRows=9
NumberOfColumns=10

DataDirectory = "C:\Documents and Settings\Julie\My Documents\CarFol_Vel_Analysis\car_follow_processing\"
SaveDirectory = "C:\Documents and Settings\Julie\My Documents\CarFol_Vel_Analysis\car_follow_processing\"

  strPrefix="CarFollowV2_Follow_Sub"
  strSuffix="_1"
  strFileNames(1) = "JL_"
  strFileNames(2) = "ME_"

gain.SetSize(NumberOfRows+1, 6)
phase.SetSize(NumberOfRows+1, 6)
coherence.SetSize(NumberOfRows+1, 6)


gain.Visible =True
phase.Visible =True
coherence.Visible =True 


    For i = 1 To NumberOfRows
    	For j=1 To 5
			gain.Value (i+1,j+1)=0.0
			phase.Value (i+1,j+1)=0.0
			coherence.Value (i+1,j+1)=0.0
    	Next j
		FileNumber = i
		Fourier
		Next i
gain.Value (1,1)="SubjectName"
phase.Value (1,1)="SubjectName"
coherence.Value (1,1)="SubjectName"
For i=1 To 3
	gain.Value (1,1+i)="Freq"+Right(Str(i),1)
	phase.Value (1,1+i)="Freq"+Right(Str(i),1)
	coherence.Value (1,1+i)="Freq"+Right(Str(i),1)

Next i

gain.SaveAs (SaveDirectory + "SumSin_gain_"+ ".sta")
phase.SaveAs (SaveDirectory + "SumSin_phase_" + ".sta")
coherence.SaveAs (SaveDirectory + "SumSin_coherence_" + ".sta")
Finish:
End Sub
Sub Fourier

Dim sum As Double
sum=0.0
Dim filename As String
For j=1 To 2

	filename = DataDirectory + strPrefix+strFileNames(FileNumber)+Right(Str(j),1)+strSuffix + ".txt"

	Dim S1 As Spreadsheet
	Set S1 = Spreadsheets.Open (filename)
	S1.Visible = True
	S1.SaveAs (DataDirectory + strFileNames(FileNumber)+Right(Str(j),1) + ".sta")



	For i=1 To NumberOfColumns/2
	'i=2

	Dim newanalysis3 As Analysis
	Set newanalysis3 = Analysis (scTimeSeries, S1)

	With newanalysis3.Dialog
	    .Variables = "1-10"
	    .LockTimeSeriesVariable = "Locked  Locked  Locked  Locked  Locked  Locked  Locked  Locked  Locked  Locked"
	    .SeriesShortName = "Var1  Var2  Var3  Var4  Var5  Var6  Var7  Var8  Var9  Var10"
	    .SeriesLongName = "" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		""+ vbLf + _
		"" + vbLf + _
		""
	    .FocusTimeSeriesVariable = 3
	    .NumberOfBackupsPerVariable = 3
	    .InterpolateMDFromAdjacentPoints = True
	    .NumberOfAdjacentPointsForMeanMDReplacement = 1
	    .NumberOfAdjacentPointsMedianMDReplacement = 2
	End With

	newanalysis3.Dialog.SpectralFourierAnalysis

	'This little routine below creates a string with the right name for the Dependent Variable in the Fourier analysis.
	'I'm using the Right function below to remove a space that was occuring between "Var" and the number when I left it out.

	Dim DependentVar As String
	DependentVar = Str(2*i-1) + " Var"
	DependentVar = DependentVar + Right(Str(2*i-1),1)


	With newanalysis3.Dialog
	    .LockTimeSeriesVariable = "Locked  Locked  Locked  Locked  Locked  Locked  Locked  Locked  Locked  Locked"
	    .SeriesShortName = "VAR1  VAR2  VAR3  VAR4  VAR5  VAR6  VAR7  VAR8  VAR9  VAR10"
	    .SeriesLongName = "" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		"" + vbLf + _
		""
	    .FocusTimeSeriesVariable = (2*i)
	    .NumberOfBackupsPerVariable = 3
	    .DependentVariable = DependentVar
	    .Taper = False
	    .SubtractMeanFromInputSeries = True
	    .DetrendInputSeries = True
	    .PadLengthToAPowerOf2 = True
	    .DisplayPlotSubsetOfCasesOnly = True
	    .DisplayPlotSubsetFrom = 1 'should change according to specific raw data file, the same as the following line
	    .DisplayPlotSubsetTo = 3600
	    .ScaleXAxisInPlotsManually = False
	    .LabelDataPointsWithCaseNumbers = True
	    .PLevelForHighlighting = 0.050000
	    .WhiteNoiseStandardErrors = True
	    .NumberOfLags = 15
	End With

	newanalysis3.Dialog.TwoSeriesFourierAnalysis



	With newanalysis3.Dialog
	    .HighlightValuesInSpreadsheet = True
	    .HighlightValuesGreaterThan = 1.000000
	    .NLargestValues = 10
	    .DisplayLargestCrossPeriodogramReal = True
	    .DataWindowForDensityEstimatesHamming = True
	    .UserDefinedDataWindow = "0.0357143 0.241071 0.446429 0.241071 0.0357143 "
	    .WidthOfDataWindow = 5
	    .AppendToWorkAreaFrequencyValues = False
	    .AppendToWorkAreaPeriodValues = False
	    .AppendToWorkAreaCosineCoefficients = False
	    .AppendToWorkAreaSineCoefficients = False
	    .AppendToWorkAreaPeriodogram = False
	    .AppendToWorkAreaSpectralDensity = False
	    .AppendToWorkAreaCrossPeriodogram = False
	    .AppendToWorkAreaCospectralDensity = False
	    .AppendToWorkAreaQuadratureSpectrum = False
	    .AppendToWorkAreaCrossAmplitude = False
	    .AppendToWorkAreaCoherency = False
	    .AppendToWorkAreaGain = False
	    .AppendToWorkAreaPhaseSpectrum = False
	    .ExamineSubsetOfPeriodogram = False
	    .SelectedResultCosineCoeffs = False
	    .SelectedResultSineCoeffs = False
	    .SelectedResultPeriodogram = False
	    .SelectedResultSpectralDensity = False
	    .SelectedResultCrossPeriodogram = Fals
	    .SelectedResultCospectralDensity = True
	    .SelectedResultQuadratureSpectrum = True
	    .SelectedResultCrossAmplitude = False
	    .SelectedResultCoherency = True
	    .SelectedResultGain = False
	    .SelectedResultPhaseSpectrum = False
	    .PlotByFrequency = True
	End With

	Set r=newanalysis3.RouteOutput(newanalysis3.Dialog.Summary)

	If (r.HasWorkbook=True) Then

	Dim w As Workbook
	Set w=r.Workbook
	Dim wi As WorkbookItem
	Set wi=w.Root.Child
	While (wi.Type<>scWorkbookItemTypeSpreadsheet)
	  Set wi=wi.Child
	  Wend
	  Dim s As Spreadsheet
	  Set s=wi.Extract(scWorkbookExtractCopy)
	  s.Visible=True
	End If

	'newanalysis3.RouteOutput(newanalysis3.Dialog.Summary).Visible = True


	gain.Value(FileNumber+1,2)=s.Value(3,18)/10+gain.Value(FileNumber+1,2)
	gain.Value(FileNumber+1,3)=s.Value(6,18)/10+gain.Value(FileNumber+1,3)
	gain.Value(FileNumber+1,4)=s.Value(13,18)/10+gain.Value(FileNumber+1,4)
	gain.Visible = True

	phase.Value(FileNumber+1,2)=s.Value(3,19)/10+phase.Value(FileNumber+1,2)
	phase.Value(FileNumber+1,3)=s.Value(6,19)/10+phase.Value(FileNumber+1,3)
	phase.Value(FileNumber+1,4)=s.Value(13,19)/10+phase.Value(FileNumber+1,4)
	phase.Visible = True

	coherence.Value(FileNumber+1,2)=s.Value(3,16)/10+coherence.Value(FileNumber+1,2)
	coherence.Value(FileNumber+1,3)=s.Value(6,16)/10+coherence.Value(FileNumber+1,3)
	coherence.Value(FileNumber+1,4)=s.Value(13,16)/10+coherence.Value(FileNumber+1,4)
	coherence.Visible = True

	newanalysis3.Close

	newanalysis3.Close
	Set newanalysis3 = Nothing
	s.Close
	w.Close

	Next i

	S1.Close
	Set S1 = Nothing
Next j
gain.Value(FileNumber+1,1)=strFileNames(FileNumber)
phase.Value(FileNumber+1,1)=strFileNames(FileNumber)
coherence.Value(FileNumber+1,1)=strFileNames(FileNumber)
End Sub