Ground Penetrating Radar <=> Seismic Unix
(an idea?)
Seismic Unix is a big software! Why? Because behind SU there is a very strong scientific staff! Another little thing that SU is: it's FREE!!!! SU is not only a seismic package, it can be usefull to process a lot of kind of data. Why not georadar? In these pages you can find the little examples.
To obtain and install SU go to web site of CWP (Center for Wave Phenomena) and follow the link.
I use SU on Linux system (Mandrake).
I shall wait for your notes.
Thanks to SU community (especially John Stockwell).
Seismic Unix è un grande software!. Perchè? Semplicemente perchè è fatto e testato da un validissimo staff di specialisti. Ma la cosa più importante è che è assolutamente GRATIS!!!! SU non è solo sismico, ma può essere usato anche per elaborare altri tipi di dati. E perchè non georadar? In queste pagine puoi trovare degli esempi.
Per scaricare SU e capire come installarlo (non è difficile) vai al sito della CWP (Center for Wave Phenomena) e segui il link.
Io lo uso su piattaforma linux (Mandrake).
Aspetto contributi e commenti.
Ringrazio la comunità SU ..speriamo che non molli mai!
Principally Ramac data are composed by two file:
*.rd3 (a binary file with data collected)
*.rad (a ascii file with informations about radar collected)
Data are 16 integer little endian format. If you use a Linux-PC you can import them with a bash script like this:
FILEi=$1if [ ! -f $FILEi".rd3" ] ;
then echo "$FILE: no data file"
exit 1
fi
if [ ! -f $FILEi".rad" ] ;
then echo "$FILE: no headers file"
exit 1
fi
echo "I will import file "$FILEi".rd3"
ns=`awk -F: ' NR==1 {print $NF } ' $FILEi".rad" `
echo " Samples = " $ns
freq=`awk -F: ' NR==2 {print $NF} ' $FILEi".rad" `
sr=` echo $freq | awk ' {print 1000 / ($1)}'`
dt=` echo $freq | awk ' {print 1000000 / ($1)}'`
echo " Sample rate = " $sr "nanosec"
recast in=short out=float < $FILEi".rd3" | suaddhead ns=$ns | sushw key=dt a=$dt >$FILEi".su"
echo "I created " $FILEi".su" "from " $FILEi".rd3"
When have run this job you'll have a new SU file.
If you use a big endian machine (es. Sun) before recast command you MUST swap data with swapbytes <$FILEi".rd3" in=short
You need AWK.
I dati Ramac sono composti da due file:
*.rd3 (il vero e proprio file di dati in binario)
*.rad (il file ascii con le informazioni dell'acquisizione)
I dati sono nel formato a 16 bit interi little endian. Se usi un PC con Linux (altamente consigliato) tu puoi importarli facilmente con uno script su una shell bash di questo tipo:
FILEi=$1if [ ! -f $FILEi".rd3" ] ;
then echo "$FILE: nessun file di dati"
exit 1
fi
if [ ! -f $FILEi".rad" ] ;
then echo "$FILE: nessun file di headers"
exit 1
fi
echo "Ti importerò il file "$FILEi".rd3"
ns=`awk -F: ' NR==1 {print $NF } ' $FILEi".rad" `
echo " Campioni = " $ns
freq=`awk -F: ' NR==2 {print $NF} ' $FILEi".rad" `
sr=` echo $freq | awk ' {print 1000 / ($1)}'`
dt=` echo $freq | awk ' {print 1000000 / ($1)}'`
echo " Campionamento = " $sr "nanosec"
recast in=short out=float < $FILEi".rd3" | suaddhead ns=$ns | sushw key=dt a=$dt >$FILEi".su"
echo "Ho creato " $FILEi".su" "da " $FILEi".rd3"
Dopo ti trovi nella stessa directory un nuovo file SU.
Se tu usi una macchina a big endian (es. Sun) prima del recast DEVI girare i dati con swapbytes <$FILEi".rd3" in=short
Il tutto funziona con AWK installato.
Setting common offset geometry
The first processing step must be setting data geometry. Setting geometry means to allot every traces the information (transmitter and receiver position, offset, cdp number, ...). Usually we have singlefold profile. In this case we know only the offset and transmitter position, then we can run a SU job like this (example with offset=70cm and transmitter position=100cm with increment=10cm):
#! /bin/sh
sushw <$1 key=offset,sx,tracr a=70,100,1 b=0,10,1 | suchw key1=gx,cdp key2=offset,sx key3=sx,gx a=0,0 b=1,1 c=1,1 d=1,2 > $2
use job file.su file_geo.su
When have run this job you'll have a new SU file with this geometry:
offset | sx | gx | cdp | tracr | |
1° trace | 70 | 100 | 170 | 135 | 1 |
n trace | 70 | 100+(n-1)10 | 170+(n-1)10 | 135+(n-1)10 | n |
We can verify it with suxedit.
La prima cosa da fare nei dati è creare la geometria, cioè applicare i parametri spaziali (posizione del trasmettitore e del ricevitore, ...) alle singole tracce. Di solito si hanno sezioni a singlefold. In questo caso un job SU job di questo tipo può andare bene (esempio con offset=70cm e posizione della sorgente=100cm con incremento di=10cm):
#! /bin/sh
sushw <$1 key=offset,sx,tracr a=70,100,1 b=0,10,1 | suchw key1=gx,cdp key2=offset,sx key3=sx,gx a=0,0 b=1,1 c=1,1 d=1,2 > $2
usa job file.su file_geo.su
Dopo aver lanciato questo job si avrà un nuovo file SU con questa geometria:
offset | sx | gx | cdp | tracr | |
1° trace | 70 | 100 | 170 | 135 | 1 |
n trace | 70 | 100+(n-1)10 | 170+(n-1)10 | 135+(n-1)10 | n |
Si verifica il tutto con suxedit.
If you collect cdp data you know only cdp and offset headers. You can run a SU job like this (example with minimum offset=20cm with increment=10cm and cdp=100):
#! /bin/sh
sushw <$1 key=offset,cdp,tracr a=20,100,1 b=10,0,1 | suchw key1=gx,sx key2=cdp,cdp key3=offset,offset a=0,0 b=1,1 c=-0.5,0.5 d=1,1 > $2
use job file.su file_geo.su
When have run this job you'll have a new SU file with this geometry:
offset | sx | gx | cdp | tracr | |
1° trace | 20 | 90 | 110 | 100 | 1 |
n trace | 20+(n-1)*10 | 100-(n+1)*5 | 100+(n+1)*5 | 100 | n |
We can verify it with suxedit.
Crea la geometria nei dati cdp
Se acquisisci dati cdp conosci solo i valori dei cdp e degli offset. Puoi usare un job SU di questo tipo (esempio con offset minimo=20cm ed incremento di=10cm e cdp=100):
#! /bin/sh
sushw <$1 key=offset,cdp,tracr a=20,100,1 b=10,0,1 | suchw key1=gx,sx key2=cdp,cdp key3=offset,offset a=0,0 b=1,1 c=-0.5,0.5 d=1,1 > $2
digita job file.su file_geo.su
Dopo ti troverai con un nuovo file SU con una geometria di questo tipo:
offset | sx | gx | cdp | tracr | |
1° trace | 20 | 90 | 110 | 100 | 1 |
n trace | 20+(n-1)*10 | 100-(n+1)*5 | 100+(n+1)*5 | 100 | n |
Verifica il tutto con suxedit.
#! /bin/sh
sushw <$1 key=offset,sx,tracr a=60,100,1 b=10,0,1 | suchw key1=gx,cdp key2=sx,gx key3=offset,sx a=0,0 b=1,1 c=1,1 d=1,2 > $2
use job file.su file_geo.su
When have run this job you'll have a new SU file with this geometry:
offset | sx | gx | cdp | tracr | |
1° trace | 60 | 100 | 160 | 130 | 1 |
n trace | 60+(n-1)*10 | 100 | 160+(n-1)*10 | 130+(n-1)*5 | n |
We can verify it with suxedit.
Crea la geometria nei dati warr
Se acquisisci dati warr conosci solo i valori della posizione del trasmettitore e gli offset. Puoi usare un job SU di questo tipo (esempio con offset minimo=60cm ed incremento di=10cm e sx=100):
#! /bin/sh
sushw <$1 key=offset,sx,tracr a=60,100,1 b=10,0,1 | suchw key1=gx,cdp key2=sx,gx key3=offset,sx a=0,0 b=1,1 c=1,1 d=1,2 > $2
digita job file.su file_geo.su
Il nuovo SU file avrà la seguente geometria:
offset | sx | gx | cdp | tracr | |
1° trace | 60 | 100 | 160 | 130 | 1 |
n trace | 60+(n-1)*10 | 100 | 160+(n-1)*10 | 130+(n-1)*5 | n |
Verifica con suxedit.
After setting data geometry you can simply verify it with:
suchart < file_geo.su outpar=pfile | xgraph par=pfile title "CMP" linewidth=0 marksize=1 mark=5
Or send to ps_file:
suchart < file_geo.su outpar=pfile | psgraph par=pfile title "CMP" linewidth=0 marksize=1 mark=5 >ps_file
And then see it with gv.
Dopo aver creato la geometria, puoi semplicemente controllarla con:
suchart < file_geo.su outpar=pfile | xgraph par=pfile title "CMP" linewidth=0 marksize=1 mark=5
O spedirla su un ps_file:
suchart < file_geo.su outpar=pfile | psgraph par=pfile title "CMP" linewidth=0 marksize=1 mark=5 >ps_file
e vederla con gv.