AI-generated Key Takeaways
-
The
ee.Filter.calendarRangefunction returns a filter for timestamps within a calendar field range. -
Calendar fields like month and day are 1-based, and times are assumed to be in UTC.
-
A wrapping range is supported where the end value is less than the start value.
-
The preferred methods for filtering by whole years and day of year are
ee.Filter.dateandee.Filter.dayOfYear, respectively, due to performance.
month
, day_of_year
, day_of_month
, and day_of_week
are 1-based. Times are assumed to be in UTC. Weeks are assumed to begin on Monday as day 1. If end
< start
then this tests for value
>= start
OR value
<= end
, to allow for wrapping. | Usage | Returns |
|---|---|
ee.Filter.calendarRange(start, end
, field
)
|
Filter |
| Argument | Type | Details |
|---|---|---|
start
|
Integer | The start of the desired calendar field, inclusive. |
end
|
Integer, default: null | The end of the desired calendar field, inclusive. Defaults to the same value as start. |
field
|
String, default: "day_of_year" | The calendar field to filter over. Options are: `year`, `month`, `hour`, `minute`, `day_of_year`, `day_of_month`, and `day_of_week`. |
Examples
Code Editor (JavaScript)
// A Sentinel-2 surface reflectance image collection intersecting the peak of // Mount Shasta, California, USA. var ic = ee . ImageCollection ( 'COPERNICUS/S2_SR' ) . filterBounds ( ee . Geometry . Point ( - 122.196 , 41.411 )); print ( 'Images for a month range (June-August)' , ic . filter ( ee . Filter . calendarRange ( 6 , 8 , 'month' ))); print ( 'A start value greater than end value is valid (Dec-Feb)' , ic . filter ( ee . Filter . calendarRange ( 12 , 2 , 'month' ))); // This example uses the 'year' field value. Note that ee.Filter.date is the // preferred method when filtering by whole years, as it is much faster. print ( 'Images for a year range (2020-2021)' , ic . filter ( ee . Filter . calendarRange ( 2020 , 2021 , 'year' ))); // This example uses the 'day_of_year' field value. Note that // ee.Filter.dayOfYear is the preferred method for filtering by DOY. // The ee.Date.getRelative function is used to identify DOY from an ee.Date // object for a representative year. Be mindful of leap years when filtering // by DOY. var startDoy = ee . Date ( '2000-06-01' ). getRelative ( 'day' , 'year' ); var endDoy = ee . Date ( '2000-06-15' ). getRelative ( 'day' , 'year' ); print ( 'start DOY =' , startDoy , 'end DOY =' , endDoy , 'Images for a day-of-year range' , ic . filter ( ee . Filter . calendarRange ( startDoy , endDoy , 'day_of_year' )));
import ee import geemap.core as geemap
Colab (Python)
# A Sentinel-2 surface reflectance image collection intersecting the peak of # Mount Shasta, California, USA. ic = ee . ImageCollection ( 'COPERNICUS/S2_SR' ) . filterBounds ( ee . Geometry . Point ( - 122.196 , 41.411 )) display ( 'Images for a month range (June-August):' , ic . filter ( ee . Filter . calendarRange ( 6 , 8 , 'month' ))) display ( 'A start value greater than end value is valid (Dec-Feb):' , ic . filter ( ee . Filter . calendarRange ( 12 , 2 , 'month' )) . size ()) # This example uses the 'year' field value. Note that ee.Filter.date is the # preferred method when filtering by whole years, as it is much faster. display ( 'Images for a year range (2020-2021):' , ic . filter ( ee . Filter . calendarRange ( 2020 , 2021 , 'year' )) . size ()) # This example uses the 'day_of_year' field value. Note that # ee.Filter.dayOfYear is the preferred method for filtering by DOY. # The ee.Date.getRelative function is used to identify DOY from an ee.Date # object for a representative year. Be mindful of leap years when filtering # by DOY. start_doy = ee . Date ( '2000-06-01' ) . getRelative ( 'day' , 'year' ) end_doy = ee . Date ( '2000-06-15' ) . getRelative ( 'day' , 'year' ) display ( 'start DOY =' , start_doy , 'end DOY =' , end_doy ) display ( 'Images for a day-of-year range:' , ic . filter ( ee . Filter . calendarRange ( start_doy , end_doy , 'day_of_year' )) )

