Source code for ee_extra.Image.basic

"""Image module provide functions to manipulate ee.Image.
This module mimics the functionality provided by raster R
package (Robert J. Hijmans). The following functions are
implemented:

I. Creating ee.Image objects

- unstack: Create a list of ee.Image from a ee.ImageCollection.

II. Changing the resolution of ee.Image

- flip: Flip values horizontally or vertically
- rotate: Rotate values around the date-line (for lon/lat data)
- transpose: Transpose an ee.Image object

III. Cell based computation

- reclassify: Reclassify using a 'from-to-becomes' matrix.

IV. Spatial contextual computation

- distanceFromPoints: Shortest distance to any point in a set of points
- area: Compute area of cells (for longitude/latitude data)

V. Summarizing

- cellStats: Summarize an ee.Image cell values with a function.
- summary: Summary of the values of an ee.Image object (quartiles and mean).

VI. Accessing values of ee.Image object cells

- minValue: Get the minimum value of the cells of an ee.Image object.
- maxValue: Get the maximum value of the cells of an ee.Image object.
"""

from typing import Optional

import ee


[docs]def minvalue(x: ee.Image, scale: Optional[float] = None) -> float: """Get a minimum value. Returns the minimum value of an ee.Image. The return value will be an approximation if the polygon (x.geometry()) contains too many pixels at the native scale. Args: x: An ee.Image scale: A nominal scale in meters of the projection to work in. Defaults image x$geometry()$projection()$nominalScale(). Returns: An float number describing the x (ee.Image) minimum value. Examples: >>> import ee >>> import ee_extra >>> ee.Initialize() >>> img = ee.Image.random() >>> minvalue(img) """ if scale is None: scale = x.geometry().projection().nominalScale() # Create a clean geometry i.e. geodesic = FALSE img_geom_local = x.geometry().getInfo()["coordinates"] ee_geom = ee.Geometry.Polygon( coords=img_geom_local, proj="EPSG:4326", evenOdd=True, maxError=1.0, geodesic=False, ) # get min values minval = ee.Image.reduceRegion( image=x, reducer=ee.Reducer.min(), scale=scale, geometry=ee_geom, bestEffort=True, ).getInfo() return minval
[docs]def maxvalue(x: ee.Image, scale: Optional[float] = None) -> float: """ Get a maximum value. Returns the maximum value of an ee.Image. The return value will be an approximation if the polygon (x.geometry()) contains too many pixels at the native scale. Args: x: An ee.Image. scale: A nominal scale in meters of the projection to work in. Defaults image x$geometry()$projection()$nominalScale(). Returns: An float number describing the x (ee.Image) maximum value. Examples: >>> import ee >>> import ee_extra >>> ee.Initialize() >>> img = ee.Image.random() >>> maxvalue(img) """ if scale is None: scale = x.geometry().projection().nominalScale() # Create a clean geometry i.e. geodesic = FALSE img_geom_local = x.geometry().getInfo()["coordinates"] ee_geom = ee.Geometry.Polygon( coords=img_geom_local, proj="EPSG:4326", evenOdd=True, maxError=1.0, geodesic=False, ) # get max values maxval = ee.Image.reduceRegion( image=x, reducer=ee.Reducer.max(), scale=scale, geometry=ee_geom, bestEffort=True, ).getInfo() return maxval