This part of the manual contains illustrative examples of input files.
詳細な解析例については,各解析の詳細を参照してください。
複数の較正年代を報告する場合に必ず必要となるのが,確率密度分布関数およびその年代範囲のプロットです。
較正年代の複数プロットは,プロジェクトを用いて複数データの年代較正を行うことで表示させることができます。概要は,複数データの較正を始めるを参照してください。OxCalには,プロットを補足するためのコマンド(Axis(),Label(),Page())も用意しています。以下は,典型的な事例です。
Plot() { Label("Area 1"); Axis(-300, 300); R_Date("A",2023,20); R_Date("B",1961,20); R_Date("C",1999,20); R_Date("D",1966,20); Line( ); Label("Area 2"); R_Date("E",1954,20); R_Date("F",1936,20); R_Date("G",1948,20); R_Date("H",1925,20); Page( ); Label("Area 3"); Axis(-300, 300); R_Date("I",2044,20); R_Date("J",1912,20); R_Date("K",1730,20); R_Date("L",1820,20); };
[複数データの較正を始める]も参照してください。
R_Combine("Combination") { R_Date("A1",2023,20); R_Date("B1",1961,20); R_Date("C1",1999,20); R_Date("D1",1966,20); }; R_Combine("Single year",8) { R_Date("A2",2023,20); R_Date("B2",1961,20); R_Date("C2",1999,20); R_Date("D2",1966,20); };
この解析例では,放射性炭素濃度に対する追加すべき不確定要素の取り扱い方も見ることができます。成長期に単年で成長する物質を測定試料とした場合,較正曲線の構造上(10年毎測定により(Stuiver et al. 1998)),別途補正項(約8年)を見積もる必要があります。補正項の適用の仕方は,上例を参考にしてください。
未入力データのプロジェクトを実行することで,初期設定されている較正曲線を表示することができます。特定の較正曲線を表示する場合は,Curve()を使用することで複数の較正曲線を同時に表示することが可能です。プロット表示範囲は,Axis()を使用して設定してください。
Options() { Resolution=0.2; Curve="Bomb04NH1.14c"; RawData=TRUE; }; Plot() { Curve("Bomb04NH2","Bomb04NH2.14c"); Curve("Bomb04NH3","Bomb04NH3.14c"); Curve("Bomb04SH","Bomb04SH.14c"); Curve("Kueppers04","Kueppers04.14c"); Axis(1950, 2000); };
ここで挙げたコードを実行すると,bombシリーズの較正曲線を全て表示します。前半部のコードにより,0.2年の解像度を設定し,プロットユーティリティへ較正曲線のデータポイントを送っています。それぞれのデータポイントを表示したり(どこが補間値か内挿値かを判断できます),F14Cでプロットすることも可能です。
See also [放射性炭素年代の較正 | 較正曲線]も参照してください。
イベントグループの存続期間を見積もるためには,測定データの全てがひとつの層に属することを定義する必要があります。定義する層は,[Tools > Models > Phases] で簡単に作成することが可能です。定義した層の中に放射性炭素年代を入力し,Span()を使用することで,年代測定されたイベントが示す層の存続期間を見積もることができます。
Sequence() { Boundary("Start 1"); Phase("1") { R_Date("", 3100, 20); R_Date("", 3000, 20); R_Date("", 3040, 20); R_Date("", 3080, 20); R_Date("", 3010, 20); R_Date("", 3030, 20); Span("Span of dates"); Interval("Duration"); }; Boundary("End 1"); };
例で示したようにInterval()を使用することで,定義した層の開始年代から終焉年代までの期間を見積もることも可能です。この期間では,実際に測定した以外の年代(境界年代)も含んでいます。
考古学における応用研究の多くでは,複数の層を扱うことが必要になります。このようなモデルでは,通常,[Tools > Models > Phases]ツールを多用することになります。以下には,同一データを二通りの異なった方法で解析するためのサンプルコードを挙げてみました。事例で使用しているデータは,青銅製の斧に付く柄部の放射性炭素年代です(データ元は,Needham et al. 1998)。
最初のモデル(左側)では,遺物の各型式は完全に独立していると仮定し(ただし,各型式は時期的に重なり合っている),遺物の測定データから各型式の利用開始年代と終焉年代を見積もることができます。二つ目は,各型式の順序が考古学的な情報から推測されている場合のモデルです(ただし,各型式は連続的に変遷)。この形式のモデルから,ある形式からある形式への転換期にあたる年代を見積もることができます。
Phase("Bronze Age") { Sequence() { Axis( -3000, -400); Boundary( "Start of Acton & Taunton"); Phase( ) { R_Date( "OxA-5948", 3225, 65); R_Date( "OxA-4651", 3220, 80); R_Date( "OxA-5949", 3110, 50); R_Date( "OxA-6177", 3055, 50); R_Date( "OxA-5196", 3035, 40); Interval( "Duration of Acton & Taunton"); }; Boundary( "End of Acton & Taunton"); }; Sequence() { Boundary( "Start of Penard"); Phase( ) { R_Date( "OxA-5187", 3045, 55); R_Date( "OxA-1526", 3030, 100); R_Date( "OxA-5953", 3015, 45); R_Date( "OxA-5951", 2980, 45); R_Date( "OxA-4504", 2965, 65); R_Date( "OxA-5952", 2965, 45); R_Date( "OxA-5959", 2965, 45); R_Date( "OxA-5183", 2930, 40); R_Date( "OxA-4653", 2910, 55); R_Date( "OxA-5950", 2910, 45); R_Date( "OxA-5954", 3025, 55); R_Date( "HAR-2940", 3020, 70); Interval( "Duration of Penard"); }; Boundary( "End of Penard"); Page( ); }; Sequence() { Boundary( "Start of Wilburton"); Axis( -3000, -400); Phase( ) { R_Date( "OxA-4656", 3005, 75); R_Date( "OxA-4503", 2930, 55); R_Date( "OxA-4502", 2925, 50); R_Date( "OxA-5036", 2920, 50); R_Date( "OxA-5197", 2910, 50); R_Date( "OxA-5955", 2900, 45); R_Date( "OxA-5035", 2900, 45); R_Date( "OxA-5034", 2890, 45); R_Date( "OxA-5956", 2850, 50); R_Date( "OxA-5198", 2820, 70); Interval( "Duration of Wilburton"); }; Boundary( "End of Wilburton"); Page( ); }; Sequence() { Boundary( "Start of Ewart Park"); Axis( -3000, -400); Phase( ) { R_Date( "OxA-5957", 2810, 45); R_Date( "OxA-4716", 2780, 50); R_Date( "OxA-4654", 2765, 45); R_Date( "OxA-5976", 2740, 45); R_Date( "OxA-4652", 2720, 45); R_Date( "BM-798", 2704, 50); R_Date( "OxA-5962", 2685, 60); R_Date( "OxA-6176", 2655, 50); R_Date( "OxA-5977", 2620, 45); Interval( "Duration of Ewart Park"); }; Boundary( "End of Ewart Park"); Axis( -3000, -400); }; }; |
Sequence("Bronze Age" ) { Axis( -3000, -400); Boundary( "Start of Acton & Taunton"); Phase( ) { R_Date( "OxA-5948", 3225, 65); R_Date( "OxA-4651", 3220, 80); R_Date( "OxA-5949", 3110, 50); R_Date( "OxA-6177", 3055, 50); R_Date( "OxA-5196", 3035, 40); Interval( "Duration of Acton & Taunton"); }; Boundary( "Acton & Taunton - Penard"); Phase( ) { R_Date( "OxA-5187", 3045, 55); R_Date( "OxA-1526", 3030, 100); R_Date( "OxA-5953", 3015, 45); R_Date( "OxA-5951", 2980, 45); R_Date( "OxA-4504", 2965, 65); R_Date( "OxA-5952", 2965, 45); R_Date( "OxA-5959", 2965, 45); R_Date( "OxA-5183", 2930, 40); R_Date( "OxA-4653", 2910, 55); R_Date( "OxA-5950", 2910, 45); R_Date( "OxA-5954", 3025, 55); R_Date( "HAR-2940", 3020, 70); Interval( "Duration of Penard"); }; Boundary( "Penard - Wilburton"); Page( ); Axis( -3000, -400); Phase( ) { R_Date( "OxA-4656", 3005, 75); R_Date( "OxA-4503", 2930, 55); R_Date( "OxA-4502", 2925, 50); R_Date( "OxA-5036", 2920, 50); R_Date( "OxA-5197", 2910, 50); R_Date( "OxA-5955", 2900, 45); R_Date( "OxA-5035", 2900, 45); R_Date( "OxA-5034", 2890, 45); R_Date( "OxA-5956", 2850, 50); R_Date( "OxA-5198", 2820, 70); Interval( "Duration of Wilburton"); }; Boundary( "Wilburton - Intermediate"); Phase( ) { R_Date( "OxA-5186", 2840, 40); R_Date( "OxA-5184", 2830, 65); R_Date( "OxA-5185", 2770, 50); Interval( "Duration of Intermediate"); }; Boundary( "Intermediate - Ewart Park"); Page( ); Axis( -3000, -400); Phase( ) { R_Date( "OxA-5957", 2810, 45); R_Date( "OxA-4716", 2780, 50); R_Date( "OxA-4654", 2765, 45); R_Date( "OxA-5976", 2740, 45); R_Date( "OxA-4652", 2720, 45); R_Date( "BM-798", 2704, 50); R_Date( "OxA-5962", 2685, 60); R_Date( "OxA-6176", 2655, 50); R_Date( "OxA-5977", 2620, 45); Interval( "Duration of Ewart Park"); }; Boundary( "End of Ewart Park"); Axis( -3000, -400); }; |
ここでは,ある層の終焉年代を見積もるための実例を二つ紹介します。解析例で使用するデータは,環濠から出土した骨角器の放射性炭素データです(Cleal et al. 1995)。最初のモデルでは,測定データがその骨角器の製作および使用期間に帰属でき,該当期間に対して代表的な値を持つものと仮定しています。
Sequence() { Boundary( "Start of antler collection"); Phase( "Ditch antlers") { R_Date( "UB-3788", 4381, 18); R_Date( "UB-3787", 4375, 19); R_Date( "UB-3789", 4330, 18); R_Date( "UB-3790", 4367, 18); R_Date( "UB-3792", 4365, 18); R_Date( "UB-3793", 4393, 18); R_Date( "UB-3794", 4432, 22); R_Date( "BM-1583", 4410, 60); R_Date( "BM-1617", 4390, 60); Interval( "Period of antler collection"); }; Boundary( "End of antler collection"); };
骨角器の製作時期における終焉年代は環濠成立期の終焉年代に近い値をとる可能性もありますが,成立期の最終段階に近い値をとると考える方がより現実的です。実際,測定遺物の中には幾分古い年代を示す試料が含まれていることもその根拠となっています。この様な事例の場合には,指数関数分布を用いたモデルを使用する方がより考古学的な背景に合った解析結果を求めることが出来ます。以下のモデルでは,環濠成立期の終焉期に向かって出土試料出現率が指数関数的に上昇するという仮定を行っています。
Sequence() { Tau_Boundary( "T"); Phase( "ditch antlers") { R_Date( "UB-3788", 4381, 18); R_Date( "UB-3787", 4375, 19); R_Date( "UB-3789", 4330, 18); R_Date( "UB-3790", 4367, 18); R_Date( "UB-3792", 4365, 18); R_Date( "UB-3793", 4393, 18); R_Date( "UB-3794", 4432, 22); R_Date( "BM-1583", 4410, 60); R_Date( "BM-1617", 4390, 60); Interval( "period ditch antlers"); }; Boundary( "E"); }; Tau=E-T; Tau&=U(0,50);
この例の末部にある補足コードで,指数関数に関連させた時間定数を算出し(Tau=E-T;より),その値も年代解析の制約(最大50年まで許容)として利用しています。以上の操作は,このような仮定を置く理由がある場合にだけ使用してください。
年輪を持った樹木試料の放射性炭素年代測定では,較正曲線のウィグルを応用して高精度の年代推定が行えます(Bronk Ramsey et al. 2001を参照)。[Tools > Models > Dendro wiggle match]ツールを使用して,14Cウィグルマッチングのためのモデルを簡単に作成することができます。
典型的な14Cウィグルマッチングの場合,年輪試料を10年毎に測定します。測定試料に樹皮が確認される場合,10年輪毎に分割した最終ブロックの年代から約5年後が樹木試料の伐採年代と考えることができます。
Options() { Resolution=1; }; Plot() { D_Sequence( "Wiggle-match example") { R_Date( "P-14095", 3413, 22); Gap( 10); R_Date( "P-14096", 3430, 23); Gap( 10); R_Date( "P-14097", 3432, 22); Gap( 10); R_Date( "P-14098", 3431, 22); Gap( 10); R_Date( "P-14099", 3379, 22); Gap( 10); R_Date( "P-14100", 3371, 23); Gap( 10); R_Date( "P-14101", 3371, 22); Gap( 5); Date("Felling date"); }; };
OxCalは,辺材年輪数を推定するプログラムを実装しています。辺材年輪数の推定は,試料年輪に芯材/辺材の境界が明確に存在していることが条件となります。また,この解析では実際の辺材測定データをもとにしたモデルを使用する必要があり,OxCalではグレートブリテン島本土のデータを参照しており,英国ウェールズから採取した後期ローマ時代に属する樫材に対して特に推奨されているデータです(Miles 2005)。他の地域にて辺材推定をおこなう場合は,辺材推定を参照してください。
以下の例では,いくつかの木材試料に対して辺材推定を行った結果がどのようにえられるか確認することができます。ここでは,ウェストミンスター寺院エルサレム聖堂地下室の内張材からより採取した測定試料を用いてより高正確度な年代を取得することを目的としています。ただし,解像度の変更(初期設定の解像度5では荒すぎるため1へ),モデルを定義しているコマンドライン,そして,複数の年代結果を組み合わせるために使用しているCombine()に注意してください。
Options() { Resolution=1; }; Plot() { Sapwood_Model("Mainland Britain", 2.77292, 0.100001, -0.275445, 0.314286377); Combine() { Sapwood("wa21", 1329, 243, 0, 1.06); Sapwood("wa22", 1354, 58, 6, 2.74); Sapwood("wa23", 1342, 55, 0, 2.55); Sapwood("wa26", 1328, 62, 0, 1.71); Sapwood("wa28a", 1353, 86, 0, 1.48); Sapwood("wa24a", 1337, 76, 0, 1.61); }; };
この例では,伐採後の保存による問題から良好な合意値は得られません。この例のように樹木試料は全て同じ伐採年代を保持していとは限りません。木材の保存期間が明らかな場合,以下のように追加項を用いて伐採後から建築までに至る期間を加えたモデルでデータを解析することが可能です。
Sapwood_Model("Mainland Britain", 2.77292, 0.100001, -0.275445,0.314286377); Combine() { Sapwood("wa21", 1329, 243, 0, 1.06) +Prior("Stockpile"); Sapwood("wa22", 1354, 58, 6, 2.74) +Prior("Stockpile"); Sapwood("wa23", 1342, 55, 0, 2.55) +Prior("Stockpile"); Sapwood("wa26", 1328, 62, 0, 1.71) +Prior("Stockpile"); Sapwood("wa28a", 1353, 86, 0, 1.48) +Prior("Stockpile"); Sapwood("wa24a", 1337, 76, 0, 1.61) +Prior("Stockpile"); };
このサンプルコードで得られる年代は,測定樹木試料の伐採年代より建築年代に近い値を表しています。Stockpile.priorは,様々な保存期間に対して確率を与えるために必要なファイルです(ファイルフォーマットを参照してください)。
[辺材推定]も参照してください。
堆積モデルは,[Tools > Models > Deposition models]を使用することで簡単に利用することができます。ここでは,OxCalに提供されている堆積モデルをいくつか紹介してゆきます。なお,全ての堆積モデルにおける放射性炭素年代は,それぞれ特定の深さ情報を持っていると仮定しています。最初のモデルでは,深さ情報を堆積モデルに組み込むだけのもので,Sequence()を用いて堆積物中の測定試料が各試料採取地点順に堆積したと定義しています。深さは,メートル単位で入力しており(どのような単位でも使用可能です),各試料の年代に対してそれぞれ定義しています。
Sequence("Simple sequence") { Boundary("Bottom"){}; R_Date("",1010,25){ z=0.65; }; R_Date("",887,25) { z=0.61; }; R_Date("",979,25) { z=0.57; }; R_Date("",848,25) { z=0.53; }; R_Date("",809,25) { z=0.49; }; R_Date("",743,25) { z=0.44; }; R_Date("",595,25) { z=0.38; }; R_Date("",613,25) { z=0.32; }; R_Date("",485,25) { z=0.26; }; R_Date("",395,25) { z=0.20; }; Boundary("Top") {}; };
このサンプルコードを実行すれば,深さに対する較正年代をプロットすることが可能です。ただし,このモデルは,較正解析に深さ情報を用いていません。
次のモデルは,堆積速度が,深さ0.65mから0.47mと0.47mから0.2mで二分される場合を仮定しています。ただし,堆積速度はそれぞれ一定とします。このようなモデルは,U_Sequence()で定義します。
U_Sequence("Linear deposition") { Boundary("Bottom"){}; R_Date("",1010,25){ z=0.65; }; R_Date("",887,25) { z=0.61; }; R_Date("",979,25) { z=0.57; }; R_Date("",848,25) { z=0.53; }; R_Date("",809,25) { z=0.49; }; Boundary("Change"){ z=0.47; }; R_Date("",743,25) { z=0.44; }; R_Date("",595,25) { z=0.38; }; R_Date("",613,25) { z=0.32; }; R_Date("",485,25) { z=0.26; }; R_Date("",395,25) { z=0.20; }; Boundary("Top") {}; };
このモデルでは,各堆積速度はそれぞれ変化しないと仮定しています。P_Sequence()を使用することで,堆積速度変化をする堆積物に対して堆積モデルを作成することができます。以下のサンプルコードでは,堆積が1mm単位のイベント(1mあたり1000イベント,P_Sequenceのk値)として定義されています。
P_Sequence("Random variation",1000) { Boundary("Bottom"){}; R_Date("",1010,25){ z=0.65; }; R_Date("",887,25) { z=0.61; }; R_Date("",979,25) { z=0.57; }; R_Date("",848,25) { z=0.53; }; R_Date("",809,25) { z=0.49; }; Boundary("Change"){ z=0.47; }; R_Date("",743,25) { z=0.44; }; R_Date("",595,25) { z=0.38; }; R_Date("",613,25) { z=0.32; }; R_Date("",485,25) { z=0.26; }; R_Date("",395,25) { z=0.20; }; Boundary("Top") {}; };
ここで,k値を500に設定すると,堆積速度の誤差はk値を1000に設定した場合よりも大きくなります。また粒径の細かい堆積物を扱っている場合では,粗い堆積物よりもk値を上げることができます。
最後のサンプルコードでは,上例のように基本的な堆積速度が二つに区分できず,指数関数的に徐々に増加するような場合を想定した堆積モデルです。P_Sequenceモデルを使用し,ランダムな堆積速度の変化を呈するモデルについては現在検討中です。
P_Sequence("Exponential rise",1000) { Tau_Boundary(""){}; R_Date("",1010,25){ z=0.65; }; R_Date("",887,25) { z=0.61; }; R_Date("",979,25) { z=0.57; }; R_Date("",848,25) { z=0.53; }; R_Date("",809,25) { z=0.49; }; R_Date("",743,25) { z=0.44; }; R_Date("",595,25) { z=0.38; }; R_Date("",613,25) { z=0.32; }; R_Date("",485,25) { z=0.26; }; R_Date("",395,25) { z=0.20; }; Boundary("Top") {}; };