Skip to main content

A collection of satellite methods and approaches to satellite simulations

Project description

Satellitic

A collection of tools for satellite assessments

License PyPI Downloads

Take note that while this package aims to introduce simulation methods many of the derived statistical properties does not require full simulations. The reason is that satellite movements are well modelled by assuming that they are ergodic. Thus time averages are equal to ensemble averages.

Install

Install the package using :

pip install satellitic

Example

In order to create a similar image as this: text

place the content of this projects data folder in you run root and execute the below code

from satellitic.init import ALL_CELESTRAK_GROUPS,PREFERRED_BANDS
import satellitic.simulation as satsim

out = satsim.run_snapshot_simulation(
            out_dir="sim_20251212_dev",
            groups=ALL_CELESTRAK_GROUPS,	# CELESTRAK_GROUPS,
            local_tle_file="tle_local.txt", 	# LOCAL_TLE_FALLBACK,
            N_target=10000,               	# set to 35000 for full-scale runs (ensure resources)
            grid_nlat=120,
            grid_nlon=240,
            model="multibeam",
            n_beams_per_sat=7,
            beam_half_angle_deg=0.8,
            beam_pattern="hex",
            beam_max_tilt_deg=10.0,
            beam_gain_model="gaussian",
            gain_threshold=0.25,
            frequency_band="E-band",
            preferred_bands=PREFERRED_BANDS,
            chunk_sat=256,
            chunk_ground=20000,
            use_gpu_if_available=False,   # set True if you installed cupy
            compute_power_map = False,
            do_random_sampling = True,
        )
print("Simulation finished. Outputs:", out)

import pandas as pd
tdf = pd.concat( ( pd.read_csv(out['total_csv']),	pd.read_csv(out['pref_csv']), pd.read_csv(out['cofreq_csv']),	pd.read_csv(out['nvis_csv'])) )
print ( tdf .describe() )

Forcing qt5 in VisPy

>>> from vispy import app
... print(app.use_app('pyqt5', True))  # force PyQt5

To view an orbital simulation

Note that the streaming 3D vispy visualisation cannot handle huge amounts of satellites. Test with a small tle file and then offload to the trajectory file

>>> from satellitic.simulation import newtonian_simulator
ImportSuccess: HAS JAX IN ENVIRONMENT
>>> newtonian_simulator( run_parameters  = { 'dt':5e1,
            'Nsteps':None ,
            'steps_per_frame':100 ,
            'mass_epsilon':None ,
            'mass_rule':None } ,
    satellite_topology  = {'Earth':'data/local_small_tle.txt'} )

To write a trajectory file you can specify

>>> newtonian_simulator( run_parameters  = { 'dt':5e1,
            'Nsteps':None ,
            'steps_per_frame':100 ,
            'mass_epsilon':None ,
            'mass_rule':None } ,
    satellite_topology  = {'Earth':'data/local_small_tle.txt'} ,
    bAnimated = True , bWriteTrajectory = True,
    trajectory_filename = "trajectory.trj", bVerbose = False )

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

satellitic-0.1.20.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

satellitic-0.1.20-py3-none-any.whl (49.8 kB view details)

Uploaded Python 3

File details

Details for the file satellitic-0.1.20.tar.gz.

File metadata

  • Download URL: satellitic-0.1.20.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.12

File hashes

Hashes for satellitic-0.1.20.tar.gz
Algorithm Hash digest
SHA256 e2cfc95e5aa236a07137a2ef8f8be70870b11c7fc4f6528a429fa7bdc5b63037
MD5 6aa499e6c2728fa84bdc2bdf9bfc80ca
BLAKE2b-256 5433d2f7f2ca62f5965f9c96319f9d5eefdacc250ed3ce21276804d66dc21d9e

See more details on using hashes here.

File details

Details for the file satellitic-0.1.20-py3-none-any.whl.

File metadata

  • Download URL: satellitic-0.1.20-py3-none-any.whl
  • Upload date:
  • Size: 49.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.12

File hashes

Hashes for satellitic-0.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 0797eaee2b44e7a581d9c3ddd4aebbaf474aad04777936189bd526f84f2acd5c
MD5 7c93fe7ba1392a77aecdd9e1d52f7393
BLAKE2b-256 bcac8202e8af776e569ca6076f997bf51a615df1e2aae7fd6a80a893ccf92c0f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page