Credit: Me :D

Research and software development:

meteors and space objects


Daniel Kastinen

Credit: Me :D

Research and software development:

meteors and space objects

Outline

  1. Introduction
  2. Short overview of the research
  3. Basic python
  4. Practical data analysis

Credit: Me :D

Who am I?

  • Living in Kiruna since 2017
  • Finished PhD Nov. 2022
    From Meteors to Space Safety: Dynamical Models and Radar Measurements of Space Objects
  • Hired as permanent staff scientist February 2023
  • Task: Conduct research on meteors and space objects!

Who am I?

  • LTU-Rymdteknik 2011->2016
  • Living in Kiruna since 2017
  • Finished PhD Nov. 2022
    From Meteors to Space Safety: Dynamical Models and Radar Measurements of Space Objects
  • Hired as permanent staff scientist February 2023
  • Task: Conduct research on meteors and space objects!

Solar Terrestrial and Atmospheric Research

Meteors and space objects

  • Meteors, meteoroids, dust
  • Space debris
  • Asteroids and comets
  • Solar system dynamics
  • Mesosphere and Lower Thermosphere

Solar Terrestrial and Atmospheric Research

Meteors and space objects

  • Meteors, meteoroids, dust
  • Space debris
  • Asteroids and comets
  • Solar system dynamics
  • Mesosphere and Lower Thermosphere

Meteors

Credit: Nathan Myhrvold

Meteors

Meteoroid (well almost)

Credit: NASA/Johns Hopkins APL

Meteor

Photo: Torbjörn Lövgren

Meteorite

Credit: SVT

First topic:

Meteors

Where do meteoroids come from?

Rosetta OSIRIS - 67P/Churyumov-Gerasimenko

  • Comet sublimation
  • Asteroid collision
  • Catastrophic disruption
  • Interstellar?
  • Impact ejecta
  • ...

Meteors

Meteoroid dynamics in the solar system

  • Hamiltonian mechanics
  • Electromagnetic perturbations
    • Radiation pressure
    • Poynting-Robertson drag
    • Yarkovsky and YORP effects
    • Lorentz force
  • Post-newtonian corrections
  • Numerical integrators

Meteors

Meteoroid to a meteor

Meteors

EISCAT 3D

Photo: EISCAT

Today we use data from

Shigaraki Middle and Upper Atmosphere (MU) radar, Japan

AllSky7

AllSky7

Credit: AllSky7 @ Umeå University 2024-09-12

My work: connecting the small and big pictures

My work: connecting the small and big pictures

  • Radar data analysis & signal processing
  • Meteoroid and small body dynamical simulations
  • Statistical methods and solving inverse problems
  • Meteor phenomena and meteoroid stream formation modelling
  • (now also) Optical data processing and hardware
  • ...and space debris (for another time!)

This is a WHOLE lot of software development

Lets get programming!

Quick python primer

Lets walk to computer room 2100

Our goals for today:

  • Read a data-file manually
  • Plot the contents of the data-file
  • Determine the deceleration and trajectory angle

But first!... lets calculate $\pi$ in a very roundabout way

But first!... lets calculate $\pi$ in a very roundabout way

  • Since we only have Windows: start Spyder!
  • In the IPython terminal do
  •                                     
    !pip --version
    !pip install numpy matplotlib scipy
                                        
                                    
  • Navigate to a new folder
  • make a new file for our $\pi$ calculation

But first!... lets calculate $\pi$ in a very roundabout way

  • Probability is
    $\mathbb{P}(\bar{x} \in A) = \int_{A} f_X(\bar{x})\mathrm{d}\bar{x}$
    where $\bar{x} \sim X$
  • Uniform 2d random distribution on $S = [-1, 1] \times [-1, 1]$
    $f_\mathcal{U}(x, y) = \mathbf{1}_S(x, y) \frac{1}{\text{Area}} = \mathbf{1}_S(x, y)\frac{1}{4}$
  • What is $\mathbb{P}(\sqrt{x^2 + y^2} \leq 1)$?
  • $= \int_{\text{Circle}} \mathbf{1}_S(x, y)\frac{1}{4} \mathrm{d}\bar{x} = \frac{1}{4} A_{\text{Circle}} = \frac{\pi}{4}$
$$\mathbb{P}(\sqrt{x^2 + y^2} \leq 1) = \frac{\pi}{4}$$ $$ \lim_{\mapsto \infty} 4\frac{\# \text{number of points in circle}}{\# \text{number of points}} \mapsto \pi $$
                                import numpy as np

samples = 100
x = np.random.rand(samples)*2 - 1
y = np.random.rand(samples)*2 - 1
                            
                                r = np.sqrt(x**2 + y**2)
pi = 4*np.sum(r < 1)/samples

print(f"{samples=} gives {pi=} (error {np.pi - pi})")
                                
                            

Try samples = 1_000_000

Basic python

Dynamic typing:
  • Every object has a type
  • Every object knows its type
  • Types are not declared (but can be since Python 3)
  • Names refer to an object
  • Names are not typed
Some practical implications:
                    
a = 5 #a is the name of an object of type integer
a = 5.0 #a is now the name of an object of type float
def func(b):
    return(b + 5) # b can be anything that "can do" plus(5)
                    
                

Basic python

L = [1.9, 3, "h"]
print(f"{L=}")
print(f"{type(L)=}")
print(f"{type(L[0])=}")

B = {"key": int(L[0])}
print(B)

import numpy as np

a = np.random.randn(1)
if a < -1 or a > 1:
    print("Outside one sigma!!!")
else:
    print("Nothing abnormal to see here")

for i in range(10):
    print(f"Hello world number {i}")

with open("my_file.txt", "r") as fh:
    for line in fh.readlines():
        print(line)

import numpy as np
I_matrix = np.arange(9).reshape((3, 3))
print(I_matrix)

# Slices
print(f"{I_matrix[:, 0]=}")
print(f"{I_matrix[1, :2]=}")

numpy is C-code!

Meteor data

  1. Open the file
  2. Read it line by line
  3. Skip comments but save the T_ipp variable
  4. Save header
  5. Convert data to vectors or a matrix (use numpy or python lists)
    Take care for NaN values!
  6. Plot the data (snr_db = 10*np.log10(snr))
  7. import matplotlib.pyplot as plt
    
    fig, axes = plt.subplots(3, 1)
    axes[0].plot(t, height)
    axes[1].plot(t, velocity)
    axes[2].plot(t, snr_db)
    
    plt.show()
    
    

Meteor data

Since we are running out of time: shortcut

data = np.genfromtxt(fname, comments="#", delimiter=",")
T_ipp = 0.0031

...
import matplotlib.pyplot as plt

fig, axes = plt.subplots(3, 1)
axes[0].plot(t, height)
axes[1].plot(t, velocity)
axes[2].plot(t, snr_db)

plt.show()

Meteors

Use any method you would like, but beware of outliers!

Meteor data

Thank you for attending!