244 lines
9.9 KiB
PowerShell
244 lines
9.9 KiB
PowerShell
# Forensic Audit of Data - Find Differences from Original Grid
|
||
# Analyzing probe data to understand deviations from expected behavior
|
||
|
||
$auditLog = "forensic_audit_$(Get-Date -Format 'yyyyMMdd_HHmmss').log"
|
||
$analysisFile = "grid_comparison_analysis_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv"
|
||
|
||
# ANSI colors
|
||
$Red = "`e[31m"
|
||
$Green = "`e[32m"
|
||
$Yellow = "`e[33m"
|
||
$Blue = "`e[34m"
|
||
$Magenta = "`e[35m"
|
||
$Cyan = "`e[36m"
|
||
$Reset = "`e[0m"
|
||
|
||
function Log-Audit {
|
||
param($Message, $Severity = "INFO")
|
||
|
||
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss.fff"
|
||
$color = $Reset
|
||
|
||
switch ($Severity) {
|
||
"CRITICAL" { $color = $Red }
|
||
"WARNING" { $color = $Yellow }
|
||
"INFO" { $color = $Green }
|
||
"DEBUG" { $color = $Blue }
|
||
}
|
||
|
||
$logEntry = "[$timestamp] [$Severity] $Message"
|
||
Write-Host "$color$logEntry$Reset"
|
||
Add-Content -Path $auditLog -Value $logEntry
|
||
}
|
||
|
||
# Load probe data
|
||
$probeData = @()
|
||
if (Test-Path "probe_final_results.csv") {
|
||
$csv = Import-Csv "probe_final_results.csv"
|
||
$probeData = $csv
|
||
Log-Audit "Loaded $($csv.Count) records from probe_final_results.csv" "INFO"
|
||
} else {
|
||
Log-Audit "probe_final_results.csv not found" "WARNING"
|
||
}
|
||
|
||
# Load harmonic analysis for reference
|
||
$harmonicData = $null
|
||
if (Test-Path "harmonic_analysis_results.json") {
|
||
$harmonicData = Get-Content "harmonic_analysis_results.json" | ConvertFrom-Json
|
||
Log-Audit "Loaded harmonic analysis data" "INFO"
|
||
}
|
||
|
||
# Define expected values for original 1024×1024 grid
|
||
$originalGrid = @{
|
||
Size = 1024
|
||
Area = 1048576
|
||
ExpectedGuardians = 194
|
||
GuardianDensity = 0.0001850128173828125 # 194 / 1048576
|
||
PowerBaseline = 150 # Watts
|
||
GridRatio = 1.0
|
||
}
|
||
|
||
# Define actual 256×256 grid
|
||
$currentGrid = @{
|
||
Size = 256
|
||
Area = 65536
|
||
ExpectedGuardians = 12.125 # 194 × (256/1024)² = 194 × 0.0625
|
||
ActualGuardians = 13 # From probe data
|
||
GuardianDensity = 0.0001983642578125 # 13 / 65536
|
||
PowerBaseline = 37 # Watts (observed)
|
||
GridRatio = 0.25 # 256/1024
|
||
}
|
||
|
||
Log-Audit "================================================================" "INFO"
|
||
Log-Audit "FORENSIC AUDIT OF DATA - GRID COMPARISON" "INFO"
|
||
Log-Audit "================================================================" "INFO"
|
||
Log-Audit "" "INFO"
|
||
Log-Audit "ORIGINAL GRID (1024×1024):" "INFO"
|
||
Log-Audit " Size: $($originalGrid.Size)×$($originalGrid.Size)" "INFO"
|
||
Log-Audit " Area: $($originalGrid.Area) cells" "INFO"
|
||
Log-Audit " Expected Guardians: $($originalGrid.ExpectedGuardians)" "INFO"
|
||
Log-Audit " Guardian Density: $($originalGrid.GuardianDensity)" "INFO"
|
||
Log-Audit " Power Baseline: $($originalGrid.PowerBaseline)W" "INFO"
|
||
Log-Audit "" "INFO"
|
||
Log-Audit "CURRENT GRID (256×256):" "INFO"
|
||
Log-Audit " Size: $($currentGrid.Size)×$($currentGrid.Size)" "INFO"
|
||
Log-Audit " Area: $($currentGrid.Area) cells" "INFO"
|
||
Log-Audit " Expected Guardians: $($currentGrid.ExpectedGuardians) (scaled)" "INFO"
|
||
Log-Audit " Actual Guardians: $($currentGrid.ActualGuardians)" "INFO"
|
||
Log-Audit " Guardian Density: $($currentGrid.GuardianDensity)" "INFO"
|
||
Log-Audit " Power Baseline: $($currentGrid.PowerBaseline)W (observed)" "INFO"
|
||
Log-Audit " Grid Ratio: $($currentGrid.GridRatio) (1/4 linear, 1/16 area)" "INFO"
|
||
Log-Audit "" "INFO"
|
||
|
||
# Calculate differences
|
||
$guardianDifference = $currentGrid.ActualGuardians - $currentGrid.ExpectedGuardians
|
||
$densityDifference = $currentGrid.GuardianDensity - $originalGrid.GuardianDensity
|
||
$densityRatio = $currentGrid.GuardianDensity / $originalGrid.GuardianDensity
|
||
$powerRatio = $currentGrid.PowerBaseline / $originalGrid.PowerBaseline
|
||
$areaRatio = $currentGrid.Area / $originalGrid.Area
|
||
|
||
Log-Audit "ANALYSIS OF DIFFERENCES:" "INFO"
|
||
Log-Audit "================================================================" "INFO"
|
||
Log-Audit "1. Guardian Count:" "INFO"
|
||
Log-Audit " Expected (scaled): $($currentGrid.ExpectedGuardians)" "INFO"
|
||
Log-Audit " Actual: $($currentGrid.ActualGuardians)" "INFO"
|
||
Log-Audit " Difference: $guardianDifference guardians" "INFO"
|
||
Log-Audit " Percentage: $(($guardianDifference/$currentGrid.ExpectedGuardians*100).ToString('F2'))%" "INFO"
|
||
|
||
Log-Audit "" "INFO"
|
||
Log-Audit "2. Guardian Density:" "INFO"
|
||
Log-Audit " Original: $($originalGrid.GuardianDensity.ToString('E6'))" "INFO"
|
||
Log-Audit " Current: $($currentGrid.GuardianDensity.ToString('E6'))" "INFO"
|
||
Log-Audit " Difference: $($densityDifference.ToString('E6'))" "INFO"
|
||
Log-Audit " Ratio (Current/Original): $($densityRatio.ToString('F4'))" "INFO"
|
||
|
||
Log-Audit "" "INFO"
|
||
Log-Audit "3. Power Scaling:" "INFO"
|
||
Log-Audit " Original: $($originalGrid.PowerBaseline)W" "INFO"
|
||
Log-Audit " Current: $($currentGrid.PowerBaseline)W" "INFO"
|
||
Log-Audit " Ratio: $($powerRatio.ToString('F4')) (expected: $areaRatio)" "INFO"
|
||
Log-Audit " Efficiency: $(($areaRatio/$powerRatio*100).ToString('F1'))% of expected" "INFO"
|
||
|
||
Log-Audit "" "INFO"
|
||
Log-Audit "4. Area Scaling:" "INFO"
|
||
Log-Audit " Linear scaling: $($currentGrid.GridRatio) (1/4)" "INFO"
|
||
Log-Audit " Area scaling: $areaRatio (1/16)" "INFO"
|
||
|
||
# Analyze probe data patterns
|
||
if ($probeData.Count -gt 0) {
|
||
Log-Audit "" "INFO"
|
||
Log-Audit "PROBE DATA ANALYSIS:" "INFO"
|
||
Log-Audit "================================================================" "INFO"
|
||
|
||
# Convert to proper types
|
||
$typedData = @()
|
||
foreach ($row in $probeData) {
|
||
$typedData += [PSCustomObject]@{
|
||
Cycle = [int]$row.Cycle
|
||
Time = $row.Time
|
||
Omega = [float]$row.Omega
|
||
Enstrophy = $row.Enstrophy
|
||
RhoMin = [float]$row.RhoMin
|
||
RhoMax = [float]$row.RhoMax
|
||
Power = $row.Power
|
||
Guardians = [int]$row.Guardians
|
||
Mass = [float]$row.Mass
|
||
MTotal = [float]$row.MTotal
|
||
Probe = $row.Probe
|
||
}
|
||
}
|
||
|
||
# Find anomalies
|
||
$omegaAnomalies = $typedData | Where-Object { $_.Omega -lt 0.6 -or $_.Omega -gt 1.95 }
|
||
$guardianChanges = $typedData | Where-Object { $_.Guardians -ne $currentGrid.ActualGuardians }
|
||
$massSpikes = $typedData | Where-Object { $_.Mass -gt 100 }
|
||
|
||
Log-Audit "Data Range: Cycles $($typedData[0].Cycle) to $($typedData[-1].Cycle)" "INFO"
|
||
Log-Audit "Total Records: $($typedData.Count)" "INFO"
|
||
|
||
if ($omegaAnomalies.Count -gt 0) {
|
||
Log-Audit "Omega Anomalies Found: $($omegaAnomalies.Count) records outside [0.6, 1.95]" "WARNING"
|
||
foreach ($anom in $omegaAnomalies | Select-Object -First 3) {
|
||
Log-Audit " Cycle $($anom.Cycle): Omega = $($anom.Omega)" "WARNING"
|
||
}
|
||
} else {
|
||
Log-Audit "Omega Values: All within normal range [0.6, 1.95]" "INFO"
|
||
}
|
||
|
||
if ($guardianChanges.Count -gt 0) {
|
||
Log-Audit "Guardian Count Changes: $($guardianChanges.Count) records" "WARNING"
|
||
$uniqueCounts = $guardianChanges.Guardians | Sort-Object -Unique
|
||
Log-Audit " Unique guardian counts: $($uniqueCounts -join ', ')" "WARNING"
|
||
} else {
|
||
Log-Audit "Guardian Count: Stable at $($currentGrid.ActualGuardians)" "INFO"
|
||
}
|
||
|
||
if ($massSpikes.Count -gt 0) {
|
||
Log-Audit "Mass Spikes Found: $($massSpikes.Count) records with mass > 100" "CRITICAL"
|
||
} else {
|
||
$maxMass = ($typedData | Measure-Object -Property Mass -Maximum).Maximum
|
||
Log-Audit "Mass Range: 0 to $($maxMass.ToString('F2')) (no spikes)" "INFO"
|
||
}
|
||
|
||
# Calculate statistics
|
||
$avgOmega = ($typedData | Measure-Object -Property Omega -Average).Average
|
||
$avgPower = ($typedData | ForEach-Object { [double]$_.Power } | Measure-Object -Average).Average
|
||
$avgMass = ($typedData | Measure-Object -Property Mass -Average).Average
|
||
|
||
Log-Audit "" "INFO"
|
||
Log-Audit "STATISTICAL SUMMARY:" "INFO"
|
||
Log-Audit " Average Omega: $($avgOmega.ToString('F4'))" "INFO"
|
||
Log-Audit " Average Power: $($avgPower.ToString('E3'))" "INFO"
|
||
Log-Audit " Average Mass: $($avgMass.ToString('F2'))" "INFO"
|
||
Log-Audit " Average MTotal: $(($typedData | Measure-Object -Property MTotal -Average).Average.ToString('F2'))" "INFO"
|
||
}
|
||
|
||
# Check harmonic analysis for grid size relationships
|
||
if ($harmonicData) {
|
||
Log-Audit "" "INFO"
|
||
Log-Audit "HARMONIC ANALYSIS INTEGRATION:" "INFO"
|
||
Log-Audit "================================================================" "INFO"
|
||
|
||
$currentSizeIndex = $harmonicData.grid_sizes.IndexOf($currentGrid.Size)
|
||
if ($currentSizeIndex -ge 0) {
|
||
$harmonicFraction = $harmonicData.harmonic_fractions[$currentSizeIndex]
|
||
$musicalInterval = $harmonicData.musical_intervals[$currentSizeIndex]
|
||
|
||
Log-Audit "Grid Size $($currentGrid.Size) corresponds to:" "INFO"
|
||
Log-Audit " Harmonic Fraction: $harmonicFraction" "INFO"
|
||
Log-Audit " Musical Interval: $musicalInterval" "INFO"
|
||
|
||
# Check if we're near stability boundary
|
||
$stabilityBoundary = $harmonicData.critical_thresholds.stability_boundary
|
||
if ($currentGrid.Size -le $stabilityBoundary) {
|
||
Log-Audit " WARNING: Grid size is at or below stability boundary ($stabilityBoundary)" "WARNING"
|
||
}
|
||
}
|
||
}
|
||
|
||
Log-Audit "" "INFO"
|
||
Log-Audit "FORENSIC AUDIT COMPLETE" "INFO"
|
||
Log-Audit "================================================================" "INFO"
|
||
|
||
# Export analysis to CSV
|
||
$analysisResults = [PSCustomObject]@{
|
||
Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
||
OriginalGridSize = $originalGrid.Size
|
||
CurrentGridSize = $currentGrid.Size
|
||
ExpectedGuardians = $currentGrid.ExpectedGuardians
|
||
ActualGuardians = $currentGrid.ActualGuardians
|
||
GuardianDifference = $guardianDifference
|
||
OriginalDensity = $originalGrid.GuardianDensity
|
||
CurrentDensity = $currentGrid.GuardianDensity
|
||
DensityRatio = $densityRatio
|
||
OriginalPower = $originalGrid.PowerBaseline
|
||
CurrentPower = $currentGrid.PowerBaseline
|
||
PowerRatio = $powerRatio
|
||
AreaRatio = $areaRatio
|
||
EfficiencyPercentage = ($areaRatio/$powerRatio*100)
|
||
AuditFindings = "See log for details"
|
||
}
|
||
|
||
$analysisResults | Export-Csv -Path $analysisFile -NoTypeInformation
|
||
Log-Audit "Analysis exported to: $analysisFile" "INFO"
|
||
Log-Audit "Audit log saved to: $auditLog" "INFO" |