当前位置:网站首页>Gee (IV): calculate the correlation between two variables (images) and draw a scatter diagram

Gee (IV): calculate the correlation between two variables (images) and draw a scatter diagram

2022-07-07 23:12:00 BetterQ.

Recently used Google Earth Engine(GEE) Analyze the elevation and NDVI The relevance of , And draw the scatter diagram of the two , Calculate the coefficient of determination .
The calculation mainly uses GEE Medium Chart ui.Chart.image.byRegion(), The elevation and NDVI The scatter diagram of is drawn first , Add a trend line , Calculate the coefficient of determination , You can know how high the correlation between the two is .
NDVI- The implementation code of elevation scatter diagram and determination coefficient calculation is as follows :

// Study area , You can draw or import by yourself 
var roi = /* color: #d63000 */ee.Geometry.Polygon(
        [[[104.34385678174718, 27.233899188878446],
          [114.80284115674718, 28.477166904461537],
          [117.52745053174718, 34.61402019968164],
          [111.99034115674718, 40.99546927185892],
          [95.11534115674718, 37.87379212761336]]]);

// Import  DEM
var DEM=ee.Image("CGIAR/SRTM90_V4").reproject('SR-ORG:6974',null,500);
// from DEM Sample points from , Select here 500 individual 
var rroi = DEM.sample(
    {
    region: roi, scale: 30, numPixels: 500, geometries: true});

// Import NDVI data 
var ndvi=ee.ImageCollection('MODIS/006/MOD13A1')
                     .filter(ee.Filter.date('2020-01-01', '2020-02-01'))
                     .first()
                     .multiply(0.0001);

//  Set chart properties , Including style, color, etc 
var chartStyle = {
    
  title: 'NDVI-DEM',
  hAxis: {
    
    title: 'elevation',
    titleTextStyle: {
    italic: false, bold: true},
    gridlines: {
    color: 'FFFFFF'}
  },
  vAxis: {
    
    title: 'NDVI',
    titleTextStyle: {
    italic: false, bold: true},
    gridlines: {
    color: 'FFFFFF'},
  },
  pointSize: 4,
  dataOpacity: 0.6,

  chartArea: {
    backgroundColor: 'EBEBEB'},
  
  // Add trendline 
  trendlines: {
    
    0: {
      // add a trend line to the 1st series
      type: 'polynomial',  // or 'polynomial', 'exponential'
      color: 'green',
      showR2:'true', //show R2 cofficient
      lineWidth: 5,
      opacity: 0.2,
      visibleInLegend: true,
    }
  }
};

// Draw a scatter plot 
var charten=ui.Chart.image.byRegion({
    
  image:ndvi.select('NDVI'),
  regions:rroi,
  reducer:ee.Reducer.mean(),
  scale:500,
  xProperty: 'elevation'
  });
charten.setChartType('ScatterChart').setOptions(chartStyle);
print(charten)

The result is shown in the figure :
 Insert picture description here
.
.
.
.
The relationship between temperature and elevation is also made here , Implementation code :

// Load SRTM elevation data.
var elev = ee.Image('CGIAR/SRTM90_V4').select('elevation');

// Subset Colorado from the TIGER States feature collection.
var colorado = ee.FeatureCollection('TIGER/2018/States')
                   .filter(ee.Filter.eq('NAME', 'Colorado'));

// Draw a random sample of elevation points from within Colorado.
var samp = elev.sample(
    {
    region: colorado, scale: 30, numPixels: 500, geometries: true});

// Load PRISM climate normals image collection; convert images to bands.
var normClim = ee.ImageCollection('OREGONSTATE/PRISM/Norm81m').toBands();

// Define the chart and print it to the console.
var chartte = ui.Chart.image
                .byRegion({
    
                  image: normClim.select(['01_tmean', '07_tmean']),
                  regions: samp,
                  reducer: ee.Reducer.mean(),
                  scale: 500,
                  xProperty: 'elevation'
                })
                .setSeriesNames(['Jan', 'Jul'])
                .setChartType('ScatterChart')
                .setOptions({
    
                  title: 'Average Monthly Colorado Temperature by Elevation',
                  hAxis: {
    
                    title: 'Elevation (m)',
                    titleTextStyle: {
    italic: false, bold: true}
                  },
                  vAxis: {
    
                    title: 'Temperature (°C)',
                    titleTextStyle: {
    italic: false, bold: true}
                  },
                  pointSize: 4,
                  dataOpacity: 0.6,
                  colors: ['1d6b99', 'cf513e'],
                  trendlines: {
    
                    0: {
      // add a trend line to the 1st series
                    type: 'linear',  // or 'polynomial', 'exponential'
                    color: 'green',
                    showR2:'true', //R2 cofficient
                    lineWidth: 5,
                    opacity: 0.2,
                    visibleInLegend: true,
                    },
                    1: {
      // add a trend line to the 1st series
                    type: 'linear',  // or 'polynomial', 'exponential'
                    color: 'green',
                    showR2:'true', //R2 cofficient
                    lineWidth: 5,
                    opacity: 0.2,
                    visibleInLegend: true,
                    }
                  }});
print(chartte);

.
The result is shown in Fig. :
 Insert picture description here
.
.
.
.
And draw the curve of vegetation index changing with time :

// Import the example feature collection and subset the glassland feature.
var grassland = ee.FeatureCollection('projects/google/charts_feature_example')
                    .filter(ee.Filter.eq('label', 'Grassland'));

// Load MODIS vegetation indices data and subset a decade of images.
var vegIndices = ee.ImageCollection('MODIS/006/MOD13A1')
                     .filter(ee.Filter.date('2010-01-01', '2020-01-01'))
                     .select(['NDVI', 'EVI']);

// Set chart style properties.
var chartStyle = {
    
  title: 'Average Vegetation Index Value by Day of Year for Grassland',
  hAxis: {
    
    title: 'Day of year',
    titleTextStyle: {
    italic: false, bold: true},
    gridlines: {
    color: 'FFFFFF'}
  },
  vAxis: {
    
    title: 'Vegetation index (x1e4)',
    titleTextStyle: {
    italic: false, bold: true},
    gridlines: {
    color: 'FFFFFF'},
    format: 'short',
    baselineColor: 'FFFFFF'
  },
  series: {
    
    0: {
    lineWidth: 3, color: 'E37D05', pointSize: 7},
    1: {
    lineWidth: 7, color: '1D6B99', lineDashStyle: [4, 4]}
  },
  chartArea: {
    backgroundColor: 'EBEBEB'},
  trendlines: {
    
    0: {
      // add a trend line to the 1st series
      type: 'linear',  // or 'polynomial', 'exponential'
      color: 'green',
      showR2:'true',
      lineWidth: 5,
      opacity: 0.2,
      visibleInLegend: true,
    }
  }
};

// Define the chart.
var chart =
    ui.Chart.image
        .doySeries({
    
          imageCollection: vegIndices,
          region: grassland,
          regionReducer: ee.Reducer.mean(),
          scale: 500,
          yearReducer: ee.Reducer.mean(),
          startDay: 1,
          endDay: 365
        })
        .setSeriesNames(['EVI', 'NDVI']);

// Apply custom style properties to the chart.
chart.setOptions(chartStyle);

// Print the chart to the console.
print(chart);

 Insert picture description here

原网站

版权声明
本文为[BetterQ.]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071956159323.html