Array Response Function

For the hexagonal array installed at Eglin AFB in 2023 to monitor the fire we show here the array response function for a wave arriving at a particular angle (\(148^{\circ}\)) with an acoustic speed of 344 m/sec, or 0.344km/s.

The frequency of the incoming wave is variable: we investigate the ARF for 20s to 200Hz to show how the ARF varies with frequency band.

STA=readRDS(file='~/Site/Fire/META.DATA/CORRECTOMARstasD2.RDS')

STA.XY = list(x=STA$x/1000,y=STA$y/1000)

XY = data.frame(STA.XY)

plot(XY$x, XY$y, pch=6, asp=1, xlab='EW, km',
      ylab='NS, km', main='Omar ARRAY EGLIN' )
points(0,0, pch=3)
segments(0,0,XY$x[1], XY$y[1])
d.meters = sqrt(XY$x[1]^2+ XY$y[1]^2)*1000
d.angle = atan2(XY$y[1], XY$x[1])*180/pi
text(XY$x[1]/2, XY$y[1]/2, labels=paste('Distance', signif(d.meters,3), 'm'), adj=c(0.5, -1) , srt=d.angle  )
grid()

##### the units of the station locations is in km
library(RSEIS)
library(RPMG)
# library(GEOmap)
library(RBEAM)
## 
## Attaching package: 'RBEAM'
## The following object is masked from 'package:RSEIS':
## 
##     downsample
library(magicaxis)


# Parameter settings: slowness: in s/km
###  velocity: inf to 2 km/s  (surface waves or acoustic waves)
### so for acoustic waves 344 m/s  ->  s0 =  1/(0.344) s/km

#####  span of 
s1 = 1/(0.344+0.100)
s2 = 1/(.344 - 0.100)

#### The wave signal frequancy Hz
f = 15
####  initial slowness  seconds/km
s0 = 1/(0.344) 

#####  this is the arbitrary incoming angle  
b0 = 128
par(mfrow=c(1,1) )

par(mfrow=c(1,2) )
plot(XY$x, XY$y, pch=6, asp=1, xlab='EW, km',
      ylab='NS, km', main='Omar ARRAY EGLIN' )
points(0,0, pch=3)
segments(0,0,XY$x[1], XY$y[1])
d.meters = sqrt(XY$x[1]^2+ XY$y[1]^2)*1000
d.angle = atan2(XY$y[1], XY$x[1])*180/pi
text(XY$x[1]/2, XY$y[1]/2, labels=paste(signif(d.meters,3), 'm'), adj=c(0.5, -1) , srt=d.angle  )

grid()
f = 20
DO.PARF(XY, f, s1, s2, s0, b0, sn=51, bn=121, PLOT=1 )

title(main='Eglin Omar Array')

   zip.colors = colorRampPalette( c('cyan', 'gold') )
        PAL = zip.colors(100)


ef = c(0.05, 0.1, 1,  5, 10, 20, 50, 100, 200 )
  
par(mfrow=c(3,3) )
for(i in 1:length(ef) )
    {
f = ef[i]
aslo = signif(s0, 3)
DO.PARF(XY, f, s1, s2, s0, b0, sn=51, bn=121, PLOT=1 , CONT=2, PAL=PAL )
title(main=paste0('freq=', f,' slow=', aslo,' angle=', b0) )

    }

It seems that the optimal band shown here is in the 10-20Hz range, although even as low as 10 or 20 seconds an angle could be extracted from a beam form.

Given a specific frequency and slowness, can we find the response to any incoming angle?

s1 = 1/(0.344+0.100)
s2 = 1/(.344 - 0.100)

#### The wave signal frequancy Hz
f = 10
####  initial slowness  seconds/km
s0 = 1/(0.344) 

#####  this is the arbitrary incoming angle  
b0 = 128
zip.colors = colorRampPalette( c('cyan', 'gold') )
        PAL = zip.colors(100)

par(mfrow=c(1,2) )
DO.PARF(XY, f, s1, s2, s0, b0, sn=51, bn=121, PLOT=2 , CONT=2, PAL=PAL )