Skip to content
ssc-aiPublic

About

SatNet annotated image simulator using Tensorflow.

Resources

Contributing

Stars

51 stars

Watchers

3 watching

Forks

Repository files navigation

SatSim

Unit Tests

SatSim source code was developed under contract with AFRL/RDSM, and is approved for public release under Public Affairs release approval #AFRL-2022-1116.

SatSim is a GPU-accelerated synthetic data generation engine for space domain awareness scenes. It renders electro-optical imagery of resident space objects (RSOs), produces labels and metadata for detection workflows, and includes analytical RADAR and passive-RF paths for measurement simulation. Configurations are plain JSON or YAML, so a single scenario can be fixed, procedurally sampled, or generated from Python functions.

Real and SatSim-generated rate-track imagery Real Raven rate-track imagery and a SatSim-rendered counterpart, adapted from the public SatSim SPIE Defense + Commercial Sensing paper.

PANDORA wide-field synthetic imagery Synthetic PANDORA wide-field imagery generated for sensor modeling, adapted from the same paper.

What SatSim Does

  • Renders stars, RSOs, point-spread functions, sky background, dark current, shot noise, read noise, pixel response, bias, and analog-to-digital conversion.
  • Supports fast 2D image-plane targets and 3D astrometric geometry using TLE/SGP4, two-body state vectors, ephemerides, great-circle tracks, and angles-only observations.
  • Models Gaussian and POPPY physical-optics PSFs, optional turbulence, tiled rendering for large images, FITS compression, segmentation masks, and ground-truth planes.
  • Adds environmental effects including skyglow, moonlight, twilight, daytime sky brightness, and procedural cloud attenuation and glow.
  • Generates nominal, RPO, breakup, collision, Monte Carlo, and sensor-variation scenarios through $sample, $generator, $function, $pipeline, $compound, $ref, and $import.
  • Writes SatNet-style annotations, FITS image frames, annotated JPEGs, APNG movies, CZML visualizations, analytical EO observations, RADAR observations, and passive-RF TDOA/FDOA observations.
  • Can augment TensorFlow datasets by injecting synthetic targets into real imagery during training.

Quick Start

Install the released package:

pip3 install satsim

Run an EO image simulation from a JSON, .yml, or .yaml configuration:

satsim --debug INFO run --device 0 --mode eager --output_dir output/ input/config.json

Use SatSim from Python:

from satsim import gen_multi, load_json

ssp = load_json("input/config.json")
ssp["sim"]["samples"] = 50
ssp["geometry"]["obs"]["list"][0]["mv"] = 17.5

gen_multi(ssp, eager=True, output_dir="output/")

The CLI writes each run to a timestamped output directory. Typical EO products include ImageFiles/*.fits, Annotations/*.json, AnnotatedImages/*.jpg, optional segmentation TIFFs, optional ground-truth TIFF stacks, movie.png, and satsim.czml. EO, RADAR, and passive-RF runs preserve the transformed config.json; analytical products are written under AnalyticalObservations.

Documentation

About

SatNet annotated image simulator using Tensorflow.

Resources

Contributing

Stars

51 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages