Una colisión de asteroides lo suficientemente grande y rápida como para ver una eyección masiva de rocas y trozos de luna desde la superficie de la tierra Y no acabar con la población del planeta.
¿Qué tamaño y velocidad de asteroide se necesitaría para tener un impacto mayormente visible y espectacular en la luna?
¿Qué efectos secundarios tendría esto? ¿Cómo sería la luna? ¿Habría algún efecto menor en la tierra?
Algo del tamaño del impactador Chicxulub sería bastante espectacular: el rango superior de su energía de impacto es de cincuenta mil gigatoneladas de TNT equivalente. No habría una explosión equivalente en toda la existencia humana.
El principal problema es que para salvar a la humanidad de un impacto, por definición, cualquier impactador tendría que impactar en el otro lado de la luna. La eyección sería visible, al igual que el movimiento de la luna misma, pero no el momento del impacto.
Cualquier impacto suficiente para ser visible en el lado cercano , es decir. fuerza proyectada a través de toda la luna, posiblemente destruyéndola, le dará el mismo problema experimentado por la raza humana en Seveneves de Neal Stephenson : una lluvia fuerte .
Para mayor diversión, adapté un script de python que encontré aquí :
import matplotlib.pyplot as plt
import math
plt.ion()
G = 6.673e-11 # gravitational constant
gridArea = [-20, 50, -20, 50] # margins of the coordinate grid
gridScale = 10000000 # 1 unit of grid equals 10000000m or 10000km
plt.clf() # clear plot area
plt.axis(gridArea) # create new coordinate grid
plt.grid(b="on") # place grid
class Object:
_instances = []
def __init__(self, name, position, radius, mass):
self.name = name
self.position = position
self.radius = radius # in grid values
self.mass = mass
self.placeObject()
self.velocity = 0
Object._instances.append(self)
def placeObject(self):
drawObject = plt.Circle(self.position, radius=self.radius, fill=False, color="black")
plt.gca().add_patch(drawObject)
plt.show()
def giveMotion(self, deltaV, motionDirection, time):
if self.velocity != 0:
x_comp = math.sin(math.radians(self.motionDirection))*self.velocity
y_comp = math.cos(math.radians(self.motionDirection))*self.velocity
x_comp += math.sin(math.radians(motionDirection))*deltaV
y_comp += math.cos(math.radians(motionDirection))*deltaV
self.velocity = math.sqrt((x_comp**2)+(y_comp**2))
if x_comp > 0 and y_comp > 0: # calculate degrees depending on the coordinate quadrant
self.motionDirection = math.degrees(math.asin(abs(x_comp)/self.velocity)) # update motion direction
elif x_comp > 0 and y_comp < 0:
self.motionDirection = math.degrees(math.asin(abs(y_comp)/self.velocity)) + 90
elif x_comp < 0 and y_comp < 0:
self.motionDirection = math.degrees(math.asin(abs(x_comp)/self.velocity)) + 180
else:
self.motionDirection = math.degrees(math.asin(abs(y_comp)/self.velocity)) + 270
else:
self.velocity = self.velocity + deltaV # in m/s
self.motionDirection = motionDirection # degrees
self.time = time # in seconds
self.vectorUpdate()
def vectorUpdate(self):
self.placeObject()
data = []
for t in range(self.time):
motionForce = self.mass * self.velocity # F = m * v
x_net = 0
y_net = 0
for x in [y for y in Object._instances if y is not self]:
distance = math.sqrt(((self.position[0]-x.position[0])**2) +
(self.position[1]-x.position[1])**2)
gravityForce = G*(self.mass * x.mass)/((distance*gridScale)**2)
x_pos = self.position[0] - x.position[0]
y_pos = self.position[1] - x.position[1]
if x_pos <= 0 and y_pos > 0: # calculate degrees depending on the coordinate quadrant
gravityDirection = math.degrees(math.asin(abs(y_pos)/distance))+90
elif x_pos > 0 and y_pos >= 0:
gravityDirection = math.degrees(math.asin(abs(x_pos)/distance))+180
elif x_pos >= 0 and y_pos < 0:
gravityDirection = math.degrees(math.asin(abs(y_pos)/distance))+270
else:
gravityDirection = math.degrees(math.asin(abs(x_pos)/distance))
x_gF = gravityForce * math.sin(math.radians(gravityDirection)) # x component of vector
y_gF = gravityForce * math.cos(math.radians(gravityDirection)) # y component of vector
x_net += x_gF
y_net += y_gF
x_mF = motionForce * math.sin(math.radians(self.motionDirection))
y_mF = motionForce * math.cos(math.radians(self.motionDirection))
x_net += x_mF
y_net += y_mF
netForce = math.sqrt((x_net**2)+(y_net**2))
if x_net > 0 and y_net > 0: # calculate degrees depending on the coordinate quadrant
self.motionDirection = math.degrees(math.asin(abs(x_net)/netForce)) # update motion direction
elif x_net > 0 and y_net < 0:
self.motionDirection = math.degrees(math.asin(abs(y_net)/netForce)) + 90
elif x_net < 0 and y_net < 0:
self.motionDirection = math.degrees(math.asin(abs(x_net)/netForce)) + 180
else:
self.motionDirection = math.degrees(math.asin(abs(y_net)/netForce)) + 270
self.velocity = netForce/self.mass # update velocity
traveled = self.velocity/gridScale # grid distance traveled per 1 sec
self.position = (self.position[0] + math.sin(math.radians(self.motionDirection))*traveled,
self.position[1] + math.cos(math.radians(self.motionDirection))*traveled) # update pos
data.append([self.position[0], self.position[1]])
collision = 0
for x in [y for y in Object._instances if y is not self]:
if (self.position[0] - x.position[0])**2 + (self.position[1] - x.position[1])**2 <= x.radius**2:
collision = 1
impactor = self.name
impactee = x.name
velocity = self.velocity
break
if collision != 0:
print("Collision! %s struck %s at %d m/s" % (impactor, impactee, velocity))
break
plt.plot([x[0] for x in data], [x[1] for x in data])
Earth = Object(name="Earth", position=(0.0, 25.0), radius=0.6371, mass=5.972e24)
Moon = Object(name="Moon", position=(38.45, 25.0), radius=0.1737, mass = 7.347e22) # The orbital distance of the moon is ~ 384.5 thousand km.
Hammer = Object(name="Hammer", position=(38.80, 25.20), radius=0.0001, mass=1.0e10)
Hammer.giveMotion(deltaV=2000.0, motionDirection=270, time=100000)
plt.show(block=True)
El Martillo pesa solo 10Mkg, pero su masa siempre será algo irrelevante.
Puedo pensar en formas en que el impacto podría ser visible desde la Tierra.
1 Posiblemente el impacto crearía una nube de partículas de polvo y roca vaporizada que se expandiría varias veces el diámetro de la luna y sería iluminada desde abajo por lava al rojo vivo o más caliente creada por el impacto y fácilmente visible desde la Tierra
2 Posiblemente el asteroide se dirige directamente hacia la Tierra pero pasa cerca de la Luna y la gravedad lunar desvía un poco el curso del asteroide hacia la Luna. Por lo tanto, el asteroide apenas pasa por alto la Tierra, gira alrededor de ella y se lanza hacia la Luna. El asteroide golpea la luna en el lado cercano en una tremenda explosión. Y los astrónomos calculan que si el asteroide no hubiera golpeado la Luna, eventualmente habría vuelto a caer a la Tierra causando un evento de extinción.
Si usa una de esas sugerencias, intente calcular si es posible con las fuerzas gravitacionales y el rango probable de velocidad del asteroide.
Alejandro
friki
grifo
usuario3106
friki
Harthag
Cort Amón