Provides an example script for use in Earth Engine, as a preceeding step
to using the irg
package. Use the script to sample NDVI in Earth
Engine, then use the irg
package to calculate the instantaneous rate of green-up.
use_example_ee_script(sensor = "MODIS", filepath = NULL, overwrite = FALSE)
either 'MODIS' or 'Landsat'
file path relative to current working director, indicating where to save the example script. default is NULL, simply printing lines to the console.
boolean indicating if the file should overwrite existing files. default is FALSE.
use_example_ee_script
prints an example NDVI extraction script or
if filepath
is provided, saves it at the location specified.
library(irg)
use_example_ee_script(sensor = 'MODIS')
#> // Sample NDVI for IRG - MODIS MOD13Q1
#> // Example from irg package https://github.com/robitalec/irg
#> // Alec L. Robitaille
#>
#> // Functions ===================================================================
#> function rescaleBands (im) {
#> var viBands = im.select(['NDVI', 'EVI']).multiply(0.0001);
#> var surfBands = im.select('sur_refl_b0.*').multiply(0.0001);
#> var viewBands = im.select(['ViewZenith', 'SolarZenith', 'RelativeAzimuth']).multiply(0.01);
#>
#> return(im.addBands(viBands, null, true)
#> .addBands(surfBands, null, true)
#> .addBands(viewBands, null, true));
#> }
#>
#> // Function to grab year from image and add it as a band
#> function addYear(img) {
#> return(img.addBands(ee.Image(img.date().get('year')).rename('yr')));
#> }
#>
#> // Function to sample an image in each region of supplied geometry
#> function sampleRegions (im) {
#> return(im.reduceRegions(features, ee.Reducer.mean(), 250)
#> .copyProperties(im));
#> }
#>
#>
#>
#> // Feature ====================================================================
#> var features = ee.FeatureCollection(
#> [ee.Feature(ee.Geometry.Point([-109.96, 53.853]),
#> {"id": "0"}),
#> ee.Feature(ee.Geometry.Point([-109.94, 53.852]),
#> {"id": "1"}),
#> ee.Feature(ee.Geometry.Point([-109.95, 53.851]),
#> {"id": "2"}),
#> ee.Feature(ee.Geometry.Point([-109.93, 53.854]),
#> {"id": "3"}),
#> ee.Feature(ee.Geometry.Point([-109.92, 53.853]),
#> {"id": "4"}),
#> ee.Feature(ee.Geometry.Point([-109.94, 53.852]),
#> {"id": "5"}),
#> ee.Feature(ee.Geometry.Point([-109.93, 53.851]),
#> {"id": "6"})]);
#>
#>
#> // Images ======================================================================
#> var modis = ee.ImageCollection('MODIS/006/MOD13Q1');
#>
#>
#>
#> // Filter ======================================================================
#> modis = modis.filterDate('2015-01-01', '2020-01-01')
#> .filterBounds(features);
#>
#>
#>
#> // Process images ==============================================================
#> // Add dates
#> modis = modis.map(addYear)
#> .map(rescaleBands);
#>
#>
#>
#> // Sample images ===============================================================
#> var sample = modis.map(sampleRegions)
#> .flatten()
#> .filter(ee.Filter.neq('NDVI', null));
#>
#>
#>
#> // Export ======================================================================
#> Export.table.toDrive({
#> collection: sample,
#> description: 'sampled-ndvi-MODIS-MOD13Q1',
#> selectors: ['id', 'NDVI', 'SummaryQA', 'DayOfYear', 'yr']
#> });