GEE8:多个矢量点的NDVI连续数据的获取及分析(CSV数据)
矢量点像元值
- 1. 哨兵2号数据:
- 1.1 Sentinel-2 MSI: MultiSpectral Instrument, Level-1C
- 1.2 GEE获取矢量站点连续NDVI值
- 2. Python多项式拟合
1. 哨兵2号数据:
Sentinel-2是一个宽波段、高分辨率、多光谱成像任务,支持哥白尼土地监测研究,包括监测植被、土壤和水覆盖,以及观察内陆水道和沿海地区。Sentinel-2数据包含13个UINT16波段,代表TOA反射率10000倍。此外,有三个QA波段,其中一个(QA60)是带云掩码信息的位掩码波段。
1.1 Sentinel-2 MSI: MultiSpectral Instrument, Level-1C
/*** Function to mask clouds using the Sentinel-2 QA band* @param {ee.Image} image Sentinel-2 image* @return {ee.Image} cloud masked Sentinel-2 image*/
function maskS2clouds(image) {var qa = image.select('QA60');// Bits 10 and 11 are clouds and cirrus, respectively.var cloudBitMask = 1 << 10;var cirrusBitMask = 1 << 11;// Both flags should be set to zero, indicating clear conditions.var mask = qa.bitwiseAnd(cloudBitMask).eq(0).and(qa.bitwiseAnd(cirrusBitMask).eq(0));return image.updateMask(mask).divide(10000);
}// Map the function over one month of data and take the median.
// Load Sentinel-2 TOA reflectance data.
var dataset = ee.ImageCollection('COPERNICUS/S2').filterDate('2018-01-01', '2018-01-31')// Pre-filter to get less cloudy granules..filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)).map(maskS2clouds);var rgbVis = {min: 0.0,max: 0.3,bands: ['B4', 'B3', 'B2'],
};Map.setCenter(113, 31, 7);
Map.addLayer(dataset.median(), rgbVis, 'RGB');
天津市图像:
1.2 GEE获取矢量站点连续NDVI值
var p1 = ee.Geometry.Point([112.91, 28.24])
var p2 = ee.Geometry.Point([112.56, 26.97])
//var roi = geometry
var roi = ee.FeatureCollection(ee.List([ee.Feature(p1).set('name','p1'),ee.Feature(p2).set('name','p2')]))
// Map.addLayer(roi)//哨兵2号数据
var dataset = ee.ImageCollection("COPERNICUS/S2").filter(ee.Filter.date('2016-01-01', '2022-10-31'));//去云处理
function maskS2clouds(image) {var qa = image.select('QA60')var cloudBitMask = 1 << 10;var cirrusBitMask = 1 << 11;//cirrus clouds:卷云var mask = qa.bitwiseAnd(cloudBitMask).eq(0).and(qa.bitwiseAnd(cirrusBitMask).eq(0))return image.updateMask(mask).select("B.*").copyProperties(image, ["system:time_start"])
}var filtered = dataset.filter(ee.Filter.bounds(roi))
var filtered = filtered.map(maskS2clouds)
function NDVI(image) {var ndvi = image.expression( '(NIR-Red) / (NIR+Red)',{ 'NIR': image.select('B8'), 'Red': image.select('B4')})return image.addBands(ndvi.rename('NDVI')).clip(roi);
}
var withNDVI = filtered.map(NDVI);
print(withNDVI)
var precipitation = withNDVI.select('NDVI');
var ft = ee.FeatureCollection(ee.List([]))
var fill = function(img, ini) {var inift = ee.FeatureCollection(ini)var ft2 = img.sampleRegions({collection:roi,properties:ee.List(['name']),scale:10});var date = img.date().format()var ft3 = ft2.map(function(f){return f.set("date", date)})return inift.merge(ft3)
}// Iterates over the ImageCollection
var newft = ee.FeatureCollection(precipitation.iterate(fill, ft))
Export.table.toDrive({collection: newft,description: 'sample_get',fileFormat: 'CSV'
});var NDVIchart = ui.Chart.image.series({imageCollection: precipitation,region:roi,reducer: ee.Reducer.mean(),scale: 10}).setOptions({title: "NDVI列表", hAxis: {title: "date"},vAxis: {title: "ndvi"},lineWidth:1,pointSize:2});print("NDVIchart", NDVIchart);
图像展示:
CSV数据:
2. Python多项式拟合
import pandas as pd
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdatesdata = pd.read_csv('D:/GoogleChrom/points_values.csv')
data = pd.DataFrame(data)
print(data)
date = data.iloc[0:114, 2:3].values.flatten()
ndvi = data.iloc[0:114, 1:2].values.flatten()
date
def d_to_jd(time):fmt = '%Y-%m-%d'dt = datetime.strptime(time, fmt)tt = dt.timetuple()return tt.tm_yday
def jd_to_time(time):dt = datetime.strptime(time,'%Y%j').date()fmt = '%Y/%m/%d'return dt.strftime(fmt)def pol(date,ndvi):years = [datetime.strptime(d,'%Y/%m/%d').date() for d in date]plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d'))plt.gca().xaxis.set_major_locator(mdates.DayLocator())plt.xticks(years[::30])s = list(map(str, years))s = list(map(d_to_jd, s))_x = np.array(s)ndvi = np.array(list(ndvi))o = np.polyfit(_x, ndvi, 6)g = np.poly1d(o)
# print(g)plt.plot(years, g(_x), c='g', ls='-')plt.plot(years, ndvi, c='r', ls='-', marker='o', markersize=2,alpha=0.3)plt.legend(labels = ['fitted values','ndvi values'])plt.show()result = pol(date,ndvi)
拟合方程:1.567e-14 x - 1.626e-11 x + 6.464e-09 x - 1.224e-06 x + 0.0001093 x - 0.003585 x + 0.02839
拟合图像:
GEE8:多个矢量点的NDVI连续数据的获取及分析(CSV数据)相关推荐
- NDVI时间序列分析之Sen+MK分析全过程梳理
NDVI时间序列分析之Sen+MK分析全过程梳理 Sen斜率估计用于计算趋势值,通常与MK非参数检验结合使用,即先计算Sen趋势值,然后使用MK方法判断趋势显著性. 原理 Theil-Sen Medi ...
- 二维数组foreach嵌套遍历,判断连续3天以上的算有效数据
2019独角兽企业重金招聘Python工程师标准>>> $studycourseinfo = $studycourseinfoModel->where($where)-> ...
- 如何使用GDAL/OGR打开矢量并输出每个面外界矩形范围内的point数据
如何使用GDAL/OGR打开矢量并输出图层数据范围和每个ploygon要素范围 0.构想 1.arcmap查看数据属性信息 2.输出每个数据的extent外接矩形范围 3.按外界矩形范围生成point ...
- 华为云FusionInsight连续三次获得第一 加速释放数据要素价值
近日,IDC发布<中国大数据平台市场研究报告,2021 H1>,华为云FusionInsight智能数据湖已连续三次获得大数据平台市场份额第一.基于超过10年服务于政务.金融.运营商.大企 ...
- matplotlib连续显示3D医疗影像dcm格式数据
读取显示dcm医疗CT数据 import SimpleITK as sitk import numpy as np import pydicom import matplotlib.pyplot as ...
- 分类型变量预测连续型变量_SPSS中的Variable数据变量类型介绍,一次性弄清无序分类变量、有序分类变量、 离散型数值变量、连续型数值变量的区别!...
变量的概念:变量也就是就是一种可以进行测量的数据条目(data item),对于定义变量在统计里非常重要,特别是在进行SPSS分析的时候,需要明确定义一个变量的性质.打开SPSS软件时,数据录入界面上 ...
- [LeetCode系列]最大连续子列递归求解分析
本文部分参考Discuss: LeetCode. 步骤1. 选择数组的中间元素. 最大子序列有两种可能: 包含此元素/不包含. 步骤2. 步骤2.1 如果最大子序列不包含中间元素, 就对左右子序列进行 ...
- shell最大出现和连续出现次数_shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)...
当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在 ...
- 数据禾|2020年江苏省土地利用数据(矢量)
江苏省,位于中国大陆东部沿海中心,长江.淮河下游,东濒黄海.江苏地势低平,河湖较多,平原.水面所占比例占江苏省的90%以上.江苏是中国地势最低的一个省区,绝大部分地区在海拔50米以下,低山丘陵集中在西 ...
最新文章
- 计算机无法安装手机数据线,连接电脑,详细教您手机数据线连接电脑没反应该怎么解决...
- php 处理表单里面的 单双引号
- python安装pyqt4_windows下安装PyQt4
- 【Python】基础总结
- i.e., e.g., etc.
- Log4J 最佳实践之全能配置文件
- 洛谷1196 银河英雄传说(并查集)
- 我的RHCE考试终于要开始了!
- Atitit 软件开发方法论 attilax著 艾龙 著 1. 1.3 软件工程方法 软件工程方法论分为软件开发方法论和软件组织方法论两个部分。	1 2. 软件开发方法的演进 SP DOP PAM
- 广义线性模型之泊松回归
- 1110_win10专业版官方原版镜像64位
- 5个相见恨晚的设计资源网站,记得收藏。
- 非计软专业的学生也能看懂的面向对象编程(《面向对象编程是怎样工作的》平野章/著 读书笔记)
- super expression must either be null or a function 报错解决方法
- 西门子em235模块的功能_多图细讲,模拟量模块与变送器的接线
- python生成带有表格的图片
- 创业全攻略:从零到开具第一张发票
- 数字图像处理2.2/2.3 光与电磁波谱/图像形成
- ajax图片上传插件demo,jQuery 自制上传头像插件-附带Demo实例(ajaxfileupload.js第三弹)...
- *.ftl文件中文乱码的问题