Python遥感开发之快速判断TIF数据为空

2023-12-03 10:28

本文主要是介绍Python遥感开发之快速判断TIF数据为空,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python遥感开发之快速判断TIF数据为空


前言:介绍一下如何使用python下的gdal读取tif数据的时候,快速判断该tif数据是否为空,如果为空的话就把当前的tif删掉。


如图所示,通过arcgis查看箭头指向的为空值。
在这里插入图片描述
仅通过文件的大小无法判断
在这里插入图片描述
实现思路:我们可以借助python下的gdal读取tif,以第一个像元为基准像元,如果后面的像元有不一样的值就认定该tif不为空。
代码实现:

import numpy as np
from osgeo import gdal
import osdef read_tif01(filepath):dataset = gdal.Open(filepath)col = dataset.RasterXSize  # 图像长度row = dataset.RasterYSize  # 图像宽度geotrans = dataset.GetGeoTransform()  # 读取仿射变换proj = dataset.GetProjection()  # 读取投影data = dataset.ReadAsArray()  # 转为numpy格式data = data.astype(np.float32)  # 转为float类型# data[(data < 0) | (data > 15000)] = np.nan# a = data[0][0]# data[data == a] = np.nan #原因:读取某一个行政区的影像图的时候,往往第一行的第一列值为空值# band = dataset.GetRasterBand(1)# print(band)return [col, row, geotrans, proj, data]def get_data_list(file_path, out=""):list1 = []  # 文件的完整路径if os.path.isdir(file_path):fileList = os.listdir(file_path)if out != "":for f in fileList:out_data = out + "\\" + fout_data = out_data.replace(".HDF", "_ndvi.tif")list1.append(out_data)else:for f in fileList:pre_data = file_path + '\\' + f  # 文件的完整路径list1.append(pre_data)return list1if __name__ == '__main__':inputfile_path = r"F:\风云数据\MERSI-II陆表反射比1KM段产品\b19\01原始"infile_list = get_data_list(inputfile_path)for file_path in infile_list:col, row, geotrans, proj, data = read_tif01(file_path)print(data[0, 0])are_all_elements_equal = np.all(data == data[0, 0])if are_all_elements_equal:print("所有元素都相同")os.remove(file_path)else:print("数组中有不同的元素")print("已去除空数据")

在这里插入图片描述
在这里插入图片描述

这篇关于Python遥感开发之快速判断TIF数据为空的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/449092

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本