Commit afd613d6 authored by Anders Damsgaard's avatar Anders Damsgaard

change usage of sample depths to one field for all isotopes

parent f2bb9d23
......@@ -81,7 +81,7 @@ while 1
[sample_id, name, email, lat, long, ...
be_conc, al_conc, c_conc, ne_conc, ...
be_uncer, al_uncer, c_uncer, ne_uncer, ...
be_zobs, al_zobs, c_zobs, ne_zobs, ...
zobs, ...
be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ...
be_prod_muons, al_prod_muons, c_prod_muons, ne_prod_muons, ...
rock_density, ...
......@@ -98,7 +98,7 @@ while 1
nwalkers, outfolder, ...
be_conc, al_conc, c_conc, ne_conc, ...
be_uncer, al_uncer, c_uncer, ne_uncer, ...
be_zobs, al_zobs, c_zobs, ne_zobs, ...
zobs, ...
be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ...
be_prod_muons, al_prod_muons, c_prod_muons, ne_prod_muons, ...
rock_density, ...
......
......@@ -2,7 +2,7 @@ function [sample_id, name, email, ...
lat, long, ...
be_conc, al_conc, c_conc, ne_conc, ...
be_uncer, al_uncer, c_uncer, ne_uncer, ...
be_zobs, al_zobs, c_zobs, ne_zobs, ...
zobs, ...
be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ...
be_prod_muon, al_prod_muon, c_prod_muon, ne_prod_muon, ...
rock_density, ...
......@@ -21,11 +21,11 @@ function [sample_id, name, email, ...
% by the col vector) are converted to numbers.
%IMPORTFILE Import numeric data from a text file as column vectors.
% [SAMPLEID,NAME,EMAIL,LAT,LONG,BE_CONC,AL_CONC,C_CONC,NE_CONC,BE_UNCER,AL_UNCER,C_UNCER,NE_UNCER,BE_ZOBS,AL_ZOBS,C_ZOBS,NE_ZOBS,BE_PROD,AL_PROD,C_PROD,NE_PROD,ROCK_DENSITY,EPSILON_GLA_MIN,EPSILON_GLA_MAX,EPSILON_INT_MIN,EPSILON_INT_MAX,T_DEGLA,T_DEGLA_UNCER,RECORD,RECORD_THRESHOLD_MIN,RECORD_THRESHOLD_MAX]
% [SAMPLEID,NAME,EMAIL,LAT,LONG,BE_CONC,AL_CONC,C_CONC,NE_CONC,BE_UNCER,AL_UNCER,C_UNCER,NE_UNCER,ZOBS,BE_PROD,AL_PROD,C_PROD,NE_PROD,ROCK_DENSITY,EPSILON_GLA_MIN,EPSILON_GLA_MAX,EPSILON_INT_MIN,EPSILON_INT_MAX,T_DEGLA,T_DEGLA_UNCER,RECORD,RECORD_THRESHOLD_MIN,RECORD_THRESHOLD_MAX]
% = IMPORTFILE(FILENAME) Reads data from text file FILENAME for the
% default selection.
%
% [SAMPLEID,NAME,EMAIL,LAT,LONG,BE_CONC,AL_CONC,C_CONC,NE_CONC,BE_UNCER,AL_UNCER,C_UNCER,NE_UNCER,BE_ZOBS,AL_ZOBS,C_ZOBS,NE_ZOBS,BE_PROD,AL_PROD,C_PROD,NE_PROD,ROCK_DENSITY,EPSILON_GLA_MIN,EPSILON_GLA_MAX,EPSILON_INT_MIN,EPSILON_INT_MAX,T_DEGLA,T_DEGLA_UNCER,RECORD,RECORD_THRESHOLD_MIN,RECORD_THRESHOLD_MAX]
% [SAMPLEID,NAME,EMAIL,LAT,LONG,BE_CONC,AL_CONC,C_CONC,NE_CONC,BE_UNCER,AL_UNCER,C_UNCER,NE_UNCER,ZOBS,BE_PROD,AL_PROD,C_PROD,NE_PROD,ROCK_DENSITY,EPSILON_GLA_MIN,EPSILON_GLA_MAX,EPSILON_INT_MIN,EPSILON_INT_MAX,T_DEGLA,T_DEGLA_UNCER,RECORD,RECORD_THRESHOLD_MIN,RECORD_THRESHOLD_MAX]
% = IMPORTFILE(FILENAME, STARTROW, ENDROW) Reads data from rows STARTROW
% through ENDROW of text file FILENAME.
%
......@@ -47,7 +47,7 @@ end
%% Read columns of data as strings:
% For more information, see the TEXTSCAN documentation.
%formatSpec = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%[^\n\r]';
formatSpec = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%[^\n\r]';
formatSpec = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%[^\n\r]';
%% Open the text file.
fileID = fopen(filename,'r');
......@@ -76,9 +76,8 @@ for col=1:length(dataArray)-1
end
numericData = NaN(size(dataArray{1},1),size(dataArray,2));
% the columns in col are numeric
%for col=[6,7,8,9,10,11,12,13,18,19,20,21,22,23,24,26,27]
for col=[6:32, 34:36]
% the columns in col are numeric]
for col=[6:29, 31:33]
% Converts strings in the input cell array to numbers. Replaced non-numeric
% strings with NaN.
rawData = dataArray{col};
......@@ -115,10 +114,10 @@ end
% rows with numbers, check that range matches values in for loop l. 68 and
% the list below
rawNumericColumns = raw(:, [6:32, 34:36]);
rawNumericColumns = raw(:, [6:29, 31:33]);
% rows with strings
rawCellColumns = raw(:, [1:5, 33]);
rawCellColumns = raw(:, [1:5, 30]);
%% Allocate imported array to column variable names
......@@ -137,29 +136,26 @@ be_uncer = cell2mat(rawNumericColumns(:, 5)); % 10
al_uncer = cell2mat(rawNumericColumns(:, 6)); % 11
c_uncer = cell2mat(rawNumericColumns(:, 7)); % 12
ne_uncer = cell2mat(rawNumericColumns(:, 8)); % 13
be_zobs = cell2mat(rawNumericColumns(:, 9)); % 14
al_zobs = cell2mat(rawNumericColumns(:, 10)); % 15
c_zobs = cell2mat(rawNumericColumns(:, 11)); % 16
ne_zobs = cell2mat(rawNumericColumns(:, 12)); % 17
be_prod_spall = cell2mat(rawNumericColumns(:, 13)); % 18
al_prod_spall = cell2mat(rawNumericColumns(:, 14)); % 19
c_prod_spall = cell2mat(rawNumericColumns(:, 15)); % 20
ne_prod_spall = cell2mat(rawNumericColumns(:, 16)); % 21
be_prod_muon = cell2mat(rawNumericColumns(:, 17)); % 22
al_prod_muon = cell2mat(rawNumericColumns(:, 18)); % 23
c_prod_muon = cell2mat(rawNumericColumns(:, 19)); % 24
ne_prod_muon = cell2mat(rawNumericColumns(:, 20)); % 25
rock_density = cell2mat(rawNumericColumns(:, 21)); % 26
epsilon_gla_min = cell2mat(rawNumericColumns(:, 22)); % 27
epsilon_gla_max = cell2mat(rawNumericColumns(:, 23)); % 28
epsilon_int_min = cell2mat(rawNumericColumns(:, 24)); % 29
epsilon_int_max = cell2mat(rawNumericColumns(:, 25)); % 30
t_degla_min = cell2mat(rawNumericColumns(:, 26)); % 31
t_degla_max = cell2mat(rawNumericColumns(:, 27)); % 32
record = rawCellColumns(:, 6); % 33
record_threshold_min = cell2mat(rawNumericColumns(:, 28)); % 34
record_threshold_max = cell2mat(rawNumericColumns(:, 29)); % 35
nwalkers = cell2mat(rawNumericColumns(:, 30)); % 36
zobs = cell2mat(rawNumericColumns(:, 9)); % 14
be_prod_spall = cell2mat(rawNumericColumns(:, 13)); % 15
al_prod_spall = cell2mat(rawNumericColumns(:, 14)); % 16
c_prod_spall = cell2mat(rawNumericColumns(:, 15)); % 17
ne_prod_spall = cell2mat(rawNumericColumns(:, 16)); % 18
be_prod_muon = cell2mat(rawNumericColumns(:, 17)); % 19
al_prod_muon = cell2mat(rawNumericColumns(:, 18)); % 20
c_prod_muon = cell2mat(rawNumericColumns(:, 19)); % 21
ne_prod_muon = cell2mat(rawNumericColumns(:, 20)); % 22
rock_density = cell2mat(rawNumericColumns(:, 21)); % 23
epsilon_gla_min = cell2mat(rawNumericColumns(:, 22)); % 24
epsilon_gla_max = cell2mat(rawNumericColumns(:, 23)); % 25
epsilon_int_min = cell2mat(rawNumericColumns(:, 24)); % 26
epsilon_int_max = cell2mat(rawNumericColumns(:, 25)); % 27
t_degla_min = cell2mat(rawNumericColumns(:, 26)); % 28
t_degla_max = cell2mat(rawNumericColumns(:, 27)); % 29
record = rawCellColumns(:, 6); % 30
record_threshold_min = cell2mat(rawNumericColumns(:, 28)); % 31
record_threshold_max = cell2mat(rawNumericColumns(:, 29)); % 32
nwalkers = cell2mat(rawNumericColumns(:, 30)); % 33
%% Change units
......
......@@ -2,7 +2,7 @@ function [Ss, save_file] = mcmc_inversion(matlab_scripts_folder, debug, ...
n_walkers, outfolder, ...
be_conc, al_conc, c_conc, ne_conc, ...
be_uncer, al_uncer, c_uncer, ne_uncer, ...
be_zobs, al_zobs, c_zobs, ne_zobs, ...
zobs, ...
be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ...
be_prod_muons, al_prod_muons, c_prod_muons, ne_prod_muons, ...
rock_density, ...
......@@ -75,7 +75,7 @@ switch fs.g_case
% one depth per nuclide or not?
%fs.zobs = [0]; %Depths where nucleides are observed
fs.zobs = [be_zobs, al_zobs, c_zobs, ne_zobs];
fs.zobs = zobs;
% fs.zobs = [0,0.3,1,3,10]; %Depths where nucleides are observed
if debug
......
......@@ -114,33 +114,16 @@
</div>
<div class="row">
<b>TCN sample depth [m]</b><br>
For each TCN concentration please specify
the sample depth beneath terrain. Several values may be
entered using comma separation.<br>
<div class="input-field col s3">
<input id="be_zobs" name="be_zobs" type="text"
class="validate">
<label for="be_zobs"
class="active"><sup>10</sup>Be</label>
</div>
<div class="input-field col s3">
<input id="al_zobs" name="al_zobs" type="text"
class="validate">
<label for="al_zobs"
class="active"><sup>26</sup>Al</label>
</div>
<div class="input-field col s3">
<input id="c_zobs" name="c_zobs" type="text"
class="validate">
<label for="c_zobs"
class="active"><sup>14</sup>C</label>
</div>
<div class="input-field col s3">
<input id="ne_zobs" name="ne_zobs" type="text"
<b>TCN sample depth(s) [m]</b><br>
Please specify the depth beneath terrain surface where the
samples are collected. It is assumed that the same
TCN concentrations have been determined at all specified
depths. Enter multiple depths using comma separation.<br>
<div class="input-field col s12">
<input id="zobs" name="zobs" type="text"
class="validate">
<label for="ne_zobs"
class="active"><sup>21</sup>Ne</label>
<label for="zobs"
class="active">Sample depth(s)</label>
</div>
</div>
......@@ -149,12 +132,11 @@
<b>Concentrations of terrestrial cosmogenic nuclides (TCNs)
[atoms g<sup>-1</sup>]</b>&nbsp;<br>
For each sample depth specified above, please specify the
nuclide concentration.
nuclide concentration(s).
Fill in <b>at least one</b> field, leave unknown values
blank. Scientific notation (e.g. 5.67e5) is recommended. If
several depths per isotope are entered above, enter the
corresponding isotope concentrations with comma
separation.<br>
several depths are entered above, enter the corresponding
isotope concentrations using comma separation.<br>
<div class="input-field col s3">
<input id="be_conc" name="be_conc" type="text"
class="validate">
......
......@@ -78,6 +78,10 @@ if (!isset($_POST['nwalkers']) || $_POST['nwalkers'] == ''){
array_push($missing_fields, 'Number of MCMC walkers');
}
if (!isset($_POST['zobs']) || $_POST['zobs'] == ''){
array_push($missing_fields, 'One or more sample depths');
}
// Check TCN concentrations, at least one value is needed
if ((!isset($_POST['be_conc']) || $_POST['be_conc'] == '') &&
(!isset($_POST['al_conc']) || $_POST['al_conc'] == '') &&
......@@ -91,7 +95,6 @@ if ((!isset($_POST['be_conc']) || $_POST['be_conc'] == '') &&
if ((isset($_POST['be_conc']) && $_POST['be_conc'] != '') &&
(!isset($_POST['be_prod_muons']) || $_POST['be_prod_muons'] == '' ||
!isset($_POST['be_prod_spall']) || $_POST['be_prod_spall'] == '' ||
!isset($_POST['be_zobs']) || $_POST['be_zobs'] == '' ||
!isset($_POST['be_uncer']) || $_POST['be_uncer'] == '')) {
array_push($missing_fields,
'Production rate, sample depth, and/or uncertainty for ' .
......@@ -100,7 +103,6 @@ if ((isset($_POST['be_conc']) && $_POST['be_conc'] != '') &&
if ((isset($_POST['al_conc']) && $_POST['al_conc'] != '') &&
(!isset($_POST['al_prod_muons']) || $_POST['al_prod_muons'] == '' ||
!isset($_POST['al_prod_spall']) || $_POST['al_prod_spall'] == '' ||
!isset($_POST['al_zobs']) || $_POST['al_zobs'] == '' ||
!isset($_POST['al_uncer']) || $_POST['al_uncer'] == '')) {
array_push($missing_fields,
'Production rate, sample depth, and/or uncertainty for ' .
......@@ -109,7 +111,6 @@ if ((isset($_POST['al_conc']) && $_POST['al_conc'] != '') &&
if ((isset($_POST['c_conc']) && $_POST['c_conc'] != '') &&
(!isset($_POST['c_prod_muons']) || $_POST['c_prod_muons'] == '' ||
!isset($_POST['c_prod_spall']) || $_POST['c_prod_spall'] == '' ||
!isset($_POST['c_zobs']) || $_POST['c_zobs'] == '' ||
!isset($_POST['c_uncer']) || $_POST['c_uncer'] == '')) {
array_push($missing_fields,
'Production rate, sample depth, and/or uncertainty for ' .
......@@ -118,7 +119,6 @@ if ((isset($_POST['c_conc']) && $_POST['c_conc'] != '') &&
if ((isset($_POST['ne_conc']) && $_POST['ne_conc'] != '') &&
(!isset($_POST['ne_prod_muons']) || $_POST['ne_prod_muons'] == '' ||
!isset($_POST['ne_prod_spall']) || $_POST['ne_prod_spall'] == '' ||
!isset($_POST['ne_zobs']) || $_POST['ne_zobs'] == '' ||
!isset($_POST['ne_uncer']) || $_POST['ne_uncer'] == '')) {
array_push($missing_fields,
'Production rate, sample depth, and/or uncertainty for ' .
......@@ -165,21 +165,6 @@ if (count($missing_fields) > 0) {
die();
}
// The matlab scripts need all depths, even for unused isotopes. Use the value
// 0.0 if the depth isn't set
if (!isset($_POST['be_zobs']) || $_POST['be_zobs'] == '') {
$_POST['be_zobs'] = 0.0;
}
if (!isset($_POST['al_zobs']) || $_POST['al_zobs'] == '') {
$_POST['al_zobs'] = 0.0;
}
if (!isset($_POST['c_zobs']) || $_POST['c_zobs'] == '') {
$_POST['c_zobs'] = 0.0;
}
if (!isset($_POST['ne_zobs']) || $_POST['ne_zobs'] == '') {
$_POST['ne_zobs'] = 0.0;
}
// If this is reached, input is ok and it is time to write the file for matlab
......@@ -200,10 +185,7 @@ $fieldnames = array(
'al_uncer',
'c_uncer',
'ne_uncer',
'be_zobs',
'al_zobs',
'c_zobs',
'ne_zobs',
'zobs',
'be_prod_spall',
'al_prod_spall',
'c_prod_spall',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment