satsim.generator.obs package

Submodules

satsim.generator.obs.breakup module

satsim.generator.obs.breakup.breakup_from_tle(tle, breakup_time, radius=37.5, breakup_velocity=108, n=100, target_mv_scale=[0.5, 2.0], target_mv=12.0, offset=[0.0, 0.0], breakup_time_offset=0.0, variable_brightness=True)

Generates a breakup configuration from the input tle.

Parameters:
  • tlearray, an array containing the SGP4 two line element set.

  • breakup_timearray, UCT time as year, month, day, hour, minute, seconds.

  • radiusfloat, one sigma breakup cone radius in degrees. default=37.5

  • breakup_velocityfloat, the relative velocity of generated particles in km/s. default=108

  • narray, number of particles to generate. default=100

  • target_mv_scalearray, brightness of target and total brightness of generated particles after breakup. scale based on original target brightness. default=[0.5,2.0]

  • offsetarray, row column offset of target position on fpa in normalized coordinates. default=12

  • breakup_time_offsetfloat, number of seconds to offset breakup time from breakup. default=[0,0]

  • variable_brightnessboolean, if True randomly assign sine variable brightness between 0 to 1 hz. default=True

Example usage in SatSim configuration:

"obs": {
    "generator": {
        "module": "satsim.generator.obs.breakup",
        "function": "breakup_from_tle",
        "kwargs": {
            "n": 39,
            "tle": {
                "ref": "geometry.site.track.tle"
            },
            "breakup_time": {
                "ref": "geometry.time"
            },
            "breakup_time_offset": 2.0256606954447602,
            "breakup_velocity": 0.01,
            "radius": 35.38582838190615,
            "target_mv": 7.906961060952362,
            "target_mv_scale": [
                0.8199894271217592,
                0.7148000784383131
            ],
            "offset": [
                -0.2808046122089142,
                0.05683173727181447
            ],
            "variable_brightness": false
        }
    }
}
satsim.generator.obs.breakup.collision_from_tle(tle, collision_time, radius=37.5, K=0.5, attack_angle='random', attack_velocity=None, attack_velocity_scale=1.0, n=[100, 100], target_mv_scale=[0.5, 2.0], rpo_mv_scale=[0.5, 2.0], target_mv=12.0, rpo_mv=12.0, offset=[0.0, 0.0], collision_time_offset=0.0, variable_brightness=True, fragment_angle='random', scale_fragment_velocity=False)

Generates a two object collision configuration from the input tle.

Parameters:
  • tlearray, an array containing the SGP4 two line element set.

  • collision_timearray, UCT time as year, month, day, hour, minute, seconds.

  • radiusfloat, one sigma breakup cone radius in degrees. default=37.5

  • Karray or `float, one sigma velocity transfer multiplier from colliding object. default=0.5

  • attack_anglestring, random or retrograde. default=’random’

  • attack_velocityfloat, the relative velocity magnitude of colliding object in km/s, if None then make equal to target velocity magnitude. default=None

  • attack_velocity_scalefloat, scale attack_velocity by this number. default=1.0

  • narray, number of particles to generate from target and colliding object. default=[100,100]

  • target_mv_scalearray, brightness of target and total brightness of generated particles after collision. scale based on original target brightness. default=[0.5,2.0]

  • rpo_mv_scalearray, brightness of colliding target and total brightness of generated particles after collision. scale based on original colliding target brightness. default=[0.5,2.0]

  • target_mvfloat, brightness of target before collision in visual magnitude. default=12

  • rpo_mvfloat, brightness of colliding object before collision in visual magnitude. default=12

  • offsetarray, row column offset of target position on fpa in normalized coordinates. default=[0,0]

  • collision_time_offsetfloat, number of seconds to offset collision time from collision_time. default=0

  • variable_brightnessboolean, if True randomly assign sine variable brightness between 0 to 1 hz. default=True

  • fragment_anglestring, specified the fragment angle sampling. random or linspace. default=`random`

  • scale_fragment_velocityboolean, if True scale the fragment velocity by cosine of the exit velocity. default=`false`

Example usage in SatSim configuration:

"obs": {
    "generator": {
        "module": "satsim.generator.obs.breakup",
        "function": "collision_from_tle",
        "kwargs": {
            "n": [
                237,
                122
            ],
            "tle": {
                "ref": "geometry.site.track.tle"
            },
            "collision_time": {
                "ref": "geometry.time"
            },
            "collision_time_offset": 1.1863922763597272,
            "K": 0.2717057721240569,
            "attack_angle": "random",
            "attack_velocity_scale": 0.2050451649939875,
            "radius": 24.32114494260032,
            "target_mv": 8.455948844613438,
            "rpo_mv": 8.507130983802519,
            "target_mv_scale": [
                0.09979647598905288,
                1.1819183509832407
            ],
            "rpo_mv_scale": [
                0.26064801046837316,
                1.2893265228436015
            ],
            "offset": [
                0.1736509022094605,
                0.22670133968196546
            ],
            "variable_brightness": true
        }
    }
}

satsim.generator.obs.cso module

satsim.generator.obs.cso.one(origin=[0.5, 0.5], velocity=[0.0, 0.0], mv=[15.0, 16.0], separation=0.01)

Generates two objects that are spaced by separation.

Parameters:
  • originarray, row and column coordinate in normalized image space

  • velocityarray, row and column velocity in pixel per second

  • mvarray, brightness of object 1 and object 2

  • separationfloat, distance between object in normalized image space

Example usage in SatSim configuration:

"obs": {
    "mode": "list",
    "sample": "random.list",
    "length":
        { "sample": "random.randint", "low": 0, "high": 15 },
    "list": {
        "generator": {
            "module": "satsim.generator.obs.cso",
            "function": "one",
            "kwargs": {
                "origin": [
                    { "sample": "random.uniform", "low": 0.05, "high": 0.95 },
                    { "sample": "random.uniform", "low": 0.05, "high": 0.95 }
                ],
                "velocity": [
                    { "sample": "random.uniform", "low": -1.0, "high": 1.0 },
                    { "sample": "random.uniform", "low": -1.0, "high": 1.0 }
                ],
                "mv": [
                    { "sample": "random.uniform", "low": 12.5, "high": 15.5 },
                    { "sample": "random.uniform", "low": 12.5, "high": 15.5 }
                ],
                "separation":
                    { "sample": "random.uniform", "low": -0.02, "high": 0.02 }
            }
        }
    }
}

satsim.generator.obs.geometry module

satsim.generator.obs.geometry.circle(n=10, origin=[0.5, 0.5], velocity=0.01, mv=1.0, t=0.0)

Generates objects that emanate from a point at equal angles.

Parameters:
  • nint, number of objects

  • originarray, row and column coordinate in normalized image space

  • velocityfloat, velocity in pixel per second

  • mvfloat, brightness of each object

  • tt, seconds elapsed from epoch

Example usage in SatSim configuration:

"obs": {
    "generator": {
        "module": "satsim.generator.obs.geometry",
        "function": "circle",
        "kwargs": {
            "n": 100,
            "t": 0,
            "velocity": 1.0
            "origin": [0.5, 0.5],
            "mv": 15.0
        }
    }
}
satsim.generator.obs.geometry.cone(n=10, origin=[0.5, 0.5], velocity=[3.0, 5.0], direction=[0.0, 15.0], mv=[10.0, 16.0], t=0.0, target_mv=15.0, rpo_mv=15.0, collision_time=30.0)

Generates objects that emanate from a point in a random normal distribution about angle direction[0].

Parameters:
  • nint, number of objects

  • originarray, row and column coordinate in normalized image space

  • velocityarray, mean velocity and sigma expressed as velocity[0] / velocity[1] of normal distribution in pixel per second

  • directionarray, mean direction and sigma of normal distribution in degrees

  • mvarray, min and max visual magnitude of a uniform distribution

  • tt, seconds elapsed from epoch

Example usage in SatSim configuration:

"obs": {
    "generator": {
        "module": "satsim.generator.obs.geometry",
        "function": "cone",
        "kwargs": {
            "n": { "sample": "random.randint", "low": 500, "high": 1000 },
            "t": 0,
            "origin": [
                { "sample": "random.uniform", "low": 0.2, "high": 0.8 },
                { "sample": "random.uniform", "low": 0.2, "high": 0.8 }],
            "direction": [
                { "sample": "random.uniform", "low": 0, "high": 360 },
                { "sample": "random.uniform", "low": 10, "high": 30 }],
            "velocity": [
                { "sample": "random.uniform", "low": 1.0, "high": 5.0},
                { "sample": "random.uniform", "low": 3.0, "high": 5.0 }],
            "mv": [15.0, 17.0]
        }
    }
}
satsim.generator.obs.geometry.sphere(n=10, origin=[0.5, 0.5], velocity=[0.01, 5.0], mv=[10.0, 16.0], t=0.0)

Generates objects that emanate from a point at random angles.

Parameters:
  • nint, number of objects

  • originarray, row and column coordinate in normalized image space

  • velocityarray, mean velocity and sigma of a normal distribution in pixel per second

  • mvarray, min and max visual magnitude of a uniform distribution

  • tt, seconds elapsed from epoch

Example usage in SatSim configuration:

"obs": {
    "generator": {
        "module": "satsim.generator.obs.geometry",
        "function": "sphere",
        "kwargs": {
            "n": { "sample": "random.randint", "low": 500, "high": 1000 },
            "t": 0,
            "origin": [
                { "sample": "random.uniform", "low": 0.2, "high": 0.8 },
                { "sample": "random.uniform", "low": 0.2, "high": 0.8 }],
            "velocity": [
                { "sample": "random.uniform", "low": 0.0, "high": 1.0},
                { "sample": "random.uniform", "low": 3.0, "high": 10.0 }],
            "mv": [15.0, 17.0]
        }
    }
}

satsim.generator.obs.io module

satsim.generator.obs.io.tle_file(filename, lines=3, mv=[10.0, 16.0])

Generates SGP4 objects from a tle file.

Parameters:
  • filenamestr, path to file

  • linesint, number of lines per object. 2 or 3.

  • mvarray, min and max brightness from uniform distribution

Example usage in SatSim configuration:

"obs": {
    "generator": {
        "module": "satsim.generator.obs.io",
        "function": "tle_file",
        "kwargs": {
            "filename": "./tle.txt",
            "lines": 2,
            "mv": [10.0, 15.0]
        }
    }
}

satsim.generator.obs.rpo module

satsim.generator.obs.rpo.rpo_from_tle(tle, epoch, delta_distance=5, delta_position_direction='random', delta_velocity=0, delta_velocity_direction='random', target_mv=12.0, rpo_mv=12.0, offset=[0.0, 0.0])

Generates an rpo from the input tle.

Parameters:
  • tlearray, an array containing the SGP4 two line element set.

  • epocharray, UCT time as year, month, day, hour, minute, seconds.

  • delta_distancefloat, distance to position rpo away from target in km. default=5

  • delta_position_directionstring or array, “random” or [x,y,z] direction vector. default=”random”

  • delta_velocityfloat, delta velocity between target and rpo in km/s. default=0

  • delta_velocity_directionstring or array, “random” or [x,y,z] direction vector. default=”random”

  • target_mvfloat, brightness of target before collision in visual magnitude. default=12

  • rpo_mvfloat, brightness of colliding object before collision in visual magnitude. default=12

  • offsetarray, row column offset of target position on fpa in normalized coordinates. default=[0,0]

Example usage in SatSim configuration:

"obs": {
    "generator": {
        "module": "satsim.generator.obs.rpo",
        "function": "rpo_from_tle",
        "kwargs": {
            "tle": {
                "ref": "geometry.site.track.tle"
            },
            "epoch": {
                "ref": "geometry.time"
            },
            "delta_distance": 1.5,
            "delta_position_direction": [0, 1, 0],
            "delta_velocity": 0.001,
            "delta_velocity_direction": "random",
            "target_mv": 12.0,
            "rpo_mv": 15.0,
            "offset": [
                0.1736509022094605,
                0.22670133968196546
            ]
        }
    }
}