Upload you completed and commented Jupyter notebook (the .ipynb file) or your MATLAB script and a PDF file with results and comments.
Lo estoy haciendo en el jupyter de m0wer. Cuando lo tenga listo lo puedo referenciar por aquí. Seguro que seoy capaz de exportar el jupyter a markdown.
Al final no le he preguntado la duda al profesor porque supongo que está bien. Voy a poner por aquí el resultado.
Simple Earth - Reference system
We want to determine a reference system for a simple cyliddrical version of the Earth, to investigate how large climate events effects the system.
Approximate the Earth with a rigid cylinder with a height equal to twice the GRS80 semi minor axis and a radius such that the volume of the cylinder is equal to the volume of the GRS80 sphere.
import numpy as np
class grs80:
""" Defined and derived constans associated with GRS80 as described in
Geodetic Reference System 1980, H. Moritz (2000)
"""
a = 6378137.000 # [m] semimajor axis
GM = 3986005.0e8 # [m^3*s^-2] geocentric gravitational constant
J2 = 108263.0e-8 # dynamic form factor
omega = 7292115e-11 # [rad*s^-1] angular velocity
b = 6356752.3141 # [m] semiminor axis
R3 = 6371000.7900 # [m] Radius of sphere with same volume as Earth
Exercise 1.1: Calculate the shape of Cylinder Earth
Radius of the spherical Earth should be $R_3$ and the height of the cylindrical Earth should be $2b$. Use the following general geometric formulas to find the shape of the cylinder.
$$ V_{sphere} = \frac{4}{3}\pi r^3 \\ V_{cylinder} = \pi r^2 l $$
earthVolume = 4.0/3.0 * np.pi * np.power(grs80.R3, 3)
print("Volume of Earth {:.4e} m^3".format(earthVolume))
earthCylinderHeight = 2 * grs80.b # Insert the correct calculation
print("Height of EarthC {:.4e} m".format(earthCylinderHeight))
earthCylinderRadius = grs80.R3 # Insert the correct calculation
print("Radius of EarthC {:.4e} m\n".format(earthCylinderRadius))
Volume of Earth 1.0832e+21 m^3
Height of EarthC 1.2714e+07 m
Radius of EarthC 6.3710e+06 m
Antarctica
The southern (bottom) end of the cylinder is a disc of homogeneous ice (i.e. the Antarctic Ice Sheet) with a density of $\rho_{ice}$ and a volume of $V_{Antarctica}$. The rest of the cylinder is homogeneous rock with a density of $\rho_{rock}$.
$$ \rho_{ice} = 915\ kg/m^3 \\ \rho_{rock} = 5513\ kg/m^3 \\ V_{Antarctica} = 2.65 \cdot 10^{16}\ m^3 $$
Exercise 1.2: Calculate the weight and height (thickness) of the Antarctic Ice Sheet and the rock Earth
v_ant = 2.65e16 # [m^3] Volume of Antarctica ice sheet
rho_ice = 915.0 # [kg*m^-3] Density of ice
rho_rock = 5513.0 # [kg*m^-3] Density of rock
antarcticaHeight = v_ant / (np.pi * np.power(grs80.R3, 2)) # Insert the correct calculation
print("Height of Antarctica {:.4f} m".format(antarcticaHeight))
antarcticaWeight = rho_ice * v_ant # Insert the correct calculation
print("Weight of Antarctica {:.4e} kg".format(antarcticaWeight))
earthRockWeight = rho_rock * earthVolume # Insert the correct calculation
print("Weight of rock Earth {:.4e} kg\n".format(earthRockWeight))
Height of Antarctica 207.8168 m
Weight of Antarctica 2.4248e+19 kg
Weight of rock Earth 5.9717e+24 kg
Center of mass of the entire Earth
The center of mass of an object can generally be calculated using:
$$ \boldsymbol{r}_{CM} = \frac{\int \rho (\boldsymbol{r}) \boldsymbol{r} dV}{\int \rho \boldsymbol{r} dV} $$
Since we assume homogenous desities for both ice and rock we can use symetries to simplify and consider the system as discrete.
$$ \boldsymbol{r}_{CM} = \frac{\sum_i{m_i \boldsymbol{r}_i}}{\sum_i{m_i}} $$
Exercise 1.3: Calculate the center of mass for the entire Earth
Place the origo of a cartesian coordinate system such that the $X$ and $Y$ axes touches the cylinder and the $Z$ axis touches the bottom of Antarctica. Use symetries to calculate the center of mass for Antarctica and Rock Earth. Then use the discreete version to calculate the center of mass for the entire Earth.
antarcticaCMX = 0 # Determine the correct value
antarcticaCMY = 0 # Determine the correct value
antarcticaCMZ = (1/2) * antarcticaHeight # Determine the correct value
print("Center of mass for Antarctica:")
print(" X: {:.4f} m".format(antarcticaCMX))
print(" Y: {:.4f} m".format(antarcticaCMY))
print(" Z: {:.4f} m\n".format(antarcticaCMZ))
earthRockCMX = 0 # Determine the correct value
earthRockCMY = 0 # Determine the correct value
earthRockCMZ = (1/2) * earthCylinderHeight # Determine the correct value
print("Center of mass for the Rock Earth:")
print(" X: {:.4f} m".format(earthRockCMX))
print(" Y: {:.4f} m".format(earthRockCMY))
print(" Z: {:.4f} m\n".format(earthRockCMZ))
# It is obvius that X and Y are zero due to the simetrical shape of the cilynder
earthCMX = ((antarcticaCMX * antarcticaWeight)/antarcticaWeight) + ((earthRockCMX * earthRockWeight)/earthRockWeight) # Insert the correct calculation
earthCMY = ((antarcticaCMY * antarcticaWeight)/antarcticaWeight) + ((earthRockCMY * earthRockWeight)/earthRockWeight) # Insert the correct calculation
earthCMZ = ((antarcticaCMZ * antarcticaWeight)/antarcticaWeight) + ((earthRockCMZ * earthRockWeight)/earthRockWeight) # Insert the correct calculation
print("Center of mass for the entire Earth:")
print(" X: {:.4f} m".format(earthCMX))
print(" Y: {:.4f} m".format(earthCMY))
print(" Z: {:.4f} m\n".format(earthCMZ))
Center of mass for Antarctica:
X: 0.0000 m
Y: 0.0000 m
Z: 103.9084 m
Center of mass for the Rock Earth:
X: 0.0000 m
Y: 0.0000 m
Z: 6356752.3141 m
Center of mass for the entire Earth:
X: 0.0000 m
Y: 0.0000 m
Z: 6356856.2225 m
Exercise 1.4: Calculate the coordinates of the North Pole
Place the origo of the reference system at the center of mass of the entire Earth and calculate the coordinates of the North Pole.
# North Pole is placed in the X and Y 0
# For Z axis it is necessary to change the coordinates, since the heigh of the cylinder is expressed from the beneath point
nPX = 0 # Insert the correct calculation
nPY = 0 # Insert the correct calculation
nPZ = (earthCylinderHeight + antarcticaHeight) - earthCMZ # Insert the correct calculation
print("Coordinate of the North Pole:")
print(" X: {:.4f} m".format(nPX))
print(" Y: {:.4f} m".format(nPY))
print(" Z: {:.4f} m\n".format(nPZ))
Coordinate of the North Pole:
X: 0.0000 m
Y: 0.0000 m
Z: 6356856.2225 m
Melting Antarctica
Assume that the entire Antarctic Ice Sheet melts and creates an ocean with constant depth that covers the entire surface of the cylinder. How will it effect the reference system of the entire Earth?
$$ \rho_{ocean} = 1000 kg/m^3 $$
Some notes (EDIT)
Cylinder volume:
$$ V_{cylinder} = \pi \cdot r^2 \cdot h $$
The fluid will be placed uniformly in the cilinder. That means, the origo will be in the center of the cylinder.
Exercise 2.1: Calculate the coordinates of the North Pole after Antarctica has melted
# After melted ¿Does the origo changes?
# Después de que se funda el hielo el agua hace que cambie el sistema de coordenadas. La gracia del ejercicio es determinar si el centro de coordenadas ha cambiado
ro_ocean = 1000 # kg/m^3
v_ant_pri = (ro_ocean/(rho_ice)) * v_ant # Antartica volume after melting
print("Antarctica Volume: {}".format(v_ant_pri))
v_sys = earthVolume + v_ant_pri
## If antarctica melts then the cylinder will be bigger, and the reference system will change.
## The fluid will placed uniformly in the shape of the cylinder, that is... the origo of our system will be placed
## just in the middle of the cylinder.
antarcticaHeight_pri = v_ant_pri / (np.pi * np.power(grs80.R3, 2)) # Insert the correct calculation
print(antarcticaHeight_pri - antarcticaHeight)
# X and Y still 0 because it is a simetrical object and the ice melts homogeniously
nPMeltX = 0 # Insert the correct calculation
nPMeltY = 0 # Insert the correct calculation
nPMeltZ = nPZ + antarcticaHeight_pri # Insert the correct calculation
print("Coordinate of the North Pole without Antarctica:")
print(" X: {:.4f} m".format(nPMeltX))
print(" Y: {:.4f} m".format(nPMeltY))
print(" Z: {:.4f} m\n".format(nPMeltZ))
print("Change in Z: {:.4f} m".format(nPZ - nPMeltZ))
Antarctica Volume: 2.8961748633879784e+16
19.305387133920732
Coordinate of the North Pole without Antarctica:
X: 0.0000 m
Y: 0.0000 m
Z: 6357083.3447 m
Change in Z: -227.1222 m
Exercise 2.2: Calculate the ocean depth after Antarctica has melted
The area of a cylinder:
$$ A_{cylinder} = 2 \pi r (h + r) $$
rho_ocean = 1000.0 # [kg*m^-3] Density of ocean water
earthArea = 2 * np.pi * earthCylinderRadius * (earthCylinderRadius + earthCylinderHeight)
oceanArea = 0 # Insert the correct calculation
oceanDepth = v_ant_pri / earthArea # Insert the correct calculation
print("Ocean depth: {:.4f} m".format(oceanDepth))
Ocean depth: 37.9102 m