2D Posterior analysis of Skytem inference

All plotting in GeoBIPy can be carried out using the 3D inference class

  • skytem glacial, Best model, 5%, 50%, 95%, P(# of Layers), P(Interface)
  • skytem saline_clay, Best model, 5%, 50%, 95%, P(# of Layers), P(Interface)
  • skytem resistive_dolomites, Best model, 5%, 50%, 95%, P(# of Layers), P(Interface)
  • skytem resistive_basement, Best model, 5%, 50%, 95%, P(# of Layers), P(Interface)
  • skytem coastal_salt_water, Best model, 5%, 50%, 95%, P(# of Layers), P(Interface)
  • skytem ice_over_salt_water, Best model, 5%, 50%, 95%, P(# of Layers), P(Interface)
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
Model:
mesh:
|   RectilinearMesh2D:
|   Shape: : (79, 132)
|   x
|   RectilinearMesh1D
|   Number of Cells:
|   |   79
|   Cell Centres:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x17f00d0d0']
|   |   Shape:  (79,)
|   |   Values: [ 0.  1.  2. ... 76. 77. 78.]
|   |   Min:    0.0
|   |   Max:    78.0
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x17f00ebd0']
|   |   Shape:  (80,)
|   |   Values: [-0.5  0.5  1.5 ... 76.5 77.5 78.5]
|   |   Min:    -0.5
|   |   Max:    78.5
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:
|   |   Address:['0x182cba8d0']
|   |   Shape:  (1,)
|   |   Values: [0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
|   y
|   RectilinearMesh1D
|   Number of Cells:
|   |   132
|   Cell Centres:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x17f00fa50']
|   |   Shape:  (132,)
|   |   Values: [  -3.1875   -7.7625  -12.3375 ... -593.3625 -597.9375 -602.5125]
|   |   Min:    -602.5125
|   |   Max:    -3.1875
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x17f00e9d0']
|   |   Shape:  (133,)
|   |   Values: [  -0.9     -5.475  -10.05  ... -595.65  -600.225 -604.8  ]
|   |   Min:    -604.8
|   |   Max:    -0.9
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:   Elevation (m)
|   |   Address:['0x17ec00950']
|   |   Shape:  (79,)
|   |   Values: [0. 0. 0. ... 0. 0. 0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
values:
|   StatArray
|   Name:   Mean Conductivity ($\frac{S}{m}$)
|   Address:['0x17f00d650']
|   Shape:  (79, 132)
|   Values: [[0.01120778 0.01120778 0.01089737 ... 0.01842322 0.01842322 0.01842322]
|    [0.01004315 0.01004315 0.01001518 ... 0.01627435 0.01627435 0.01627435]
|    [0.0098209  0.0098209  0.00983342 ... 0.01667789 0.01667789 0.01667789]
|    ...
|    [0.06755182 0.06755182 0.11932536 ... 0.0915802  0.0915802  0.0915802 ]
|    [0.08104576 0.08104576 0.09688295 ... 0.09217019 0.09217019 0.09217019]
|    [0.09121028 0.09121028 0.09943253 ... 0.11213815 0.11213815 0.11213815]]
|   Min:    0.007485002271267226
|   Max:    0.21717666705189165
|   has_posterior: False


self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
Model:
mesh:
|   RectilinearMesh2D:
|   Shape: : (79, 132)
|   x
|   RectilinearMesh1D
|   Number of Cells:
|   |   79
|   Cell Centres:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x182cb9c50']
|   |   Shape:  (79,)
|   |   Values: [ 0.  1.  2. ... 76. 77. 78.]
|   |   Min:    0.0
|   |   Max:    78.0
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x17f114d50']
|   |   Shape:  (80,)
|   |   Values: [-0.5  0.5  1.5 ... 76.5 77.5 78.5]
|   |   Min:    -0.5
|   |   Max:    78.5
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:
|   |   Address:['0x182c2d4d0']
|   |   Shape:  (1,)
|   |   Values: [0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
|   y
|   RectilinearMesh1D
|   Number of Cells:
|   |   132
|   Cell Centres:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x17f115b50']
|   |   Shape:  (132,)
|   |   Values: [  -3.1875   -7.7625  -12.3375 ... -593.3625 -597.9375 -602.5125]
|   |   Min:    -602.5125
|   |   Max:    -3.1875
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x17ec01c50']
|   |   Shape:  (133,)
|   |   Values: [  -0.9     -5.475  -10.05  ... -595.65  -600.225 -604.8  ]
|   |   Min:    -604.8
|   |   Max:    -0.9
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:   Elevation (m)
|   |   Address:['0x17ec036d0']
|   |   Shape:  (79,)
|   |   Values: [0. 0. 0. ... 0. 0. 0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
values:
|   StatArray
|   Name:   Mean Conductivity ($\frac{S}{m}$)
|   Address:['0x17ec006d0']
|   Shape:  (79, 132)
|   Values: [[0.01022279 0.01022279 0.01016321 ... 0.0112021  0.0112021  0.0112021 ]
|    [0.01121804 0.01121804 0.01062572 ... 0.0110357  0.0110357  0.0110357 ]
|    [0.01049917 0.01049917 0.01007536 ... 0.01354095 0.01354095 0.01354095]
|    ...
|    [0.06896877 0.06896877 0.082946   ... 0.07112381 0.07112381 0.07112381]
|    [0.08055856 0.08055856 0.0985627  ... 0.07903887 0.07903887 0.07903887]
|    [0.09166633 0.09166633 0.09878492 ... 0.11154601 0.11154601 0.11154601]]
|   Min:    0.006775009348709323
|   Max:    0.8077378262817626
|   has_posterior: False


self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
Model:
mesh:
|   RectilinearMesh2D:
|   Shape: : (79, 132)
|   x
|   RectilinearMesh1D
|   Number of Cells:
|   |   79
|   Cell Centres:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x18229f350']
|   |   Shape:  (79,)
|   |   Values: [ 0.  1.  2. ... 76. 77. 78.]
|   |   Min:    0.0
|   |   Max:    78.0
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x17f21de50']
|   |   Shape:  (80,)
|   |   Values: [-0.5  0.5  1.5 ... 76.5 77.5 78.5]
|   |   Min:    -0.5
|   |   Max:    78.5
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:
|   |   Address:['0x182600c50']
|   |   Shape:  (1,)
|   |   Values: [0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
|   y
|   RectilinearMesh1D
|   Number of Cells:
|   |   132
|   Cell Centres:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x18229d5d0']
|   |   Shape:  (132,)
|   |   Values: [  -3.1875   -7.7625  -12.3375 ... -593.3625 -597.9375 -602.5125]
|   |   Min:    -602.5125
|   |   Max:    -3.1875
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x18229dbd0']
|   |   Shape:  (133,)
|   |   Values: [  -0.9     -5.475  -10.05  ... -595.65  -600.225 -604.8  ]
|   |   Min:    -604.8
|   |   Max:    -0.9
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:   Elevation (m)
|   |   Address:['0x18229e6d0']
|   |   Shape:  (79,)
|   |   Values: [0. 0. 0. ... 0. 0. 0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
values:
|   StatArray
|   Name:   Mean Conductivity ($\frac{S}{m}$)
|   Address:['0x18229cb50']
|   Shape:  (79, 132)
|   Values: [[0.02104953 0.02104953 0.02099504 ... 0.01952426 0.01952426 0.01952426]
|    [0.02008789 0.02008789 0.01997577 ... 0.02017019 0.02017019 0.02017019]
|    [0.0198301  0.0198301  0.01986773 ... 0.0145253  0.0145253  0.0145253 ]
|    ...
|    [0.00511314 0.00511314 0.0029654  ... 0.01258484 0.01258484 0.01258484]
|    [0.00392961 0.00392961 0.00385047 ... 0.00870505 0.00870505 0.00870505]
|    [0.00279718 0.00279718 0.00269725 ... 0.00924302 0.00924302 0.00924302]]
|   Min:    0.0008600086897131668
|   Max:    9.774547726888374
|   has_posterior: False


self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
Model:
mesh:
|   RectilinearMesh2D:
|   Shape: : (79, 132)
|   x
|   RectilinearMesh1D
|   Number of Cells:
|   |   79
|   Cell Centres:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x17eab3d50']
|   |   Shape:  (79,)
|   |   Values: [ 0.  1.  2. ... 76. 77. 78.]
|   |   Min:    0.0
|   |   Max:    78.0
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x17eab07d0']
|   |   Shape:  (80,)
|   |   Values: [-0.5  0.5  1.5 ... 76.5 77.5 78.5]
|   |   Min:    -0.5
|   |   Max:    78.5
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:
|   |   Address:['0x17f2d60d0']
|   |   Shape:  (1,)
|   |   Values: [0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
|   y
|   RectilinearMesh1D
|   Number of Cells:
|   |   132
|   Cell Centres:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x17eab31d0']
|   |   Shape:  (132,)
|   |   Values: [  -3.1875   -7.7625  -12.3375 ... -593.3625 -597.9375 -602.5125]
|   |   Min:    -602.5125
|   |   Max:    -3.1875
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x17eab0bd0']
|   |   Shape:  (133,)
|   |   Values: [  -0.9     -5.475  -10.05  ... -595.65  -600.225 -604.8  ]
|   |   Min:    -604.8
|   |   Max:    -0.9
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:   Elevation (m)
|   |   Address:['0x182fd6bd0']
|   |   Shape:  (79,)
|   |   Values: [0. 0. 0. ... 0. 0. 0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
values:
|   StatArray
|   Name:   Mean Conductivity ($\frac{S}{m}$)
|   Address:['0x182fd5650']
|   Shape:  (79, 132)
|   Values: [[0.01147797 0.01147797 0.01033699 ... 0.00131732 0.00131732 0.00131732]
|    [0.00999299 0.00999299 0.01000167 ... 0.00120333 0.00120333 0.00120333]
|    [0.01007022 0.01007022 0.01005285 ... 0.00844038 0.00844038 0.00844038]
|    ...
|    [0.06763163 0.06763163 0.11942951 ... 0.09924038 0.09924038 0.09924038]
|    [0.08122468 0.08122468 0.09651811 ... 0.09608009 0.09608009 0.09608009]
|    [0.09162505 0.09162505 0.09883382 ... 0.11272764 0.11272764 0.11272764]]
|   Min:    0.0007661982574834428
|   Max:    0.21045876958147633
|   has_posterior: False


self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
Model:
mesh:
|   RectilinearMesh2D:
|   Shape: : (79, 132)
|   x
|   RectilinearMesh1D
|   Number of Cells:
|   |   79
|   Cell Centres:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x181fa95d0']
|   |   Shape:  (79,)
|   |   Values: [ 0.  1.  2. ... 76. 77. 78.]
|   |   Min:    0.0
|   |   Max:    78.0
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x181fa88d0']
|   |   Shape:  (80,)
|   |   Values: [-0.5  0.5  1.5 ... 76.5 77.5 78.5]
|   |   Min:    -0.5
|   |   Max:    78.5
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:
|   |   Address:['0x181f49a50']
|   |   Shape:  (1,)
|   |   Values: [0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
|   y
|   RectilinearMesh1D
|   Number of Cells:
|   |   132
|   Cell Centres:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x181fa8450']
|   |   Shape:  (132,)
|   |   Values: [  -3.1875   -7.7625  -12.3375 ... -593.3625 -597.9375 -602.5125]
|   |   Min:    -602.5125
|   |   Max:    -3.1875
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x181fa8150']
|   |   Shape:  (133,)
|   |   Values: [  -0.9     -5.475  -10.05  ... -595.65  -600.225 -604.8  ]
|   |   Min:    -604.8
|   |   Max:    -0.9
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:   Elevation (m)
|   |   Address:['0x181fa9150']
|   |   Shape:  (79,)
|   |   Values: [0. 0. 0. ... 0. 0. 0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
values:
|   StatArray
|   Name:   Mean Conductivity ($\frac{S}{m}$)
|   Address:['0x181fa87d0']
|   Shape:  (79, 132)
|   Values: [[1.02310541 1.02310541 1.02438661 ... 1.05490484 1.05490484 1.05490484]
|    [1.02229478 1.02229478 1.02483553 ... 0.83077926 0.83077926 0.83077926]
|    [1.02256309 1.02256309 1.02298923 ... 1.16206135 1.16206135 1.16206135]
|    ...
|    [0.18317234 0.18317234 0.18317234 ... 0.04611609 0.04611609 0.04611609]
|    [0.13296225 0.13296225 0.13296225 ... 0.02326468 0.02326468 0.02326468]
|    [0.08897776 0.08897776 0.08897776 ... 0.02807133 0.02807133 0.02807133]]
|   Min:    0.005922638381206899
|   Max:    15.778868401978407
|   has_posterior: False


self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
Model:
mesh:
|   RectilinearMesh2D:
|   Shape: : (79, 132)
|   x
|   RectilinearMesh1D
|   Number of Cells:
|   |   79
|   Cell Centres:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x180d2a5d0']
|   |   Shape:  (79,)
|   |   Values: [ 0.  1.  2. ... 76. 77. 78.]
|   |   Min:    0.0
|   |   Max:    78.0
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   Easting (m)
|   |   Address:['0x180d2aad0']
|   |   Shape:  (80,)
|   |   Values: [-0.5  0.5  1.5 ... 76.5 77.5 78.5]
|   |   Min:    -0.5
|   |   Max:    78.5
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:
|   |   Address:['0x17f866cd0']
|   |   Shape:  (1,)
|   |   Values: [0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
|   y
|   RectilinearMesh1D
|   Number of Cells:
|   |   132
|   Cell Centres:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x180d2a750']
|   |   Shape:  (132,)
|   |   Values: [  -3.1875   -7.7625  -12.3375 ... -593.3625 -597.9375 -602.5125]
|   |   Min:    -602.5125
|   |   Max:    -3.1875
|   |   has_posterior: False
|
|   Cell Edges:
|   |   StatArray
|   |   Name:   elevation (m)
|   |   Address:['0x180d2ac50']
|   |   Shape:  (133,)
|   |   Values: [  -0.9     -5.475  -10.05  ... -595.65  -600.225 -604.8  ]
|   |   Min:    -604.8
|   |   Max:    -0.9
|   |   has_posterior: False
|
|   log:
|   |   None
|   relative_to:
|   |   StatArray
|   |   Name:   Elevation (m)
|   |   Address:['0x180d216d0']
|   |   Shape:  (79,)
|   |   Values: [0. 0. 0. ... 0. 0. 0.]
|   |   Min:    0.0
|   |   Max:    0.0
|   |   has_posterior: False
|
values:
|   StatArray
|   Name:   Mean Conductivity ($\frac{S}{m}$)
|   Address:['0x180d21350']
|   Shape:  (79, 132)
|   Values: [[0.00056777 0.00056777 0.00056795 ... 0.00059446 0.00059446 0.00059446]
|    [0.00052266 0.00052266 0.00052266 ... 0.00071041 0.00071041 0.00071041]
|    [0.00080071 0.00080071 0.00080071 ... 0.00104502 0.00104502 0.00104502]
|    ...
|    [0.00854703 0.00854703 0.00857136 ... 0.00167267 0.00167267 0.00167267]
|    [0.00894549 0.00894549 0.00908742 ... 0.00255047 0.00255047 0.00255047]
|    [0.00925526 0.00925526 0.00948505 ... 0.00507188 0.00507188 0.00507188]]
|   Min:    0.0004901610032814771
|   Max:    0.7309893437585234
|   has_posterior: False


self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])
self.n_components=1, self.nTimes=array([26, 19])

import argparse
import matplotlib.pyplot as plt
import numpy as np
from geobipy import Model
from geobipy import Inference2D

def plot_2d_summary(folder, data_type, model_type):
   #%%
   # Inference for a line of inferences
   # ++++++++++++++++++++++++++++++++++
   #
   # We can instantiate the inference handler by providing a path to the directory containing
   # HDF5 files generated by GeoBIPy.
   #
   # The InfereceXD classes are low memory.  They only read information from the HDF5 files
   # as and when it is needed.
   #
   # The first time you use these classes to create plots, expect longer initial processing times.
   # I precompute expensive properties and store them in the HDF5 files for later use.

   from numpy.random import Generator
   from numpy.random import PCG64DXSM
   generator = PCG64DXSM(seed=0)
   prng = Generator(generator)

   #%%
   results_2d = Inference2D.fromHdf('{}/{}/{}/0.0.h5'.format(folder, data_type, model_type), prng=prng)

   kwargs = {
         "log" : 10,
         "cmap" : 'jet'
         }

   fig = plt.figure(figsize=(16, 8))
   plt.suptitle("{} {}".format(data_type, model_type))
   gs0 = fig.add_gridspec(6, 2, hspace=1.0)

   true_model = Model.create_synthetic_model(model_type)

   kwargs['vmin'] = np.log10(np.min(true_model.values))
   kwargs['vmax'] = np.log10(np.max(true_model.values))

   ax = fig.add_subplot(gs0[0, 0])
   true_model.pcolor(flipY=True, ax=ax, wrap_clabel=True, **kwargs)
   results_2d.plot_data_elevation(linewidth=0.3, ax=ax, xlabel=False, ylabel=False);
   results_2d.plot_elevation(linewidth=0.3, ax=ax, xlabel=False, ylabel=False);

   plt.ylim([-550, 60])

   print(results_2d.mean_parameters().summary)

   ax1 = fig.add_subplot(gs0[0, 1], sharex=ax, sharey=ax)
   results_2d.plot_mean_model(ax=ax1, wrap_clabel=True, **kwargs);
   results_2d.plot_data_elevation(linewidth=0.3, ax=ax1);
   results_2d.plot_elevation(linewidth=0.3, ax=ax1);

   # By adding the useVariance keyword, we can make regions of lower confidence more transparent
   ax1 = fig.add_subplot(gs0[1, 1], sharex=ax, sharey=ax)
   results_2d.plot_mode_model(ax=ax1, wrap_clabel=True, **kwargs);
   results_2d.plot_data_elevation(linewidth=0.3, ax=ax1);
   results_2d.plot_elevation(linewidth=0.3, ax=ax1);

   # # # # # We can also choose to keep parameters above the DOI opaque.
   # # # # results_2d.compute_doi()
   # # # # plt.subplot(313)
   # # # # results_2d.plot_mean_model(use_variance=True, mask_below_doi=True, **kwargs);
   # # # # results_2d.plot_data_elevation(linewidth=0.3);
   # # # # results_2d.plot_elevation(linewidth=0.3);

   ax1 = fig.add_subplot(gs0[2, 1], sharex=ax, sharey=ax)
   results_2d.plot_best_model(ax=ax1, wrap_clabel=True, **kwargs);
   results_2d.plot_data_elevation(linewidth=0.3, ax=ax1);
   results_2d.plot_elevation(linewidth=0.3, ax=ax1);
   ax1.set_title('Best model')

   del kwargs['vmin']
   del kwargs['vmax']

   ax1 = fig.add_subplot(gs0[3, 1], sharex=ax, sharey=ax); ax1.set_title('5%')
   results_2d.plot_percentile(ax=ax1, percent=0.05, wrap_clabel=True, **kwargs)
   results_2d.plot_data_elevation(linewidth=0.3, ax=ax1);
   results_2d.plot_elevation(linewidth=0.3, ax=ax1);

   ax1 = fig.add_subplot(gs0[4, 1], sharex=ax, sharey=ax); ax1.set_title('50%')
   results_2d.plot_percentile(ax=ax1, percent=0.5, wrap_clabel=True, **kwargs)
   results_2d.plot_data_elevation(linewidth=0.3, ax=ax1);
   results_2d.plot_elevation(linewidth=0.3, ax=ax1);

   ax1 = fig.add_subplot(gs0[5, 1], sharex=ax, sharey=ax); ax1.set_title('95%')
   results_2d.plot_percentile(ax=ax1, percent=0.95, wrap_clabel=True, **kwargs)
   results_2d.plot_data_elevation(linewidth=0.3, ax=ax1);
   results_2d.plot_elevation(linewidth=0.3, ax=ax1);

   #%%
   # We can plot the parameter values that produced the highest posterior
   ax1 = fig.add_subplot(gs0[2, 0], sharex=ax)
   results_2d.plot_k_layers(ax=ax1, wrap_ylabel=True)

   ax1 = fig.add_subplot(gs0[1, 0], sharex=ax)

   ll, bb, ww, hh = ax1.get_position().bounds
   ax1.set_position([ll, bb, ww*0.8, hh])

   results_2d.plot_channel_saturation(ax=ax1, wrap_ylabel=True)
   results_2d.plot_burned_in(ax=ax1, underlay=True)

   #%%
   # Now we can start plotting some more interesting posterior properties.
   # How about the confidence?
   ax1 = fig.add_subplot(gs0[3, 0], sharex=ax, sharey=ax)
   results_2d.plot_confidence(ax=ax1);
   results_2d.plot_data_elevation(ax=ax1, linewidth=0.3);
   results_2d.plot_elevation(ax=ax1, linewidth=0.3);

   #%%
   # We can take the interface depth posterior for each data point,
   # and display an interface probability cross section
   # This posterior can be washed out, so the clim_scaling keyword lets me saturate
   # the top and bottom 0.5% of the colour range
   ax1 = fig.add_subplot(gs0[4, 0], sharex=ax, sharey=ax)
   ax1.set_title('P(Interface)')
   results_2d.plot_interfaces(cmap='Greys', clim_scaling=0.5, ax=ax1);
   results_2d.plot_data_elevation(linewidth=0.3, ax=ax1);
   results_2d.plot_elevation(linewidth=0.3, ax=ax1);

   ax1 = fig.add_subplot(gs0[5, 0], sharex=ax, sharey=ax)
   results_2d.plot_entropy(cmap='Greys', clim_scaling=0.5, ax=ax1);
   results_2d.plot_data_elevation(linewidth=0.3, ax=ax1);
   results_2d.plot_elevation(linewidth=0.3, ax=ax1);

   # plt.show()
   plt.savefig('{}_{}.png'.format(data_type, model_type), dpi=300)


if __name__ == '__main__':
   types = ['glacial', 'saline_clay', 'resistive_dolomites', 'resistive_basement', 'coastal_salt_water', 'ice_over_salt_water']

   for model in types:
      # try:
         plot_2d_summary('../../../Parallel_Inference/', "skytem", model)
      # except Exception as e:
      #    print(model)
      #    print(e)
      #    pass

Total running time of the script: (0 minutes 18.965 seconds)

Gallery generated by Sphinx-Gallery