Main Content

GroundStation

Ground station object belonging to satellite scenario

Since R2021a

    Description

    The GroundStation object defines a ground station object belonging to a satellite scenario.

    Creation

    You can create GroundStation object using the groundStation object function of the satelliteScenario object.

    Properties

    expand all

    You can set this property only when calling the groundStation function. After you call groundStation function, this property is read-only.

    GroundStation name, specified as a comma-separated pair consisting of 'Name' and a string scalar, string vector, character vector or a cell array of character vectors.

    • If only one GroundStation is added, specify Name as a string scalar or a character vector.

    • If multiple GroundStations are added, specify Name as a string scalar, character vector, string vector or a cell array of character vectors. All GroundStations added as a string scalar or a character vector are assigned the same specified name. The number of elements in the string vector or cell array of character vector must equal the number of GroundStations being added. Each GroundStation is assigned the corresponding name from the vector or cell array.

    In the default value, idx is the ID assigned by satellite scenario.

    Data Types: char | string

    This property is set internally by the simulator and is read-only.

    GroundStation ID assigned by the simulator, specified as a positive scalar.

    You can set this property only when calling GroundStation. After you call GroundStation, this property is read-only.

    Geodetic latitude of ground stations, specified as a scalar. Values must be in the range [-90, 90].

    • If you add only one ground station, specify Latitude as a scalar double.

    • If you add multiple ground stations, specify Latitude as a vector double whose length is equal to the number of ground stations being added.

    When latitude and longitude are specified as lat, lon inputs to GroundStation, Latitude specified as a name-value argument takes precedence.

    Data Types: double

    You can set this property only when calling GroundStation. After you call GroundStation, this property is read-only.

    Geodetic longitude of ground stations, specified as a scalar or a vector. Values must be in the range [-180, 180].

    • If you add only one ground station, specify longitude as a scalar.

    • If you add multiple ground stations, specify longitude as a vector whose length is equal to the number of ground stations being added.

    When longitude and longitude are specified as lat, lon inputs to GroundStation, longitude specified as a name-value argument takes precedence.

    Data Types: double

    You can set this property only when calling GroundStation. After you call GroundStation, this property is read-only.

    Altitude of ground stations, specified as a scalar or a vector.

    • If you specify Altitude as a scalar, the value is assigned to each ground station in the GroundStation.

    • If you specify Altitude as a vector, the vector length must be equal to the number of ground stations in the GroundStation.

    When latitude and longitude are specified as lat, lon inputs to GroundStation, Latitude specified as a name-value argument takes precedence.

    Data Types: double

    You can set this property only when calling coordinateAxes. After you call coordinateAxes, this property is read-only.

    Coordinate axes triad graphic object, specified as CoordinateAxes object.

    Minimum elevation angle of a satellite for the satellite to be visible from the ground station, and for the ground station to be visible from the satellite in degrees, specified as a scalar or row vector. Values must be in the range [–90, 90]. For access and link closure to be possible, the elevation angle must be at least equal to the value specified in MinElevationAngle.

    • If you specify MinElevationAngle as a scalar, the value is assigned to each ground station in the GroundStation.

    • If you specify MinElevationAngle as a vector, the vector length must be equal to the number of ground stations in the GroundStation.

    When the AutoSimulate property of the satellite scenario is false, MinElevationAngle property can be modified while the SimulationStatus is NotStarted or InProgress.

    Data Types: double

    You can set this property only when calling access. After you call access, this property is read-only.

    Access analysis objects, specified as a row vector of Access objects.

    You can set this property only when calling eclipse. After you call access, this property is read-only.

    Eclipse analysis object, specified as an empty or a scalar Eclipse object.

    You can set this property only when calling the conicalSensor. After you call the conicalSensor function, this property is read-only.

    Conical sensors attached to the GroundStation, specified as a row vector of conical sensors.

    You can set this property only when calling gimbal. After you call gimbal, this property is read-only.

    Gimbals attached to the GroundStation, specified as the comma-separated pair consisting of 'Gimbals' and a row vector of Gimbal objects.

    Color of the marker, specified as a comma-separated pair consisting of 'MarkerColor' and either an RGB triplet or a string or character vector of a color name.

    For a custom color, specify an RGB triplet or a hexadecimal color code.

    • An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1], for example, [0.4 0.6 0.7].

    • A hexadecimal color code is a string scalar or character vector that starts with a hash symbol (#) followed by three or six hexadecimal digits, which can range from 0 to F. The values are not case sensitive. Therefore, the color codes "#FF8800", "#ff8800", "#F80", and "#f80" are equivalent.

    Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.

    Color NameShort NameRGB TripletHexadecimal Color CodeAppearance
    "red" "r" [1 0 0] "#FF0000"

    Sample of the color red

    "green" "g" [0 1 0] "#00FF00"

    Sample of the color green

    "blue" "b" [0 0 1] "#0000FF"

    Sample of the color blue

    "cyan" "c" [0 1 1] "#00FFFF"

    Sample of the color cyan

    "magenta" "m" [1 0 1] "#FF00FF"

    Sample of the color magenta

    "yellow" "y" [1 1 0] "#FFFF00"

    Sample of the color yellow

    "black" "k" [0 0 0] "#000000"

    Sample of the color black

    "white" "w" [1 1 1] "#FFFFFF"

    Sample of the color white

    Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB® uses in many types of plots.

    RGB TripletHexadecimal Color CodeAppearance
    [0 0.4470 0.7410] "#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980] "#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250] "#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560] "#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880] "#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330] "#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840] "#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

    Size of the marker, specified as a comma-separated pair consisting of 'MarkerSize' and a real positive scalar less than 30. The unit is in pixels.

    State of GroundStation label visibility, specified as a comma-separated pair consisting of 'ShowLabel' and numerical or logical value of 1 (true) or 0 (false).

    Data Types: logical

    Font size of the GroundStation label, specified as a comma-separated pair consisting of 'LabelFontSize' and a positive scalar in the range [6 30].

    Font color of the GroundStation label, specified as a comma-separated pair consisting of 'LabelFontColor' and either an RGB triplet or a string or character vector of a color name.

    For a custom color, specify an RGB triplet or a hexadecimal color code.

    • An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1], for example, [0.4 0.6 0.7].

    • A hexadecimal color code is a string scalar or character vector that starts with a hash symbol (#) followed by three or six hexadecimal digits, which can range from 0 to F. The values are not case sensitive. Therefore, the color codes "#FF8800", "#ff8800", "#F80", and "#f80" are equivalent.

    Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.

    Color NameShort NameRGB TripletHexadecimal Color CodeAppearance
    "red" "r" [1 0 0] "#FF0000"

    Sample of the color red

    "green" "g" [0 1 0] "#00FF00"

    Sample of the color green

    "blue" "b" [0 0 1] "#0000FF"

    Sample of the color blue

    "cyan" "c" [0 1 1] "#00FFFF"

    Sample of the color cyan

    "magenta" "m" [1 0 1] "#FF00FF"

    Sample of the color magenta

    "yellow" "y" [1 1 0] "#FFFF00"

    Sample of the color yellow

    "black" "k" [0 0 0] "#000000"

    Sample of the color black

    "white" "w" [1 1 1] "#FFFFFF"

    Sample of the color white

    Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.

    RGB TripletHexadecimal Color CodeAppearance
    [0 0.4470 0.7410] "#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980] "#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250] "#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560] "#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880] "#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330] "#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840] "#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

    Object Functions

    accessAdd access analysis objects to satellite scenario
    conicalSensorAdd conical sensor to satellite scenario
    gimbalAdd gimbal to satellite, platform, or ground station
    coordinateAxesVisualize coordinate axes triad of satellite scenario assets
    eclipseAdd eclipse analysis object to satellite, ground station, or platform
    showShow object in satellite scenario viewer
    aerCalculate azimuth angle, elevation angle, and range of another satellite or ground station in NED frame
    hideHide satellite scenario entity from viewer

    Examples

    collapse all

    Create a satellite scenario and add ground stations from latitudes and longitudes.

    startTime = datetime(2020,5,1,11,36,0);
    stopTime = startTime + days(1);
    sampleTime = 60;
    sc = satelliteScenario(startTime,stopTime,sampleTime);
    lat = 10;
    lon = -30;
    gs = groundStation(sc,lat,lon);

    Add satellites using Keplerian elements.

    semiMajorAxis = 10000000;
    eccentricity = 0;
    inclination = 10; 
    rightAscensionOfAscendingNode = 0; 
    argumentOfPeriapsis = 0; 
    trueAnomaly = 0; 
    sat = satellite(sc,semiMajorAxis,eccentricity,inclination, ...
            rightAscensionOfAscendingNode,argumentOfPeriapsis,trueAnomaly);

    Add access analysis to the scenario and obtain the table of intervals of access between the satellite and the ground station.

    ac = access(sat,gs);
    intvls = accessIntervals(ac)
    intvls=8×8 table
           Source              Target          IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
        _____________    __________________    ______________    ____________________    ____________________    ________    __________    ________
    
        "Satellite 2"    "Ground station 1"          1           01-May-2020 11:36:00    01-May-2020 12:04:00      1680          1            1    
        "Satellite 2"    "Ground station 1"          2           01-May-2020 14:20:00    01-May-2020 15:11:00      3060          1            2    
        "Satellite 2"    "Ground station 1"          3           01-May-2020 17:27:00    01-May-2020 18:18:00      3060          3            3    
        "Satellite 2"    "Ground station 1"          4           01-May-2020 20:34:00    01-May-2020 21:25:00      3060          4            4    
        "Satellite 2"    "Ground station 1"          5           01-May-2020 23:41:00    02-May-2020 00:32:00      3060          5            5    
        "Satellite 2"    "Ground station 1"          6           02-May-2020 02:50:00    02-May-2020 03:39:00      2940          6            6    
        "Satellite 2"    "Ground station 1"          7           02-May-2020 05:59:00    02-May-2020 06:47:00      2880          7            7    
        "Satellite 2"    "Ground station 1"          8           02-May-2020 09:06:00    02-May-2020 09:56:00      3000          8            9    
    
    

    Play the scenario to visualize the ground stations.

    play(sc)

    Version History

    Introduced in R2021a