I am trying to determine the what areas tend to get rain in a specific interval of time over multiple years. What I am doing is taking the filter date (in this case June 15th through July 15th) and outputting that data into its own layer. Where I am running into trouble is when I have multiple years of data, summing that data gives me a completely inaccurate output layer. What i'm trying to do is "stack" the years on top of one another on the map. See below for examples.
var dataset = ee.ImageCollection('OREGONSTATE/PRISM/AN81d')
var precip = dataset.select('ppt');
var precipitationVis = {
min: 0.0,
max: 50.0,
palette: ['1621A2', 'white', 'cyan', 'green', 'yellow', 'orange', 'red'],
};
Map.setCenter(-86.55, 47.71, 7);
var precip2012 = precip.filterDate("2014-06-15", "2014-07-15");
var precip2013 = precip.filterDate("2015-06-15", "2015-07-15");
var total2012 = precip2012.reduce(ee.Reducer.sum());
var total2013 = precip2013.reduce(ee.Reducer.sum());
var final = total2012.add(total2013);
Map.addLayer(final, precipitationVis,
'Final Layer');
Map.addLayer(precip.filterDate('2012-06-25', '2012-07-15'), precipitationVis, '2012');
Map.addLayer(precip.filterDate('2013-06-25', '2013-07-15'), precipitationVis, '2013');
And this is the output when I use the Reducer.sum function
So as you can see, the 'layered' final image is complete trash. I'm not sure where the numbers are coming from or how it is getting wild outputs (the minimum output value for the final layer is "100" when there at most in the previous layers were 4-5 mm of rain.)
What I want to be able to do is put 20 years of precip data for that june-july range onto one layer where it accumulates in each year if there was precipitation in that pixel. Does that make sense what i'm trying to do?
This is what the image looks like when I enable both the 2012 and 2013 layer at the same time:
And that's what I want the final product to look like, however when I do this just using the layers, the opacity goes to full after 3-4 layers.
So how would I compile each layer (2012 & 2013) into a final layer?
first()
layer is not what's being plotted. As per the earthengine Image Collections tutorial, "When you add an ImageCollection to the map, it is displayed as a recent-value composite, meaning that only the most recent pixels are displayed" - developers.google.com/earth-engine/tutorial_api_04. Regardless, when you useMap.addLayer(precip.filterDate('2012-06-25', '2012-07-15'...)
you aren't plotting the seasonal sum..filterDate()
still leaves you with an imageCollection, so yes adding the product of.filterDate()
as a map layer will only show the most recent data.