Skip to content

earthlib.Scale

Methods for scaling image data to normalized reflectance values (0-1 float)

ASTER(image)

Transform ASTER image data to scaled reflectance values

Source code in earthlib/Scale.py
93
94
95
96
97
def ASTER(image: ee.Image) -> ee.Image:
    """Transform ASTER image data to scaled reflectance values"""
    sensor = "ASTER"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

AVNIR2(image)

Transform ALOS-AVNIR2 image data to scaled reflectance values

Source code in earthlib/Scale.py
100
101
102
103
104
def AVNIR2(image: ee.Image) -> ee.Image:
    """Transform ALOS-AVNIR2 image data to scaled reflectance values"""
    sensor = "AVNIR2"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

DoveR(image)

Transform Planet Dove-R image data to scaled reflectance values

Source code in earthlib/Scale.py
114
115
116
117
118
def DoveR(image: ee.Image) -> ee.Image:
    """Transform Planet Dove-R image data to scaled reflectance values"""
    sensor = "DoveR"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

Landsat4(image)

Transform Landsat4 image data to scaled reflectance values

Source code in earthlib/Scale.py
44
45
46
47
48
def Landsat4(image: ee.Image) -> ee.Image:
    """Transform Landsat4 image data to scaled reflectance values"""
    sensor = "Landsat4"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

Landsat5(image)

Transform Landsat5 image data to scaled reflectance values

Source code in earthlib/Scale.py
51
52
53
54
55
def Landsat5(image: ee.Image) -> ee.Image:
    """Transform Landsat5 image data to scaled reflectance values"""
    sensor = "Landsat5"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

Landsat7(image)

Transform Landsat7 image data to scaled reflectance values

Source code in earthlib/Scale.py
58
59
60
61
62
def Landsat7(image: ee.Image) -> ee.Image:
    """Transform Landsat7 image data to scaled reflectance values"""
    sensor = "Landsat7"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

Landsat8(image)

Transform Landsat8 image data to scaled reflectance values

Source code in earthlib/Scale.py
65
66
67
68
69
def Landsat8(image: ee.Image) -> ee.Image:
    """Transform Landsat8 image data to scaled reflectance values"""
    sensor = "Landsat8"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

MODIS(image)

Transform MODIS image data to scaled reflectance values

Source code in earthlib/Scale.py
79
80
81
82
83
def MODIS(image: ee.Image) -> ee.Image:
    """Transform MODIS image data to scaled reflectance values"""
    sensor = "MODIS"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

NEON(image)

Transform NEON image data to scaled reflectance values

Source code in earthlib/Scale.py
107
108
109
110
111
def NEON(image: ee.Image) -> ee.Image:
    """Transform NEON image data to scaled reflectance values"""
    sensor = "NEON"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

PlanetScope(image)

Transform PlanetScope image data to scaled reflectance values

Source code in earthlib/Scale.py
128
129
130
131
132
def PlanetScope(image: ee.Image) -> ee.Image:
    """Transform PlanetScope image data to scaled reflectance values"""
    sensor = "PlanetScope"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

Sentinel2(image)

Transform Sentinel2 image data to scaled reflectance values

Source code in earthlib/Scale.py
72
73
74
75
76
def Sentinel2(image: ee.Image) -> ee.Image:
    """Transform Sentinel2 image data to scaled reflectance values"""
    sensor = "Sentinel2"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

SuperDove(image)

Transform Planet SuperDove image data to scaled reflectance values

Source code in earthlib/Scale.py
121
122
123
124
125
def SuperDove(image: ee.Image) -> ee.Image:
    """Transform Planet SuperDove image data to scaled reflectance values"""
    sensor = "SuperDove"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

VIIRS(image)

Transform VIIRS image data to scaled reflectance values

Source code in earthlib/Scale.py
86
87
88
89
90
def VIIRS(image: ee.Image) -> ee.Image:
    """Transform VIIRS image data to scaled reflectance values"""
    sensor = "VIIRS"
    scale, offset = getScaleParams(sensor)
    return scaleWrapper(image, scale, offset)

bySensor(sensor)

Returns the appropriate scaling function to use by sensor type.

Parameters:

Name Type Description Default
sensor str

string with the sensor name to return (e.g. "Landsat8", "Sentinel2").

required

Returns:

Type Description
Callable

the scale function associated with a sensor to pass to an ee .map() call

Source code in earthlib/Scale.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
def bySensor(sensor: str) -> Callable:
    """Returns the appropriate scaling function to use by sensor type.

    Args:
        sensor: string with the sensor name to return (e.g. "Landsat8", "Sentinel2").

    Returns:
        the scale function associated with a sensor to pass to an ee .map() call
    """
    lookup = {
        "ASTER": ASTER,
        "AVNIR2": AVNIR2,
        "DoveR": DoveR,
        "Landsat4": Landsat4,
        "Landsat5": Landsat5,
        "Landsat7": Landsat7,
        "Landsat8": Landsat8,
        "MODIS": MODIS,
        "NEON": NEON,
        "PlanetScope": PlanetScope,
        "Sentinel2": Sentinel2,
        "SuperDove": SuperDove,
        "VIIRS": VIIRS,
    }
    try:
        function = lookup[sensor]
        return function
    except KeyError:
        supported = ", ".join(lookup.keys())
        raise SensorError(
            f"Scaling adjustment not supported for '{sensor}'. Supported: {supported}"
        )

getScaleParams(sensor)

Look-up the scale and offset values for a sensor

Source code in earthlib/Scale.py
135
136
137
138
139
def getScaleParams(sensor: str) -> tuple:
    """Look-up the scale and offset values for a sensor"""
    scale = collections[sensor].get("scale", 1)
    offset = collections[sensor].get("offset", 0)
    return scale, offset

scaleWrapper(image, scale=1, offset=0)

Apply image rescaling and offset adjustments

Parameters:

Name Type Description Default
image Image

the input image object

required
scale float

the image rescaling factor

1
offset float

the image offset factor

0

Returns:

Type Description
Image

the input rescaled as a 0-1 floating point image

Source code in earthlib/Scale.py
142
143
144
145
146
147
148
149
150
151
152
153
154
def scaleWrapper(image: ee.Image, scale: float = 1, offset: float = 0) -> ee.Image:
    """Apply image rescaling and offset adjustments

    Args:
        image: the input image object
        scale: the image rescaling factor
        offset: the image offset factor

    Returns:
        the input rescaled as a 0-1 floating point image
    """
    scaled = image.multiply(scale).add(offset)
    return scaled.toFloat()