ArcGIS Python实现Modis NDVI批量化月最大合成

最大合成法(MVC)能够在Envi中的Band Math中进行,式子是B1>B2,可是无法批量化。本文实如今ArcGIS中利用Python代码批量进行,例如以下:

用到的Modis NDVI数据是在MRT中进行拼接与转投影后的月数据,一个月有两期,数据格式是.tif,文件名称的格式如:20040101.1_km_16_days_NDVI.tif。20040102.1_km_16_days_NDVI.tif代表2004年1月份的两期数据。本次处理的为2004-2013年的10年的数据。

Python代码例如以下:

import arcpy
import time
arcpy.CheckOutExtension("spatial")
time1=time.strftime(‘%y-%m-%d-%H:%M:%S‘)
Sname1="F:\\Modis_16\\1Moasic\\"
Sname2=".1_km_16_days_NDVI.tif"
for  i in range(2004,2014):
    for j in range(1,13):
        if j>9:
            Year= str(i)+str(j)+"0"
        else:
            Year= str(i)+"0"+str(j)+"0"
        print Sname1+Year+"1"+Sname2
        print Sname1+Year+"2"+Sname2
        out="F:\\Modis_16\\2MVC\\"+Year[0:6]
        print out +" is being ........."
        arcpy.gp.CellStatistics_sa((Sname1+Year+"1"+Sname2,Sname1+Year+"2"+Sname2) ,out, "MAXIMUM", "DATA")
        print out +" has done.........."
        print "-------------------------------------------------------"
print "<----------All are done !!!---------->"
print "Start time : "+time1
print "End   time : "+time.strftime(‘%y-%m-%d-%H:%M:%S‘)

领悟:本次处理的核心部分是拼凑文件名称字符串。

时间: 2024-11-04 21:18:52

ArcGIS Python实现Modis NDVI批量化月最大合成的相关文章

ArcGIS Python实现Modis NDVI月最大合成

最大合成法(MVC)可以在Envi中的Band Math中进行,式子是B1>B2,但是无法批量化:本文实现在ArcGIS中利用Python代码批量进行,如下: 用到的Modis NDVI数据是在MRT中进行拼接与转投影后的月数据,一个月有两期,数据格式是.tif,文件名的格式如:20040101.1_km_16_days_NDVI.tif,20040102.1_km_16_days_NDVI.tif代表2004年1月份的两期数据.本次处理的为2004-2013年的10年的数据. Python代码

ArcGIS Python实现Modis NDVI批量求年最大值

一年中的12个月份的月最大合成(mvc)数据放在"F:\\Vegetation Change\\Data\\GIMMS Data\\1MVC\\",数据名称格式为mvc_198801,mvc_198802........mvc_198812.处理年份为1981-2006,代码为: import arcpy arcpy.CheckOutExtension("spatial") for i in range(1981,2007): a1 = "F:\\Vege

NDVI最大值法MVC合成之ArcGIS Cell Statistics 实现

目的:利用ArcGIS自带工具Cell Statistics实现多个栅格图层最大值法合成NDVI年或月的最大值. 工具:ArcToolbox>>Spatial Analyst Tools>>Local>>Cell Statistics 问题:NDVI栅格影像值为-1~1之间的float浮点型,直接运用Cell Statistics运算结果为0或1的Int型二值图,不是浮点型. 解决方法:运用Cell Statistics求取最大值运算前先将浮点值NDVI值乘以10000

MODIS NDVI数据处理相关问题

现NDVI产品数据处理过程中遇到以下问题: 问题1:    NDVI是归一化植被指数,它的取值范围是-1-1,如何理解? 方法 :    对于陆地表面覆盖来说,云.雨.雪在可见光比近红外波段有较高的反射作用,所以NDVI为负值:岩石.裸土的NDVI一般为0:有植被覆盖的地方一般大于0. 问题2:    导入ENVI进行查看,发现未拼接重投影之前影像数据范围为-3000-0.99880,拼接重投影之后影像数据范围在-3000-9988.是数据值发生了改变吗? 方法 :    ENVI - Basi

ArcGIS Python 安装其它扩展包(Windows与Linux)

ArcGIS Python 安装其它扩展包(Windows与Linux) 下载 ? https://pypi.org/project/setuptools/#files ? setuptools-40.6.2.zip ? https://pypi.org/project/pip/#files ? pip-18.1.tar.gz ? 解压 ? ? 安装 setuptools ArcGIS Desktop(Windows) ? cd D:\software\setuptools-40.6.2 ? C

arcgis python获得字段唯一值

arcgis python获得字段唯一值 # Import native arcgisscripting moduleimport arcgisscripting, sys# Create the geoprocessor objectgp = arcgisscripting.create(9.3) # Table and field name inputsinTable = sys.argv[1]inField = sys.argv[2] rows = gp.SearchCursor(inTa

ArcGIS Python实现批量化栅格数据重命名

一.代码 import arcpy arcpy.env.workspace = "F:\\NDVI\\" rasters = arcpy.ListRasters("*", "grid") for raster in rasters: Rename="Re_"+raster arcpy.Rename_management(raster, Rename, "RasterDataset") print(raste

ArcGIS Python实现批量化裁剪影像

一.程序代码: import arcpy arcpy.CheckOutExtension("spatial") arcpy.gp.overwriteOutput=1 arcpy.env.workspace = "F:\\Modis_16\\1Moasic" rasters = arcpy.ListRasters("*", "tif") mask= "F:\\Vegetation Change\\Data\\Bound

Python得到前面12个月的数据,Python得到现在时间 前一年的数据,

#Python 实现得到现在时间12个月前的每个月 # 假设现在的时间是2016年9月25日 #得到现在的时间 得到now等于2016年9月25日 now = datetime.datetime.now() #得到今年的的时间 (年份) 得到的today_year等于2016年 today_year = now.year #今年的时间减去1,得到去年的时间.last_year等于2015 last_year = int(now.year) -1 #得到今年的每个月的时间.today_year_m