Météorites

In [ ]:
%pylab inline
Populating the interactive namespace from numpy and matplotlib

Représentations graphiques

Le fichier meteorites.csv est un fichier de texte au format CSV :

In [ ]:
!head meteorites.csv
Place,Fall,Year,Mass,Latitude,Longitude
Aachen, Fell,1880,21, 50.775000, 6.083330
Aarhus, Fell,1951,720, 56.183330, 10.233330
Abee, Fell,1952,107000, 54.216670, -113.000000
Acapulco, Fell,1976,1914, 16.883330, -99.900000
Achiras, Fell,1902,780, -33.166670, -64.950000
Adhi Kot, Fell,1919,4239, 32.100000, 71.800000
Adzhi-Bogdo (stone), Fell,1949,910, 44.833330, 95.166670
Agen, Fell,1814,30000, 44.216670, 0.616670
Aguada, Fell,1930,1620, -31.600000, -65.233330

Il s'agit d'une base de données qui répertorie les chutes de météorites identifiées sur la terre. Pour chaque météorite, le fichier fournit sa localisation, sa masse et une date. Le champ Fall indique si la chute a été observée. Dans ce cas la date correspond à l'année de la chute, sinon elle correspond à l'année où la météorite a été découverte.

Question 1

Écrire un code python qui lit le fichier meteorites.csv et qui mémorise l'information dans des listes places, falls, masses, years, latitudes, longitudes.

In [ ]:
 

Question 2

Représenter graphiquement le nombre total de météorites tombées par année depuis 1900.

In [ ]:
 

Question 3

Représenter graphiquement la masse totale tombée par année depuis 1900.

In [ ]:
 

Question 4

Représenter graphiquement le nombre de météorites par latitude.

In [ ]:
 

Question 5

Représenter sous la forme d'un histogramme la répartition des météorites en fonction de leurs masses.

In [ ]:
 

Cartographie des météorites

Le module ipyleaflet permet de représenter des cartes dans un notebook.

In [ ]:
import ipyleaflet as leaf

earth = leaf.Map(center=(0, 0), zoom=1)
circle = leaf.Circle(location=(47, 0), weight=4, color='blue')
earth.add_layer(circle)
earth

Question 6

Représenter sur une carte les météorites de plus d'une 100 kilos.

Adapter la taille du disque à la masse de la météorite.

In [ ]:
 

On souhaite représenter la carte des météorites tombées en France métropolitaine. Il faut donc savoir déterminer si un point donné par sa latitude et sa longitude est en France ou non. Le fichier france.csv contient pour cela une liste de coordonnées latitude/longitude qui représente la France sous la forme d'un polygone :

In [ ]:
!head france.csv
Latitude, Longitude
50.378992, 3.588184
49.907497, 4.286023
49.985373, 4.799222
49.529484, 5.674052
49.442667, 5.897759
49.463803, 6.186320
49.201958, 6.658230
49.017784, 8.099279
48.333019, 7.593676

Question 7

Proposer un algorithme pour déterminer si un point $P$ est à l'intérieur ou à l'extérieur d'un polygone $A_1A_2\dots A_nA_1$.

Question 8

Écrire une fonction python is_inside(P, poly) qui retourne True si le point $P$ est à l'intérieur du polygone et False sinon.

Utiliser pour cela une fonction auxilliaire area(P0, P1, P2) qui calcule l'aire algébrique du triangle $P_0P_1P_2$. Le signe de l'aire permet ainsi de connaître l'orientation du triangle.

In [ ]:
 

Question 9

Tester la fonction is_inside sur le polygone défini dans le fichier france.csv.

In [ ]:
 

Question 10

Représenter la carte des météorites tombées en France métropolitaine.

In [ ]:
 

Chute d'une météorite dans l'atmosphère

Lorsqu'une météorite entre dans l'atmosphère, outre la force de gravitation exercée par la terre, elle subit une force de trainée aérodynamique dont l'intensité est :

$$F_t=\frac{1}{2}\rho_aSC_xv^2$$

où $\rho_a$ est la densité de l'air, $S$ la surface effective de la météorite et $v$ la vitesse de la météorite. $C_x$ un coefficient d'une valeur égale à 0,3.

  • On se limite à des vitesses incidentes qui pointent vers le centre de la terre.

  • On considèrera que la densité de l'atmosphère dépend de l'altitude selon une loi exponentielle

$$\rho_a=\rho_0\exp(-z/\lambda)$$

avec $\lambda=1000$ et $\rho_0=1$.

  • On assimilera la météorite à une sphère de sorte que $S=\pi R^2$ où $R$ est le rayon de la météorite.

  • On prendra $\rho_m=3000$ $kg/m^3$

Question 11

Écrire une fonction python simulation qui calcule l'évolution de la météorite. La fonction prend pour arguments :

  • la masse m de la météorite,
  • la densité volumique ρ_m de la météorite,
  • la vitesse v0 de la météorite à 100 km d'altitude.

La fonction retourne l'évolution de la météorite sous la forme de trois tableaux Numpy de même taille :

  • le tableau T des instants,
  • le tableau Z des altitudes,
  • le tableau V des vitesses.

La dernière valeur de ces tableaux correspond au moment de l'impact de la météorite avec le sol.

On pourra choisir $0,01$seconde comme intervalle de temps entre deux instants successifs.

La fonction odeint de Scipy pourra être utilisée pour le calcul de l'évolution de la météorite.

In [ ]:
 

Question 12

Représenter sur un même graphique l'altitude en fonction du temps de météorites de 10 kg qui entrent dans l'atmosphère (altitude 100 km) avec des vitesses de 5, 10, 20 et 40 km/s.

In [ ]:
 

Question 13

Représenter sur un même graphique l'évolution en fonction du temps de météorites de 1, 10, 100 et 1000 kg qui entrent dans l'atmosphère avec une vitesse de 20 km/s.

In [ ]:
 

Question 14

Représenter l'évolution de la vitesse en fonction de l'altitude pour des météorites de 1, 10, 100 et 1000 kg qui entrent dans l'atmosphère avec une vitesse de 20 km/s.

In [ ]:
 

Question 15

Représenter graphiquement la vitesse d'impact d'une métorite de 10 kg selon sa vitesse d'entrée dans l'atmosphère (100 km d'altitude).

In [ ]:
 

Question 16

Représenter graphiquement la vitesse d'impact d'une métorite qui entre dans l'atmosphère (100 km d'altitude) à 20 km/s en fonction de la masse (entre 1 kg et 10 tonnes).

In [ ]: