samapriya/awesome-gee-community-datasets

[Dataset Title/Name]: A high spatial resolution Extended Spring Indices database

Closed this issue · 1 comments

Contact Details

emma.izquierdo@boku.ac.at

Dataset description

Study areas

At the present, the 1 km SI-x products are available over two study areas:

  • North and Central America (located between 14°02'31.3"N and 55°37'04.1"N latitude and 56°05'50.7"W 126°22'06.1"W longitude). Daymet version 4 from 1980 to 2022, was used to generate this dataset. The daily maximunim and minimum temperature and daylength are available in GEE. These SI-x products are an updated version of those presented in Izquierdo-Verdiguier et al.
  • Europe (located between 35°55'48.7"N and 73°32'47.1"N latitude and 10°36'29.5"W and 44°50'29.5"E longitude). The daily maximum and minimum temperature come from the Downscaled version of European Observations (E-OBS) version 3 from 1950 to 2020, which is available for download here. The daylength is calculated (modelled) once the data are ingested in GEE (ingested because this data is not directly available in GEE).
First Leaf index over contiguous US First Leaf index over Europe
Europe
America

If you use the data, please cite: Izquierdo-Verdiguier, E., and Zurita-Milla, R. "A multi-decadal 1 km gridded database of continental-scale spring onset products:. Sci Data 11, 905 (2024).

Earth Engine Snippet if dataset already in GEE

function linspace(a,b,n) {
    if(typeof n === "undefined") n = Math.max(Math.round(b-a)+1,1);
    if(n<2) { return n===1?[a]:[]; }
    var i,ret = Array(n);
    n--;
    for(i=n;i>=0;i--) { ret[i] = (i*b+(n-i)*a)/n; }
    return ret;
}

var lf_eu = ee.ImageCollection('users/Emma/SIx_products/LeafEuropev3')
.map(function(img){return img.mask(img.neq(0)).select([3],['leaf']).copyProperties(img)});
var bl_eu = ee.ImageCollection('users/Emma/SIx_products/BloomEuropev3')
.map(function(img){return img.mask(img.neq(0)).select([3],['bloom']).copyProperties(img)});
var di_am = ee.ImageCollection('users/Emma/SIx_products/DI_Daymetv4')
.map(function(img){return img.select([3],['damage']).copyProperties(img)});
var di_er = ee.ImageCollection('users/Emma/SIx_products/DI_Europev3')
.map(function(img){return img.select([3],['damage']).copyProperties(img)});

var yrs = linspace(1950,2022,73);

function compositeAreas(yr){
var image = ee.Image(ee.ImageCollection('users/Emma/SIx_products/LeafDaymetv4')
  .filter(ee.Filter.eq('system:index',yr.toString())).select('leaf').first());

var image2 = ee.Image(lf_eu.filter(ee.Filter.eq('system:index',yr.toString())).first());

var image3 = ee.Image(ee.ImageCollection('users/Emma/SIx_products/BloomDaymetv4')
  .filter(ee.Filter.eq('system:index',yr.toString())).select('bloom').first());

var image4 = ee.Image(bl_eu.filter(ee.Filter.eq('system:index',yr.toString())).first());
  
var image5 = ee.Image(di_am.filter(ee.Filter.eq('system:index',yr.toString())).first());

var image6 = ee.Image(di_er.filter(ee.Filter.eq('system:index',yr.toString())).first());

var final = ee.ImageCollection([image,image2]).mosaic()
.addBands(ee.ImageCollection([image3,image4]).mosaic())
.addBands(ee.ImageCollection([image5,image6]).mosaic());
return final.set('year',yr);
}

var pheno = ee.ImageCollection(yrs.map(compositeAreas));
print(pheno);

var vis_vi1 = {bands:['leaf'],min:0 , max: 250, palette:["af0000","eb1e00","ff6400","ffb300","ffeb00","9beb4a","33db80","00b4ff","0064ff","000096"]};
Map.addLayer(pheno,vis_vi1,'Leaf');

var vis_vi2 = {bands:['bloom'],min:0, max: 250, palette:["af0000","eb1e00","ff6400","ffb300","ffeb00","9beb4a","33db80","00b4ff","0064ff","000096"]};
Map.addLayer(pheno,vis_vi2,'Bloom');

var vis_vi3 = {bands:['damage'],min:-150 , max: 150, palette:["ff3636","ff7b71","ffafaf","ffe8de","ffffff","dae4ff","b1c5ff","6d93ff","3e70ff"]};
Map.addLayer(pheno,vis_vi3,'DI');

Enter license information

CC BY-NC 4.0

Keywords

spring onset, phenology, climate change

Code of Conduct

  • I agree to follow this project's Code of Conduct

This has been completed @EIzquierdo
I also copied over the collections in case that is useful. Thank you for contributing as always :)

var bloomDaymet = 'projects/sat-io/open-datasets/SIx_products/BloomDaymetv4';
var bloomEurope = 'projects/sat-io/open-datasets/SIx_products/BloomEuropev3';
var diDaymet = 'projects/sat-io/open-datasets/SIx_products/DI_Daymetv4';
var diEurope = 'projects/sat-io/open-datasets/SIx_products/DI_Europev3';
var leafDaymet = 'projects/sat-io/open-datasets/SIx_products/LeafDaymetv4';
var leafEurope = 'projects/sat-io/open-datasets/SIx_products/LeafEuropev3';