Tutorial - ipemu/gloc GitHub Wiki
Okopírujte si připravené příklady do své složky.
Běžte do podadresáře tutor1 nebo tutor2
a spusťte skript ./run_valtice.sh
.
Uvidíte, co se stane.
Na dvou připravených příkladech Příklad 1 a Příklad 2 si vyzkoušíme spuštění programů NonLinLoc (dále jen NLL) a uděláme si představu o možnostech této sady programů.
Kód programů byl upraven, aby se usnadnilo jejich používání v našich podmínkách. Na dalším přizpůsobení programů se pracuje, upravený kód je dostupný v repozitáři GLoc
Další poznámky a komentáře lze najít na webových stránkách, které patří k tomuto repozitáři https://ipemu.github.io/gloc. Zde lze nalézt související příspěvky:
Vlastnosti NLL vyzkoušíme na datech seismického jevu Valtice ze dne 2016-10-09. V prvním příkladu vyzkoušíme lokaci v používaném 1D modelu edu_grad.mod, abychom mohli porovnat s výsledky běžného postupu, a potom ve druhém příkladu lokaci v 3D modelu podle [Shippkus et al., 2018].
Jaký bude výsledek připravených příkladů vidíme na mapce.
Mapka 1: Poloha ohniska jevu valtice.20161009 získaná zavedeným postupem (program hypo3d v 1D modelu edu_grad.mod) a stejného jevu lokalizovaného programem NLL v příkladu Příklad 1 a Příklad 2
Spustitelné programy NLL jsou již nainstalovány v adresáři
/opt/ipe/share/gloc/bin
Výpis adresáře
$ ls -1 /opt/ipe/share/gloc/bin
Grid2GMT5
Grid2Time
LocSum
NLLoc
Time2Angles
Time2EQ
Vel2Grid
Pokud budeme programy NLL jen zkoušet, obejdeme se bez nastavení cesty
k programům v systémovém prostředí.
Skutečnost, že proměnná prostředí $PATH
neobsahuje cestu k programům NLL
nemusí prakticky vadit. Patří ke stylu používání těchto programů,
že je uživatel nevolá přímo, ale spouští najednou celou posloupnost příkazů
zapsaných v dávkovém souboru. Cestu k programům NLL nastavíme mezi prvními
příkazy dávkového souboru:
export PATH=/opt/ipe/share/gloc/bin:$PATH
Při běhu programů NLL vzniká více pracovních souborů, které je vhodnější umístit v domovském adresáři svého uživatelského účtu a nezasahovat do sdílených oblastí souborového systému. Dávkový "job" programů NLL tedy spouštíme ve vhodném pracovním adresáři na svém uživatelském účtu. Dále je na příkladu doporučeno, jak pracovní soubory přehledně uspořádat do podadresářů.
Do sdílené oblasti souborového systému je vhodné umístit data
sdílených rychlostních modelů a případně předpočítaná pole časů šíření.
K tomu byl založen adresář /data/models/NLL
.
Obsahuje soubory rychlostního modelu
"jvsvahCMsch" (JV svahy Českého masívu podle [Shippkus et al., 2018]), který
se používá ve zde uvedeném příkladu.
Výpis adresáře
$ ls -1 -s -h /data/models/NLL
celkem 112M
13M jvsvahCMsch.P.A001.time.buf
1,0K jvsvahCMsch.P.A001.time.hdr
13M jvsvahCMsch.P.KRUC.time.buf
1,0K jvsvahCMsch.P.KRUC.time.hdr
13M jvsvahCMsch.P.mod.buf
1,0K jvsvahCMsch.P.mod.hdr
1,0K jvsvahCMsch.P.mod.stations
13M jvsvahCMsch.P.MYDU.time.buf
1,0K jvsvahCMsch.P.MYDU.time.hdr
13M jvsvahCMsch.P.NADU.time.buf
1,0K jvsvahCMsch.P.NADU.time.hdr
13M jvsvahCMsch.P.RUDU.time.buf
1,0K jvsvahCMsch.P.RUDU.time.hdr
13M jvsvahCMsch.P.SEDU.time.buf
1,0K jvsvahCMsch.P.SEDU.time.hdr
13M jvsvahCMsch.P.SUPC.time.buf
1,0K jvsvahCMsch.P.SUPC.time.hdr
13M jvsvahCMsch.P.VRAC.time.buf
1,0K jvsvahCMsch.P.VRAC.time.hdr
Jednotlivé programy NLL se spouští postupně prostřednictvím dávkového souboru
ve skriptovacím jazyce bash
.
Pro tento "job" předem připravíme potřebná vstupní data, parametry programů
a pracovní adresáře.
Mezivýsledky výpočtů si programy NLL předávají jako soubory v pracovních adresářích.
Běh programů je řízen podle parametrů načítaných z parametrického souboru.
Parametrický soubor je zpravidla jeden společný pro všechny příkazy volané v rámci
jednoho jobu.
Obr. 1: Schéma předávání dat a parametrů mezi programy NLL
Parametry programů jsou soustředěny do textového souboru, který obsahuje názvy parametrů a jejich hodnoty. Některé parametry platí pro více programů, ale většina parametrů je určená konkrétnímu programu. Příslušnost k určitému programu poznáme podle počátečních písmen.
program | parametry |
---|---|
Vel2Grid | VG |
Grid2Time | GT |
NLLoc | LOC |
Time2EQ | EQ |
Zapisuje se jeden parametr na řádek, na začátku řádku je název parametru a následují jeho hodnoty. Pro přehlednost lze parametrický soubor rozčlenit do sekcí podle programů a přidat komentáře (uvozeno znakem # na začátku řádku).
Předlouhý seznam všech možných parametrů a jejich nastavení je v původní dokumentaci na webových stránkách alomax.free.fr/nlloc
Pro přehled v souborech skriptů, parametrů, vstupních dat, výsledků a různých pracovních souborů se osvědčilo následující uspořádání. V domovském adresáři svého účtu založíme kořenový adresář pojmenovaný podle použitého modelu a případně podle řešené úlohy. Do této složky umístíme dávkový soubor řešené úlohy a parametrický soubor. Dále založíme podadresáře nazvané podle schématu:
.
|-jvsvahCMedu kořenový adresář
|---geog geografická data (hranice, řeky)
|---gmt výstup obrázků a pracovní soubory GMT
|---loc výstupy lokace a pracovní soubory
|---model rychlostní model
|---obs vstup, nasazení seismických fází
|---time pole časů šíření seismických vln
Podadresáře naplníme vstupními daty:
- Vstupní data odečtených nasazení seismických fází nahrajeme do složky
obs/
. Pro každý seismický jev jeden soubor v příslušném seismickém formátu. - Rychlostní model se buďto během výpočtu vytvoří podle údajů v parametrickém souboru a nebo
použijeme odkaz na předpřipravený model ve sdíleném adresáři souborového systému.
Proto bude složka
model/
před výpočtem většinou prázdná. - Podklady pro mapovou kresbu umístíme do souboru
geog/
.
Po spuštění skriptu a úspěšném běhu úlohy najdeme výsledky výpočtu
hlavně ve složce loc/
a obrázky ve složce gmt/
.
Příklady se snaží ukázat typický běh programů NLL v nejjednodušším nastavení. Ověříme si tak účinek programu ve výchozím nastavení.
Příklady byly připraveny a jsou funkční jen v tomto specifickém prostředí:
- Operační systém Linux
- Domovský adresář uživatelského účtu
- Instalované GMT verze 5
- Spustitelné programy GLoc (upravený NonLinLoc) jsou dostupné
ve sdílené složce
/opt/ipe/share/gloc/bin
-
Příklad 2 předpokládá, že soubory modelu jsou předpřipravené
ve sdílené složce
/data/models/NLL
Spuštění připravených příkladů je prosté, stačí udělat čtyři kroky:
Stáhneme zabalené soubory z webu do vhodné složky svého domovského adresáře a rozbalíme.
tutor.zip | unzip tutor.zip |
nebo | |
tutor.tar.gz | tar xvfz tutor.tar.gz |
Přejdeme do podadresáře
cd tutor1
nebo
cd tutor2
A prohlédneme si obsah složky před výpočtem. Obsahuje jen čtyři malé textové soubory:
run_valtice.sh dávkový soubor
valtice.nll parametrický soubor
obs/valtice20161009.obs nasazení seismických fází ve formátu NLL
geog/border_YX_km.txt státní hranice
Můžeme si prohlédnout text skriptu run_valtice.sh a porovnat s jeho komentovaným výpisem uvedeným v popisu příkladu 1 nebo popisu příkladu 2, abychom věděli, co se bude dít po jeho spuštění.
Spustíme skript
./run_valtice.sh
Skript si nejprve zkontroluje, zda byl spuštěn ze svého adresáře a poběží asi dvě až čtyři minuty.
Ve podadresářích složky tutor1/
vznikne 68 nových souborů o velikosti asi 130 MB,
ve složce tutor2/
jich vznikne méně.
Výsledky najdeme v podadresáři loc/
, v souboru valtice.20161009.000827.grid1.loc.hyp
.
Obrázky najdeme v podadresáři gmt/
ve formátu PostScript.
Příklad ukazuje celý postup zpracování od vytvoření vlastního rychlostního modelu, přes výpočet polí časů šíření seismických vln po lokaci ohniska a zobrazení výsledků. Rychlostní model má stejné parametry jako model edu_grad.mod používaný s programem hypo3d. V parametrickém souboru je nakonfigurovaný výpočet magnituda M_L podle vztahu Scherbaum, Stoll 1983, shodně s programem hypo3d.
Popis parametrického souboru a naprogramovaného dávkového souboru tohoto příkladu je na zvláštní stránce Příklad 1 parametry
Nemělo by být překvapením, že výsledky lokace jsou prakticky shodné jako výsledky
programu hypo3d v modelu edu_grad.mod.
Porovnání několika metod lokace v různých modelech je uvedeno v mapce na začátku stránky.
Chyba lokace je zde znázorněná pomocí mraku bodů. Můžeme porovnat tento mrak bodů s chybovou elipsou
běžného postupu lokace programem hypo3d.
Příklad ukazuje lokaci zemětřesení v již předem připraveném 3D rychlostním modelu a předem spočítaných polích časů šíření seismických vln pro všechny použité seismické stanice. Rychlostní model je 3D model podle Shippkus el al., 2018. Model vnikl postupem popsaným na webové stránce Rychlostní model JV svah ČM metodou tomografie povrchových vln Magnitudo M_L se počítá podle počátečního nastavení programu NLL podle vztahu Hutton, Boore 1987.
Popis parametrického souboru a naprogramovaného dávkového souboru tohoto příkladu je na zvláštní stránce Příklad 2 parametry
V 3D modelu jvsvahCMsch je ohnisko lokalizováno hloubce 16 km, tedy o něco menší než v předcházejícím příkladu (24 km).
Porovnat polohu ohniska stejného jevu valtice.20161009 získanou zavedeným postupem programem hypo3d v 1D modelu edu_grad.mod a stejného jevu lokalizovaného programem NLL v příkladu Příklad 1 a Příklad 2 můžeme na mapce na začátku stránky. NonLinLoc uvádí dvojí souřadnice lokalizovaného ohniska. První souřadnice (hvězdička na mapce) jsou produktem lokačního algoritmu a odpovídají extrému účelové funkce (nejmenší RMS nebo největší hustota pravděpodobnosti). Druhé souřadnice (kolečko na mapce) jsou produktem statistického výpočtu a středem chybového elipsoidu.
Pro výpočet magnituda M_L program NLL používá vztahovou formuli podle Hutton, Boore 1987 (IASPEI 1995 standard). V parametrickém souboru je možné změnit přednastavané koeficienty a počítat tak M_L i podle jiných vztahů Richterovy koncepce. Porovnáme-li vypočítané magnitudo, v prvním příkladu jsem spočítali (M_L = 0.6) stejnou hodnotu jako program hypo3d, ve druhém příkladu počítaném v počátečním nastavení je hodnota (M_L = 0.3) menší. (V žádném z obou příkladů nejsou splněny předpoklady, jako je odečet amplitudy posunutí na standardním W-A seismografu a vztahy byly odvozeny pro jiné regiony.)
Je zajímavé, že v obou příkladech program NLLoc přikládá malou váhu nasazení P fáze na nejbližší stanici A001A,
zřejmě z důvodu většího rezidua. Přitom nasazení P fáze na nejbližší stanici je pro lokaci podstatná informace,
která by neměla být potlačována.
Jaké váhy přiřadil program jednotlivým nasazením můžeme zjistit v souboru loc/valtice.20161009.000827.grid1.loc.hyp
.
Chování programu lze ovlivnit různým nastavením více parametrů. Dále můžeme zkoušet modifikovat nastavení parametrů programů NLL a objevovat jejich význam a účinky.
-
Hutton, L. K., Boore, D. M.: The M_L scale in Southern California. BSSA, December 1987, v. 77, p. 2074-2094
-
Lomax A.: NonLinLoc home page. http://alomax.free.fr/nlloc/
-
Scherbaum, F., Stoll, D.: Source parameters and scaling laws of the 1978 Swabian Jura (Southwest Germany) aftershocks. BSSA, 1983, v. 73, 1321-1343
-
Schippkus, S., Zigone, D., Bokelmann, G., the AlpArray Working Group: Ambient-noise tomography of the wider Vienna Basin region. Geophysical Journal International, ggy259, (https://doi.org/10.1093/gji/ggy259), 2018