Model trainer: use ground altitude instead of crust mass distribution
[?]
Jul 5, 2021, 11:59 PM
EB3DTD435BDETZX5B3SJCEW666AILYCP5GQI2D2AKAH2CBYHCJ4QCDependencies
- [2]
7ML3OFE7Model trainer: initial train and visualize thread pair (total crust mass; todo: altitude instead) - [3]
TCMUFA6ETry some different hyperparameters - [*]
X5U7KRUIParse some of the data into tensors
Change contents
- edit in trainmodel/src/model.py at line 4
from . import geology - replacement in trainmodel/src/model.py at line 19
return (simresult.vertices, tf.math.multiply(1/700000000, simresult.crust_layers['total']))return (simresult.vertices, (geology.isostatic_displacement(simresult) + 1.) / 25000.) - file addition: geology.py[5.6]
import tensorflow as tf# In tectonics.js surface height is calculated at Lithosphere.surface_height()# surface_height# - displacement# - thickness ✓# - density ✓# - material_density ✓# - sealevel (guess)material_density = {'fine_sediment': 1500.,'voarse_sediment': 1500.,'sediment': 1500.,'sedimentary': 2600.,'metamorphic': 2800.,'felsic_plutonic': 2600.,'felsic_volcanic': 2600.,'mafic_volcanic_min': 2890., # Carlson & Raskin 1984'mafic_volcanic_max': 3300.,'mantle': 3075., # derived empirically using isostatic model'ocean': 1026.,}def get_thickness(saved):fraction_of_lifetime = saved.crust_layers['age'] / 7889537440886400.0mafic_density = material_density['mafic_volcanic_min'] + (material_density['mafic_volcanic_max'] - material_density['mafic_volcanic_min']) * fraction_of_lifetimetotal_thickness = (saved.crust_layers['mafic_volcanic'] + saved.crust_layers['mafic_plutonic']) / mafic_densityfor rocktype, density in material_density.items():if rocktype in saved.crust_layers:total_thickness += saved.crust_layers[rocktype] / densityreturn total_thicknessdef isostatic_displacement(saved):thickness = get_thickness(saved)return thickness - saved.crust_layers['total'] / material_density['mantle']