Google Earth Engine Экспорт диаграммы в формате JSON - PullRequest
0 голосов
/ 30 сентября 2019

Прежде всего, я создаю две диаграммы, первая называется «plotNDVI», а вторая - «диаграмма». У меня проблемы с обеими диаграммами в части экспорта на диск или в облако (я пытался преобразовать эти элементы как ee.Element, ee.Feature).

После решения этой проблемы идея заключается в том,преобразовать информацию этих диаграмм в JSON (вместо того, чтобы загружать CSV-файл в корзину или диск). Это потому, что легко использовать информацию таким способом в APP ENGINE.

Есть способ экспортировать информацию в формате 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'
});
...