Google Earth Engine将图表导出为JSON

时间:2019-09-30 20:09:43

标签: google-earth-engine

首先,我将创建两个图表,第一个图表名为“ 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'
});

0 个答案:

没有答案