首页 > 编程语言 >python处理栅格数据

python处理栅格数据

时间:2024-02-23 15:46:30浏览次数:36  
标签:bytearray 字节 处理 space python data 栅格数据 默认值 buf

字节序列:

ReadRaster([xoff], [yoff], [xsize], [ysize], [buf_xsize], [buf_ysize], [buf_type], [band_list],[buf_pixel_space], [buf_line_space], [buf_band_space])

xoff是列读取起点,默认值为0。
yoff是行读取起点,默认值为0。
xsize是读取的列数,默认为全部读取。
ysize是读取的行数,默认为全部读取。
buf_xsize是输出数组里的列数,默认值为使用 win_xsize 值。如果此值不同于 win_xsize,则数据将重采样。
buf_ysize是输出数组里的行数,默认值为使用 win_ysize 值。如果此值不同于 win_ysize,则数据将重采样。
buf_type 是返回序列的GDAL目标数据类型,默认值与源数据相同。
band_list是要读取的波段列表,默认读取所有波段。
buf_pixel_space是序列中像素之间的字节偏移,默认值为buf_type的大小。
buf_line_space是序列中行间的字节偏移,默认值是 buf_type 乘以 xsize 。
buf_band_space是序列中列间的字节偏移,默认值是 buf_line_space 乘以 ysize

import os
import numpy as np
from osgeo import gdal

data_dir = r'D:\modis'

# os.chdir(os.path.join(data_dir, ' ', ' '))
ds = gdal.Open('MOD03.tif')
data = ds.ReadRaster(1400, 2000, 2, 2, band_list=[1])
print(data)
# 取出第一个值,将从字节转换为数字
print(data[0])

# 尝试更改第一个像素的值。
# 输出失败,因为不能更改字节字符串
data[0] = 50

# 将字节字符串转换为字节数组
# 更改第一个值,输出成功
bytearray_data = bytearray(data)  # bytearray是字节数组
bytearray_data[0] = 50
print(bytearray_data[0])

# import struct
# tuple_data = struct.unpack('B' * 4, data) # 指定4个字节
# print(tuple_data)
#
# numpy_data1 = np.array(tuple_data)
# print(numpy_data1)
# 假设 'data' 是一个 bytearray 对象
# data = bytearray(b'\x01\x02\x03\x04')  # 示例数据

# 将 bytearray 转换为 bytes 对象
data_bytes = bytes(data)
# 将字节字符串转换为numpy数组
# 重构一个numpy数组,使其具有2行2列,就像读入的原始数据一样
numpy_data2 = np.frombuffer(data_bytes, np.int8)
reshaped_data = np.reshape(numpy_data2, (2,2))
print(reshaped_data)
View Code

 




标签:bytearray,字节,处理,space,python,data,栅格数据,默认值,buf
From: https://www.cnblogs.com/shiningleo007/p/18029699

相关文章

  • python 面向对象(进阶篇)
    上一篇《Python面向对象(初级篇)》文章介绍了面向对象基本知识:面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用类是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中)对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函......
  • python使用栅格计算器
    重采样是指根据一类象元的信息内插出另一类象元信息的过程。在遥感中,重采样是从高分辨率遥感影像中提取出低分辨率影像的过程。常用的重采样方法有最邻近内插法、双线性内插法和三次卷积法内插。  ReadAsArray函数可以重采样读取的数据,并且指定输出缓冲区大小或传递一个已有......
  • UtilMeta - 简洁高效的 Python 后端元框架
    最近开源了我开发多年的一个Python后端框架:UtilMeta项目介绍UtilMeta是一个用于开发API服务的后端元框架,基于Python类型注解标准高效构建声明式接口与ORM查询,能够自动解析请求参数与生成OpenAPI文档,高效开发RESTful接口,产出的代码简洁清晰,并且支持使用主流Python......
  • python调用Javascript实践
    一、背景知识1、Node.jsjavacript的运行环境有两个:浏览器、node.jsNode.js是一个开源与跨平台的JavaScript运行时环境。它是一个可用于几乎任何项目的流行工具!Node.js在浏览器外运行V8JavaScript引擎(GoogleChrome的内核)。这使Node.js表现得非常出色。运行js的命......
  • python特殊的函数
    一、文件操作1.操作googlesheetcredentials_file_path=os.path.abspath("./credentials.json")#授权:authorize():这是pygsheets库中的一个函数,用于授权对GoogleSheets的访问。为了使用GoogleSheetsAPI,你需要有一个有效的OAuth2.0凭据,这个凭据通常是一......
  • 图片加载失败后的占位图处理
    <img/>标签,如果因为网络或者跨域限制等原因无法正常加载,会出现图片裂开的样子,如果设置了alt属性值,则alt属性对应的内容也会一并显示。例如:   这样的效果是不太好看的我们可以用一张占位图去替换上面裂开的样式,这样更为美观,例如:      解决方式:1<div>2......
  • Python打开https链接报错:unable to get local issuer certificate
    Python打开https链接报错:unabletogetlocalissuercertificate或安装Python3.10以上版本,需要openssl1.1.1以上版本,会导致openssl下面缺少证书,记录下安装方法问题描述:当使用urllib.urlopen打开一个https链接时抛出如下异常:urllib.error.URLError:<urlopenerror[SSL:......
  • Python使用GDAL
     调用GDAL库:fromosgeoimportgdalimportnumpyasnpimportcv2importmatplotlib.pyplotaspltimportmatplotlibnp.set_printoptions(threshold=np.inf)#使print大量数据不用符号...代替而显示所有dataset=gdal.Open("D:/modis/jf6.tif")print(dataset.Ge......
  • 软件无线电处理平台设计方案:330-基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U PXIe接口
    一、板卡概述   本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8、64bit DDR3容量2GByte,HPC的FMC连接器,板卡支持PXIE标准协议,其中XJ3标准高速差分接口,支持PCIeX 2。软件具有windows,Linux驱动。 二、功能和技术指标......
  • FMC子卡设计资料原理图450-基于ADRV9009的双收双发射频FMC子卡 数字信号处理卡 射频收
    FMCJ450-基于ADRV9009的双收双发射频FMC子卡   一、板卡概述       ADRV9009是一款高集成度射频(RF)、捷变收发器,提供双通道发射器和接收器、集成式频率合成器以及数字信号处理功能。这款IC具备多样化的高性能和低功耗组合,FMC子卡为2路输入,2路输......