首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

根据标准差拉伸波段创建新栅格(.tif),适用于数据堆栈,但不能写入新文件Python

根据标准差拉伸波段创建新栅格(.tif),适用于数据堆栈,但不能写入新文件。

根据标准差拉伸波段是一种数据处理技术,用于增强图像的对比度和可视化效果。标准差是一种衡量数据分布广度的统计量,而波段是指图像中的不同光谱通道。

在Python中,可以使用开源库GDAL(Geospatial Data Abstraction Library)进行栅格数据处理。下面是一个示例代码,展示了如何使用GDAL实现根据标准差拉伸波段并创建新的栅格数据:

代码语言:txt
复制
import gdal
import numpy as np

# 打开原始栅格数据
dataset = gdal.Open('input.tif')

# 读取波段数据
band = dataset.GetRasterBand(1)
band_data = band.ReadAsArray()

# 计算标准差
std_dev = np.std(band_data)

# 计算拉伸范围
min_value = np.mean(band_data) - 2 * std_dev
max_value = np.mean(band_data) + 2 * std_dev

# 根据标准差拉伸波段
stretched_band_data = (band_data - min_value) / (max_value - min_value) * 255

# 创建新的栅格数据
driver = gdal.GetDriverByName('GTiff')
output_dataset = driver.Create('output.tif', dataset.RasterXSize, dataset.RasterYSize, 1, gdal.GDT_Byte)
output_dataset.SetProjection(dataset.GetProjection())
output_dataset.SetGeoTransform(dataset.GetGeoTransform())

# 写入拉伸后的波段数据
output_band = output_dataset.GetRasterBand(1)
output_band.WriteArray(stretched_band_data)

# 释放资源
dataset = None
output_dataset = None

在以上示例代码中,input.tif表示原始栅格数据文件名,output.tif表示输出的新栅格数据文件名。通过计算标准差和拉伸范围,将波段数据进行线性拉伸,并将结果写入新的栅格数据文件。

需要注意的是,以上示例只处理了单波段数据。如果有多个波段,可以循环处理或者进行其他处理方式。

对于数据堆栈,可以根据具体需求选择适当的栅格数据处理方法,并使用GDAL或其他相关库进行实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 EarthPy 堆叠和裁剪tif栅格数据

堆叠多波段影像 一些遥感数据集与每个波段一起存储在单独的文件中。然而 通常,您希望在分析中同时使用所有波段。例如 您需要将所有条带放在同一个文件或“堆栈”中才能绘制颜色 RGB图像。...下面使用颜色条将数据绘制为连续数据 使用 ''plot_bands()'' 函数 当然,小编手头没有卫星波段数据,只好拿之前的暴雨tif数据顶顶。...在处理之前,先将数据裁剪到研究区域会更有效 它在 Python 中。最快、最有效的选择是裁剪每个文件 单独地将裁剪后的栅格写入新文件,然后堆叠 将新文件放在一起。...''es.crop_all()'' 是一种快速裁剪图像中所有波段的有效方法。 该函数会将裁剪的栅格写入 目录并返回文件路径列表,然后可以与 ''es.stack()''。...裁剪数据后,您就可以创建堆叠了。

7910
  • Python | GDAL处理影像

    GDAL栅格数据处理 栅格数据介绍 栅格数据读取 读取部分数据集 坐标变换 重采样 什么是栅格数据 基本上是一个大的二维或三维数组 没有独立的几何对象,只有像素的集合 二维:黑白图片 三维:彩色/假彩色..., ysize, [bands], [data_type], [options]) filename: 文件名,创建一个新文件 xsize: x方向,列数 ysize: y方向,行数 bands: 波段数..., 3, in_band.DataType) # 重要:获取空间信息 # 第一句:得到投影(SRS)并复制到数据集 # 第二句:得到geotransform信息并复制到数据集 # 两者的信息都很重要...out_ds写入数据 # 先取出想要写入波段 # 再将numpy数组in_data的数据写入 in_data = in_band.ReadAsArray() out_band = out_ds.GetRasterBand...# 注意用range(1,4)表示在波段1,2,3之间循环 # 统计每个波段的:平均值、最小值、最大值、标准差 # 参数取False:从现有数据直接计算,True:用概视图估计值 out_ds.FlushCache

    4.4K31

    遥感数据机器学习的准备工作:python栅格数据提取至EXCEL

    大部分我们处理的降水、气温等栅格数据的格式是nc形式,需要我们将他转换成栅格数据并导入至Arcgis中,进行下一步操作。...之后我们根据自己的研究区进行裁剪【Spatial Analyst 工具-提取分析-按掩膜提取】 下面我们将裁剪好的研究区进行栅格转点【转换工具-由栅格转出-栅格转点】 转好之后的数据我们就可以拿来用了...,下面我们通过python代码实现快速的栅格属性导出至EXCEL表中。...#读取栅格 #获取注册类 #打开栅格数据 input_folder_list = os.listdir(InputRasterFolder) #读取文件夹里所有文件 tif_files = list...#将数据经纬度和对应栅格数值写入excel表 sheet1.write(j + 1, 0, x) #第j+1行,第1列 sheet1.write(j

    1.3K20

    rasterio的安装和使用

    学习数学的同时了,还在学习遥感数据处理(感觉遥感比较好水论文),一般处理遥感数据我们会使用ENVI,但是毕竟我会Python,所以我就上网查了一些内容,就发现了rasterio这个第三方库。...大家可能听过GDAL库,其实rasterio是基于GDAL库二次封装的,更加符合Python风格的主要用于空间栅格数据处理的Python库。所以本文就简单介绍下rasterio的安装和使用。...rasterio使用 其实我用Python来操作影像就两个要求,一是能读取到各个影像波段数据,二是经过一些处理后,再将数据存为影像。...这里以landsat影像为例,读取数据后,计算NDVI值,然后保存到本地。 使用open函数就可以读取影像数据,count属性就是影像的波段数(landsat全色是7个波段)。...astype('float64') nir_red = data.read(5).astype('float64') ndvi = (nir_red-red)/(nir_red+red) ndvi 最后,写入栅格即可

    1.5K40

    Python中arcpy栅格创建与多景遥感影像批量拼接

    本文介绍利用Python语言arcpy等模块,实现栅格图层建立与多幅遥感影像数据批量拼接(Mosaic)的操作。   ...中gdal栅格影像读取计算与写入及质量评估QA波段筛选掩膜,利用其中的循环方式实现需求。   ...随后,通过os.listdir()函数获取file_path路径下的栅格文件,并存储于file_name_list列表中。   接下来需要创建一个栅格图层。...之所以要进行这一步骤,是因为本文后期选择用arcpy.Mosaic_management()函数进行栅格的批量拼接,因此需要首先创建一个的、空的栅格图层作为拼接的基准。...如果大家的需求不是批量拼接栅格数据,而是单纯想利用arcpy进行栅格创建,那就只看这一部分的代码即可。

    32730

    python与地理空间分析(一)

    数据分析中,地理空间分析往往提供有效的信息,辅助进行决策。随着航空遥感行业的发展,积累的卫星数据也成为了数据挖掘的重要数据来源。...地理空间栅格数据常用来存放卫星遥感数据,使用一个像元对应的地面距离来表达空间分辨率;此外栅格数据可以包含多个光谱波段数据,例如常用的可见光以及红外波段,有的像高光谱数据,会包含成百上千个波段数据,可以通过不同波段的组合生成不同的专题地图...其他数据 除了矢量和栅格数据外,地理空间数据还有其他形式例如: ? •点云数据:点云数据根据物体表面的反射能量获取相应的三位坐标信息。一般通过激光器,雷达波,声学探测仪以及其他波形设备获取。...适用于处理XML,KML格式的数据。...python的光谱功能包,是一个专门处理遥感波段数据的高级光能包,适用于高光谱处理方面的应用。

    8K52

    Python中gdal栅格影像读取计算与写入及质量评估QA波段筛选掩膜

    1.4 栅格文件数据与信息读取   接下来,利用gdal模块对.tif与.hdf等两种栅格图像加以读取。...将数据转换为整数,可以减少结果数据图层的数据量(因为不需要存储小数了)。   随后,开始依据QA波段进行数据筛选与掩膜。...在这里,QA波段原本为十进制(一般遥感影像为了节省空间,QA波段都是写成十进制的形式),因此需要将其转换为二进制;随后通过获取指定需要的二进制数据位数(在本文中也就是确定自有产品中这一像素来自于哪一种算法的二进制位数...1.6 结果栅格文件写入与保存   接下来,将我们完成上述差值计算与依据算法进行筛选后的图像保存。...格式的GeoTIFF文件;driver.Create(DRT_out_file_tif_path,row,col,1,gdal.GDT_Float32)表示按照路径、行列数、波段数与数据格式等建立一个栅格图层

    30740

    基于Python的Tensorflow卫星数据分类神经网络

    当前范围中使用的数据 在这里,将把Landsat 5 TM的六个波段波段2 - 波段7)视为特征,并尝试预测二进制构建类。...由于使用标记数据来训练模型,因此这是一种受监督的ML方法。 多光谱训练数据及其相应的二进制构建层 将在Python中使用Google的Tensorflow库来构建神经网络(NN)。...包括NN在内的许多ML算法都期望归一化数据。这意味着直方图在一定范围(此处为0到1)之间被拉伸和缩放。将规范化功能以满足此要求。可以通过减去最小值并除以范围来实现归一化。...根据数据大小和计算能力,安装模型需要一些时间。模型编译后可以看到以下内容: 预测单独保存的测试数据的值,并执行各种精度检查。...Hyderabad构建层由模型使用多光谱数据预测 已经精确评估了模型的准确性并进行了调用 - 还可以对预测的栅格进行传统检查(例如kappa系数)。

    3.2K51

    以鄱阳湖为例对土地覆被进行分类以测量萎缩的湖泊(二)

    在多光谱影像(如 Landsat)中,影像中的每个像素(或像元)对于每个光谱波段都有一个值。从鄱阳湖充满活力的图像中可以看出,各种色调和色调都有许多可能的颜色值。...此工具对选择的影像图层或栅格运行无监督分类。它使用 Iso 聚类算法来确定像元自然分组的特征,并根据所需的类数创建输出图层。...打开Iso_1984.tif和1984 年 6 月.tif图层,并确保所有其他图层均已关闭。单击Iso_1984.tif图层以将其选中。...筛选单个像素 首先,将清理被归类为水但不属于鄱阳湖的小型孤立像素。其中一些像素属于小池塘或水体,而另一些则被错误地分类。...众数滤波工具是一种数据制图综合工具。它根据大多数相邻像元的值替换影像或栅格图层中的像元。

    1.2K10

    Python批量更改多波段遥感数据的方法

    本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为的遥感影像文件的方法。   首先,看一下本文的具体需求。...我们现有一个文件夹,其中含有大量.tif格式的遥感影像文件;其中,这些遥感影像文件均含有4个波段,每1个波段都表示其各自的反射率数值。...随后,使用dataset.RasterCount获取波段数量,并使用gdal.GetDriverByName()创建输出数据集的驱动程序对象;紧接着,通过Create()方法创建输出数据集,并指定输出文件的路径...首先,使用dataset.GetRasterBand()方法获取当前波段对象,然后使用band.ReadAsArray()将波段数据读取为数组;根据波段索引的不同,对波段数据进行处理。...其次,使用output_dataset.GetRasterBand()方法获取输出数据集中的当前波段对象,并使用output_band.WriteArray()方法将处理后的数据写入输出数据集。

    15010

    使用Python以优雅的方式实现根据shp数据栅格影像进行切割

    一、前言        前面一篇文章(使用Python实现子区域数据分类统计)讲述了通过geopandas库实现对子区域数据的分类统计,说白了也就是如何根据一个shp数据对另一个shp数据进行切割。...本篇作为上一篇内容的姊妹篇讲述如何采用优雅的方式根据一个shp数据对一个栅格影像数据进行切割。废话不多说,直接进入主题。...dst = rio.open(newtiffname, 'w', **kwargs)打开一个的影像其模式w表示写入。        最后循环原始影像的所有波段,逐一进行投影变换并写入的影像。...后面的基本与投影转换后的一致,根据切割的结果生成一个的影像数据。这样我们就实现了根据shp数据对遥感影像进行切割。效果如下: ?...当然本文没有介绍如何对遥感影像进行处理,其实非常简单,当我们读出影像数据之后,其就是一个numpy的array对象,已经变成了纯数学问题,处理完之后只需要附加投影等信息写入的tiff文件即可。

    5.3K110

    CARVE:2001-2013 年阿拉斯加火灾排放数据库(AKFED)

    数据集有 39 个 GeoTIFF (.tif) 格式的数据文件。...其中 13 个 *.tif 文件是碳消耗量数据,13 个 *.tif 文件是碳消耗量不确定性数据,13 个 *.tif 文件是燃烧日数据,每年一个。...北极储层中的碳脆弱性实验(CARVE)正在阿拉斯加北极地区收集从局部到区域尺度的重要温室气体的详细测量数据,并展示的遥感和改进的建模能力,以量化北极碳通量和碳循环-气候过程。..._2001.tif 空间数据属性 空间表示类型:栅格 像素深度: 32 位 像素类型: 浮点 压缩类型LZW 波段数1 光栅格式: TIFFTIFF 无数据值:无 比例因子:1 单元几何...,使其适用于许多大气研究,并且与其他已发布的估算结果不同。

    6900

    基于ArcGIS Pro的栅格建模器进行滑坡敏感性评估

    利用栅格建模器来完成,使工作流程化,可重复使用。 首先说明下存在的问题,从ArcGIS Living Atlas of the World 在线加载数据,因为网络原因,数据加载很慢。...更改影像处理模板 ArcGIS LivingAtlas 中的栅格数据可能包含不同的处理模板,选定的处理模板也会影响分析,Multispectral Landsat图层上的默认处理模板不允许访问分析所需的光谱波段...所有光谱波段现在都可用,但一次只能显示三个。该图层使用默认可见波段进行绘制:红色、绿色和蓝色。...构建栅格函数模板创建栅格函数模板来分析滑坡敏感性 该模板将包含栅格重分类输入数据并组合结果。它将生成一个输出图层,可识别更容易发生滑坡的区域。...由于使用了来自ArcGISLiving Atlas 的数据,因此没有下载任何输入数据。并且因为使用了栅格函数,没有创建中间或输出数据。看到的结果是通过在线数据的即时处理创建的内存层。

    1.4K20

    arcpy怎么用_python arcpy

    当然编码语言本身也访问空间数据,但是我们需要很清楚地知道数据本身的结构(如python 中的open\read\write函数)。...如影像:tif,img,bmp,HDF等格式。...、波段、行列数,分辨率、是否压缩、像素的行列数、位深等,还有空间坐标信息等,其基本组成部分有:1、栅格信息(R、G、B、NIR等)2空间坐标信息、3、波段、行列数、分辨率、位深 因此,栅格数据的访问一般只是访问栅格信息...(默认值为 None) Variant 将栅格数据转换为 NumPy 数组旨在计算整个栅格行中的像元值的百分比。然后,将会创建一个栅格数据。...面 折线 点 多点 多面体 String 栅格数据集属性 属性 说明 数据类型 bandCount (只读) 栅格数据集内的波段数。

    2.3K20

    地科Python数据分析案例 | 绘制黄土高原局部区域的沟壑覆盖度分析图

    研究流程图 三、案例内容 步骤一 预处理 DEM 数据重投影 地貌分类数据重投影 山体阴影 1.1 DEM 数据重投影 Reproject 将获取得到的 DEM 栅格投影至 CGCS2000 高斯投影...]) ax.set_title('Filled DEM data') plt.show() del fill_image plt.clf() 2.2 流向 D8 Pointer 使用 D8 流向算法创建从每个像元到其下坡相邻点的流向的栅格...ax.set_yticks([]) ax.set_title('Flow Direction') plt.show() del fd_image plt.clf() 2.3 流量 D8Flow Accumulation 创建每个像元累积流量的栅格...指定出水口(一般为已有的水坝或流量计,或是河流网络交汇点,也可以由用户标定感兴趣点)后,根据流向,将所有通过流路连接到出水口的上坡像元标定为一个集水区。...步骤四 沟坡沟底划分 面转栅格 提取平原 提取沟底 提取沟坡 4.1 面转栅格 Vector Polygons To Raster 将区域基本地貌分类矢量数据转为栅格,以便后续分析。

    87930

    基于3DCNN的深度学习卫星图像土地覆盖分类

    因此,很难对人类的数据进行可视化。通过创建RGB复合图像,可以更轻松地有效理解数据。要绘制RGB复合图像,您将绘制红色,绿色和蓝色波段,分别是波段4、3和2。...由于Python使用从零开始的索引系统,因此您需要从每个索引中减去1的值。因此,红色带的索引为3,绿色为2,蓝色为1。 如果像素亮度值偏向零值,则我们创建的合成图像有时可能会很暗。...另外,str_clip参数允许您指定要裁剪的数据尾部的数量。数字越大,数据将被拉伸或变亮的越多。 我们来看一下绘制RGB复合图像以及所应用的拉伸的代码。...以下代码用于创建实现PCA的功能,创建3D补丁以及将数据按70:30的比例拆分为训练数据和测试数据。...您实际上可以将输出文件设置为根据轮次动态命名。您也可以将损失值或准确性值写入日志文件名的一部分。

    88710

    基于ENVI与ERDAS的Hyperion高光谱经验比值、一阶微分法叶绿素及地表参数反演

    ) ̅分别为第k波段对应图像第i列标准差与平均值的对应平均值。...其中,平行六面体的尺度是由标准差阈值所确定的,而该标准差阈值则是根据所选类的均值求出。...FLAASH大气校正是一种绝对大气校正方法,其适用于多光谱数据与高光谱卫星影像数据,能够精确补偿大气对辐射的影响。...(3) 将我们最终定标、合成后的176个波段对应的上述三种属性数据导入到一张的表格中,并导出为TXT文件。其中需要注意,将V-NIR波段与SWIR波段重叠部分的数据剔除。 ?...且由此分析,FLAASH之所以无法正常完成,亦是因为我是用ENVI进行图像预处理,使得波段名称过长;而FLAASH运行过程中会生成很多的临时文件,这些新文件波段命名方式应亦为在各波段前添加单词,从而导致部分波段名称中相互之间唯一不同的字符被

    1.9K30

    基于ENVI与ERDAS的Landsat 7 ETM+单窗算法地表温度(LST)反演

    通过博客2我们已经知道,NDVI是指一幅遥感影像中,近红外波段的反射值与红光波段的反射值之差比上这二者之和;其可以用来检测植被生长状态、植被覆盖度,还可以消除部分辐射误差等,反映出植物冠层的背景影响。...,特别适用于植被生长旺盛、具有较高覆盖度的植被监测。...需要注意的是,不要转换为“.tif”格式的文件,否则图像文件将会丢失其原有的空间信息。...(4) 多个单一模型调试无误并保存后,可以将其合并在一个的模型中,从而实现多个操作一步完成。 ? 2.9 大气校正调试 通过上述模型得到NDVI等植被指数的数据图像后,对图像的数值加以观察。...关于上述大气校正对DVI数值如此明显的影响,我认为或许就是在FLAASH大气校正时拉伸了原有图像像元取值的整体排布,分别扩大、降低了第三、第四波段对应的最大值与最小值,从而使得两个波段数值做差之后得到的结果进一步出现较大差距

    1.6K20
    领券