# -*- coding: utf-8 -*-
"""
Created on Tue Sep  6 09:35:57 2022

@author: DR
"""

##根据不同土地类型提取对应地表温度,并统计对应最小值、最大值、均值和方差

import glob
import os
import shutil
from arcpy.sa import *
from arcpy.sa import Con

##提取单个土地类型
path2 = r"I:\DR\test\2lc_HF"
path3 = "I:/DR/test"
if not os.path.exists(path3):##path5是否存在,不存在先建立。
    os.mkdir(path3)

rasters2 = glob.glob(os.path.join(path2, "*.tif"))
for ras2 in rasters2:
    nameT2 = ras2[18:22] + ras2[27:31] + "_1Cro.tif"#cl:croplands农田
    print(nameT2)
    newFileDirs2 = path3 + "/" + ras2[18:23] + ras2[27:31]
    # print(newFileDirs2)
    if not os.path.exists(newFileDirs2):
        os.mkdir(newFileDirs2)
    outname2 = os.path.join(newFileDirs2, nameT2)
    attExtract2 = ExtractByAttributes(ras2, "VALUE = 1") 
    attExtract2.save(outname2)
   
    nameT3 = ras2[18:22] + ras2[27:31] + "_2For.tif"#forest森林
    print(nameT3)
    outname3 = os.path.join(newFileDirs2, nameT3)
    attExtract3 = ExtractByAttributes(ras2, "VALUE = 2") 
    attExtract3.save(outname3)
    
    nameT4 = ras2[18:22] + ras2[27:31] + "_5Wat.tif"#water水体
    print(nameT4)
    outname4 = os.path.join(newFileDirs2, nameT4)
    attExtract4 = ExtractByAttributes(ras2, "VALUE = 5") 
    attExtract4.save(outname4)
    
    nameT5 = ras2[18:22] + ras2[27:31] + "_8Imp.tif"#不透水面
    print(nameT5)
    outname5 = os.path.join(newFileDirs2, nameT5)
    attExtract5 = ExtractByAttributes(ras2, "VALUE = 8") 
    attExtract5.save(outname5)
    print "Fire in the hole!"
    
##path1重采样1km
path1 = r"I:\DR\test"
path2 = r"I:\DR\CLCD_Rec"
path_list3 = os.listdir(path1)
# print(path_list3)
for i in range(len(path_list3)):
    inpath3 = path1 + "\\" + path_list3[i]
    # print(inpath3)
    rasters3 = glob.glob(os.path.join(inpath3, "*.tif"))
    # print(rasters4)
    for ras3 in rasters3:
        nameT3 = os.path.basename(ras3).split(".")[0] + "_Res.tif"
        # print(nameT3)
        outname3 = os.path.join(path2, nameT3)
        # print(outname3)
        arcpy.Resample_management(ras3, outname3, 0.010942416, "NEAREST")
        print os.path.basename(ras3) + " OK!"
    
##path1*path2,分别提取不同年份不同土地利用对应的地表温度
path1 = r"I:\DR\DAY_Avg_Year"
path2 = r"I:\DR\CLCD_Rec"
path3 = "I:/DR/LST_CLCD/"

rasters1 = glob.glob(os.path.join(path1, "*.tif"))
for i in range(2003,2022):
    for ras1 in rasters1:
        if int(ras1[19:23])==i:
            rasters2 = glob.glob(os.path.join(path2, "*.tif"))
            for ras2 in rasters2:
                if int(ras2[19:23])==i:
                    outname = path3 + "LST_" + ras2[15:]
                    if int(ras2[24])==1:
                        arcpy.gp.RasterCalculator_sa("'" + ras1 + "'*'" + ras2 + "'/1", outname)
                    ##(75条消息) arcPython细节汇总-setll函数和地图计算Raster Calculator函数_忠言睿长的博客-CSDN博客_arcgis setnull函数  https://blog.csdn.net/liyanzhong/article/details/46270757
                    elif int(ras2[24])==2:
                        arcpy.gp.RasterCalculator_sa("'" + ras1 + "'*'" + ras2 + "'/2", outname)#缩小2倍
                    elif int(ras2[24])==5:
                        arcpy.gp.RasterCalculator_sa("'" + ras1 + "'*'" + ras2 + "'/5", outname)#缩小5倍
                    else:
                        arcpy.gp.RasterCalculator_sa("'" + ras1 + "'*'" + ras2 + "'/8", outname)#缩小8倍
                        
##统计不同年份不同土地利用对应的地表温度的最小值,最大值、均值和方差
outputTxtFile =  r"I:\DR\result1.txt"
arcpy.env.workspace = r"I:\DR\DAY_Avg_Year"
rasters = arcpy.ListRasters("*","tif")
# print(rasters)
for raster in rasters:
    minResult = arcpy.GetRasterProperties_management(raster, "MINIMUM")
    maxResult = arcpy.GetRasterProperties_management(raster, "MAXIMUM")
    meanResult = arcpy.GetRasterProperties_management(raster, "MEAN")
    stdResult = arcpy.GetRasterProperties_management(raster, "STD")
    img_SR = arcpy.Describe(raster).spatialReference.name
    minRes = minResult.getOutput(0)
    maxRes = maxResult.getOutput(0)
    meanRes = meanResult.getOutput(0)
    stdRes = stdResult.getOutput(0)
    # minRes=str(minResult)
    # maxRes = str(maxResult)
    # meanRes = str(meanResult)
 
 
    f = open(outputTxtFile, 'a+')#打开txt文件,并追加信息
    f.write(raster + "," + minRes + "," + maxRes + "," + meanRes + "," + stdRes + "\n")
 
 
print ("finish")

根据不同土地类型提取对应地表温度,并统计对应最小值、最大值、均值和方差相关推荐

  1. Google earth engine(GEE):基于MODIS的LST(地表温度数据)计算一定时间序列的城市热岛强度(UHI),并绘制直方图

    2023.01.06更新: 完整流程是这样的,首先第一个代码可以得到城市斑块,第二个代码可以计算这个地区的城市热岛效应强度.有朋友私信问全部的代码,同时自己也修改了一下计算城市热岛强度代码的一些比较繁 ...

  2. Google Earth Engine(GEE)——MODIS 影像LST地表温度随时间变化的趋势案例分析

    该实验室的目标是使用 Google Earth Engine 深入研究气候变量.在本实验结束时,您将能够探索特定感兴趣区域的温度数据的长期趋势. MODIS LST 数据集 MOD11A2 V6 产品 ...

  3. 基于Modis的遥感数据的地表温度的获取解决方案--以京津唐为例

    1.背景与技术路线 地表温度(LST)是区域和全球尺度地表物理过程中的一个关键因子,也是研究地表和大气之间物质交换和能量交换的重要参数.许多应用如干旱.高温.林火.地质.水文.植被监测,全球环流和区域 ...

  4. 土壤湿度遥感监测 - 植被指数/地表温度与土壤湿度

    1.实习目的 了解和熟悉植被指数/地表温度特征空间与土壤湿度的关系. 2.实习内容 利用给定植被区域的地表温度图像和植被指数图像,分析二者之间的关系,并能给出简单解释: 了解利用温度植被干旱指数反映土 ...

  5. Satellite-derived land surface temperature: Current status and perspectives卫星衍生的地表温度

    目录 一.[卫星衍生的地表温度:现状和前景](https://www.sciencedirect.com/science/article/pii/S0034425712004749) 二.地表温度的遥 ...

  6. 利用ARCGIS地表温度反演结果交叉检验

    使用经过验证的其他卫星数据反演得到的地表温度来进行验证.交叉验证方法是将已经验证好的地表温度产品作为参考,将需要验证的由卫星数据反演得到的地表温度与由其他卫星反演得到的验证过的地表温度进行比较.由于地 ...

  7. (五)Landat_5 TM 遥感影像计算NDVI、MNDWI、NDBI以及地表温度反演

    流程概况图 一.植被覆盖指数(NDVI) 所谓植被指数,就是利用多波段遥感图像的可见光波段以及近红外波段相组合,形成能够反映突出植被分布状况和强度的指数.植被指数的求解方法不唯一,定义的植被指数已经多 ...

  8. Landsat系列卫星地表温度批量反演代码(大气校正法)

    针对Landsat5.Landsat7.Landsat8的热红外波段反演地表温度的代码,可以批量进行温度的反演,但需要有前期的一些准备,包括大气校正参数的获取.可见光波段的大气校正等,以及文件夹的准备 ...

  9. GEE开发之Modis_LST地表温度数据分析

    GEE开发之Modis_LST地表温度数据分析 1 MODIS/006/MOD11A1介绍 2 遥感影像获取(以LST为例子) 3 日遥感数据获取(以LST为例子) 3.1 日数据折线图展现如下(以鹿 ...

最新文章

  1. Python openpyxl 之 Excel 文档简单操作
  2. echarts 点亮中国插件研究
  3. 其他算法-Dijkstra
  4. String.format()方法使用说明
  5. 第二章:2.6 使用 runserver 命令把项目运行起来
  6. 车和家李想:特斯拉加州经验难以直接复制到国内
  7. Windows10记事本和Visual Studio Code文件encoding的设置
  8. 微软发布ML.NET 1.0,可一键添加机器学习模型
  9. PowerDesigner怎样才能在修改表的字段Name的时候Code不自动跟着变
  10. 大公司里怎样开发和部署前端代码
  11. jQuery JCrop插件的一个问题
  12. 公共代码参考(DisplayMetrics)
  13. 聚焦 | 今年,金山云不一样的除夕夜
  14. idea git push时 报错 Push rejected: Push to origin/master was rejected
  15. jpg转bmp(使用libjpeg)
  16. 阿里云ACP普尔文考试注意事项
  17. DB9针型:RS485输出信号及接线端子引脚分配
  18. 北大邮箱收件服务器,北京大学网络服务
  19. CentOS 7 安装 libtool 2.4.6
  20. 从bam文件的内容来学习Phred quality score /QUAL/Cigar/等常用概念

热门文章

  1. 适合32位及以下的单片机的开平方算法
  2. freeswitch带媒体压力测试方案
  3. Veeam 12 for VMware 新功能和改进
  4. 普元 EOS Platform 7.5 default和sso集成后,如何配置不登录拦截
  5. 关于WiFi万能钥匙破解密码知识扫盲
  6. 【求职】去哪儿网 C++方向面经
  7. Blender材质贴图入门图文教程
  8. 【翻译】圣斗士星矢:圣域传说 制作介绍 角色篇
  9. Python 读取Excel文件并把相关信息@给相应的微信好友
  10. 微信支付APIV3完整Demo,可直接使用,适用于(H5、JSAPI、H5、App、小程序)