首先,我将创建两个图表,第一个图表名为“ plotNDVI”,第二个图表名为“ chart”。在导出到驱动器或云时,我的两个图表都存在问题(我尝试将这些元素转换为ee.Element,ee.Feature)。
解决此问题后,其想法是将那些图表的信息转换为JSON(而不是将CSV文件加载到存储桶或驱动器中)。这是因为在APP引擎中以这种方式易于使用信息。
有一种方法可以导出JSON格式的信息,还是必须先创建CSV,然后使用此文件创建自己的图表?。
//geometry is a random polygon over the map
var polygon = ee.Geometry.Polygon([
[[-5, 40], [-6, 40], [-6, 40.5], [-5, 40.5], [-5, 40.5]]
]);
//ESTABLECER LAS FECHAS
var f_0 = '2019-01-01';
var f_f = '2019-06-30';
// Create image collection of S-2 imagery
//////////////////////////////////////////////////////////////////////////////////
var S2 = ee.ImageCollection('COPERNICUS/S2')
//filter start and end date
.filterDate(f_0, f_f)
//filter according to drawn boundary
.filterBounds(polygon);
//Function to mask cloud from built-in quality band
//information on cloud
//////////////////////////////////////////////////////////////////////////////////
var maskcloud1 = function(image) {
var QA60 = image.select(['QA60']);
return image.updateMask(QA60.lt(1));
};
//Function to calculate and add an NDVI band
//////////////////////////////////////////////////////////////////////////////////
var addNDVI = function(image) {
return image.addBands(image.normalizedDifference(['B8', 'B4']));
};
// Add NDVI band to image collection
//////////////////////////////////////////////////////////////////////////////////
var S2 = S2.map(addNDVI);
// Extract NDVI band and create NDVI median composite image
//////////////////////////////////////////////////////////////////////////////////
var NDVI = S2.select(['nd']);
var NDVImed = NDVI.median();
// Create a time series chart.
//////////////////////////////////////////////////////////////////////////////////
var plotNDVI = ui.Chart.image.seriesByRegion(S2, geometry,ee.Reducer.mean(),
'nd',500,'system:time_start', 'system:index')
.setChartType('LineChart').setOptions({
title: 'NDVI short-term time series',
hAxis: {title: 'Date'},
vAxis: {title: 'NDVI'}
});
// Display.
//////////////////////////////////////////////////////////////////////////////////
console.log(plotNDVI);
var test = ee.Element(plotNDVI)
// Export the FeatureCollection.
Export.table.toCloudStorage({
collection: test,
description:'chartCloudStorageExample',
bucket: 'maps-agrodatai',
fileNamePrefix: 'experimento_charts',
fileFormat: 'CSV'
});
//cargar la imagen de hansen
//////////////////////////////////////////////////////////////////////////////////
var hansen = ee.Image('UMD/hansen/global_forest_change_2018_v1_6');
//cargar las capas de hansen de interes
//////////////////////////////////////////////////////////////////////////////////
var lossImage = hansen.select(['loss']);
var areaImage = lossImage.multiply(ee.Image.pixelArea());
//sumar los valores de perdida forestal en el polygon.
//////////////////////////////////////////////////////////////////////////////////
var stats = areaImage.reduceRegion({
reducer: ee.Reducer.sum(),
geometry: geometry,
scale: 30,
maxPixels: 1e15
});
//Exptraer la informacion de perdida para hacer el calculo temporal
//generación de la información anual
//////////////////////////////////////////////////////////////////////////////////
var lossAreaImage = lossImage.multiply(ee.Image.pixelArea());
var lossYear = hansen.select(['lossyear']);
var lossByYear = lossAreaImage.addBands(lossYear).reduceRegion({
reducer: ee.Reducer.sum().group({
groupField: 1
}),
geometry: polygon,
scale: 30,
maxPixels: 1e9
});
//el año es el key, y loss area es el valor
//////////////////////////////////////////////////////////////////////////////////
var statsFormatted = ee.List(lossByYear.get('groups'))
.map(function(el) {
var d = ee.Dictionary(el);
return [ee.Number(d.get('group')).format("20%02d"), d.get('sum')];
});
var statsDictionary = ee.Dictionary(statsFormatted.flatten());
//Making a chart
//////////////////////////////////////////////////////////////////////////////////
var chart = ui.Chart.array.values({
array: statsDictionary.values(),
axis: 0,
xLabels: statsDictionary.keys()
}).setChartType('ColumnChart')
.setOptions({
title: 'Yearly Forest Loss',
hAxis: {title: 'Year', format: '####'},
vAxis: {title: 'Area (square meters)'},
legend: { position: "none" },
lineWidth: 1,
pointSize: 3
});
//Mostrar la informacion
//////////////////////////////////////////////////////////////////////////////////
print(chart);
// Export the FeatureCollection.
Export.table.toCloudStorage({
collection: ee.Element(chart),
description:'chartCloudStorageExample',
bucket: 'maps-agrodatai',
fileNamePrefix: 'experimento_charts',
fileFormat: 'CSV'
});