python中16mod7_MODIS系列之NDVI(MOD13Q1)七:时间序列S-G滤波之Python

本文介绍了如何使用Python进行时间序列S-G滤波,以处理MODIS NDVI数据。通过读取和处理多个tif文件,计算NDVI,然后应用S-G滤波,展示滤波后的结果。文章提供了完整的可运行代码,强调了代码的实际验证,以减少运行错误。同时,解释了matplotlib模块的安装,图形中文显示的方法,以及线型和颜色的设定。
摘要由CSDN通过智能技术生成

时间序列S-G滤波之Python

根据上上篇博文(MODIS系列之NDVI(MOD13Q1)五:NDVI处理流程)做出的NDVI。我们求NDVI时间序列图,但该NDVI时序图为地表各土地类型综合的NDVI时序图。(详情同样参考该系列五博文的文底)

建议:大家应该也能发现从网上粘贴的代码,大部分在各自实际运行中会出现报错,不能运行。这其中有代码本身的错误,但也不乏运行环境的欠缺、误操作、电脑自身特点等原因。本博客的所有代码都经过实际运行再上传,哪怕比较熟悉的代码,再上传前都会尽可能实际运行。目的便是给大家减少参考困难及错误信息。因为己所不欲勿施于人么。不足之处,还请见谅,并留下建议。

1. 完整代码如下(实际运行成功):

import matplotlib.pyplot as plt

from osgeo import gdal

from gdalconst import *

import matplotlib

import numpy

import time

import os

import os.path

def Gettiff(getpath):

tiff=[]

os.system("dir "+getpath+"\\"+"*.tif /b /s>tiff.TXT")

tifftxt = open("tiff.TXT").readlines()

for i in tifftxt:

tiff.append(i.strip())

return tiff

def greater(data,dt,r,c):

count=0

for i in range(r):

for j in range(c):

if data[i][j]!=dt:

count=count+1

else:

continue

return count

def getsum(data,c,r,nodata):

sum1=0

for i in range(c):

for j in range(r):

if data[i][j]==nodata:

continue

else:

sum1=sum1+data[i][j]

return sum1

def write_img(savepath,filename,im_proj,im_geotrans,im_data):

#gdal数据类型包括

#gdal.GDT_Byte,

#gdal

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值