doyBySeasons#
- geetools.ImageCollectionAccessor.doyBySeasons(band, region, seasonStart, seasonEnd, reducer='mean', dateProperty='system:time_start', scale=10000, crs=None, crsTransform=None, bestEffort=False, maxPixels=10**7, tileScale=1)#
Aggregate for each year on a single region a single band.
This method is returning a dictionary with all the years as keys and their reduced value for each day of the season over the specified region for a specific band as value. To set the start and end of the season, use the :py:method:`ee.Date.getRelative` or
time.struct_timemethod to get the day of the year.{ "year1": {"doy1": value1, "doy2": value2, ...}, "year2": {"doy1": value1, "doy2": value2, ...}, ... }
- Parameters:
band (str) – The band to reduce.
region (ee.Geometry) – The region to reduce the data on.
seasonStart (int | ee.Number) – The day of the year that marks the start of the season.
seasonEnd (int | ee.Number) – The day of the year that marks the end of the season.
reducer (str | ee.Reducer) – The name of the reducer or a reducer object to use. Default is “mean”.
dateProperty (str) – The property to use as date for each image. Default is “system:time_start”.
scale (int) – The scale in meters to use for the reduction. default is 10000m
crs (str | None) – The projection to work in. If unspecified, the projection of the image’s first band is used. If specified in addition to scale, rescaled to the specified scale.
crsTransform (list | None) – The list of CRS transform values. This is a row-major ordering of the 3x2 transform matrix. This option is mutually exclusive with ‘scale’, and replaces any transform already set on the projection.
bestEffort (bool) – If the polygon would contain too many pixels at the given scale, compute and use a larger scale which would allow the operation to succeed.
maxPixels (int | None) – The maximum number of pixels to reduce. Defaults to 1e7.
tileScale (float) – A scaling factor between 0.1 and 16 used to adjust aggregation tile size; setting a larger tileScale (e.g., 2 or 4) uses smaller tiles and may enable computations that run out of memory with the default.
- Returns:
A dictionary with the reduced values for each year and each day.
- Return type:
See also
doyByBands: Aggregate the images that occurs on the same day and then reduce each band on a single region.doyByRegions: Aggregate the images that occurs on the same day and then reduce a single band on multiple regions.doyByYears: Aggregate for each year on a single region a single band.plot_doy_by_bands: Plot the reduced data for each image in the collection by bands on a specific region.plot_doy_by_regions: Plot the reduced data for each image in the collection by regions for a single band.plot_doy_by_seasons: Plot the reduced data for each image in the collection by years for a single band.plot_doy_by_years: Plot the reduced data for each image in the collection by years for a single band.
Examples
import ee, geetools from geetools.utils import initialize_documentation initialize_documentation() collection = ( ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA") .filterBounds(ee.Geometry.Point(-122.262, 37.8719)) .filter(ee.Filter.Or( ee.Filter.date("2022-01-01", "2022-12-31"), ee.Filter.date("2016-01-01", "2016-12-31"), )) .map(lambda i: ee.Image(i).addBands( ee.Image(i) .normalizedDifference(["B5", "B4"]) .rename("NDVI") )) ) reduced = collection.geetools.doyBySeasons( band = "NDVI", region = ee.Geometry.Point(-122.262, 37.8719).buffer(1000), seasonStart = ee.Date("2016-05-01").getRelative("day", "year"), seasonEnd = ee.Date("2016-10-31").getRelative("day", "year"), reducer = "mean", dateProperty = "system:time_start", scale = 10000 ) reduced.getInfo()
{'2016': {'130': 0.4160950775662901, '146': 0.39329032676766745, '162': 0.32798277343161575, '178': 0.3579929229762581, '194': 0.36713309680948975, '210': 0.339837394867634, '226': 0.3341378873574409, '242': 0.355559207281013, '258': 0.33714390050834026, '274': 0.3175092020178191, '290': 0.3576826300116792}, '2022': {'130': 0.39201567981642593, '146': 0.07580643539212828, '162': 0.054009129745240976, '178': 0.34839430568351415, '194': 0.3355445848845227, '210': 0.10000627907209342, '226': 0.3393665149601866, '242': 0.3297845808901515, '258': 0.3376274785631656, '274': 0.2612639689943977, '290': 0.324367810839363}}