python遥感数据有偿处理_利用python读写tiff遥感影像数据

from osgeo import gdal

# 读图像文件

def read_img(filename):

dataset = gdal.Open(filename) # 打开文件

im_width = dataset.RasterXSize # 栅格矩阵的列数

im_height = dataset.RasterYSize # 栅格矩阵的行数

im_geotrans = dataset.GetGeoTransform() # 仿射矩阵

im_proj = dataset.GetProjection() # 地图投影信息

im_data = dataset.ReadAsArray(0, 0, im_width, im_height).astype(np.float) # 将数据写成数组,对应栅格矩阵

del dataset # 关闭对象,文件dataset

return im_proj, im_geotrans, im_data, im_height, im_width

def write_img(filename, im_proj, im_geotrans, im_data):

# gdal数据类型包括

# gdal.GDT_Byte,

# gdal .GDT_UInt16, gdal.GDT_Int16, gdal.GDT_UInt32, gdal.GDT_Int32,

# gdal.GDT_Float32, gdal.GDT_Float64

# 判断栅格数据的数据类型

if 'int8' in im_data.dtype.name:

datatype = gdal.GDT_Byte

elif 'int16' in im_data.dtype.name:

datatype = gdal.GDT_UInt16

else:

datatype = gdal.GDT_Float32

# 判读数组维数

if len(im_data.shape) == 3:

im_bands, im_height, im_width = im_data.shape

else:

im_bands, (im_height, im_width) = 1, im_data.shape

# 创建文件

driver = gdal.GetDriverByName("GTiff") # 数据类型必须有,因为要计算需要多大内存空间

dataset = driver.Create(filename, im_width, im_height, im_bands, datatype)

dataset.SetGeoTransform(im_geotrans) # 写入仿射变换参数

dataset.SetProjection(im_proj) # 写入投影

if im_bands == 1:

dataset.GetRasterBand(1).WriteArray(im_data) # 写入数组数据

else:

for i in range(im_bands):

dataset.GetRasterBand(i + 1).WriteArray(im_data[i])

del dataset

if __name__=='__main__':

proj, geotrans, values, row, column = read_img(输入数据) # 读数据

write_img(r'输出地址', proj, geotrans, 输出影像名称)#写数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538927.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat启动时自动加载Servlet

转自:http://zhaoyongpan.blog.51cto.com/2714930/676239 想实现这样的功能: 1. Tomcat启动时随即启动Servlet; 2. Servlet启动时定时执行一个任务。 要点: 1、Tomcat中启动Servlet时,只需要在Servlet所在的工程的配置文件web…

internal java compiler error_Java异常处理总结

背景 最近专门负责团队的项目质量。我在治理异常日志过程中,总结了一下Java的异常处理。上面是我整理的最近自己比较常见的异常知识地图。异常知识地图概述 从异常知识地图最左边的根开始看,地图从左到右的连线连接的类之间有实实在在的父…

java异步刷新集合,同步和异步集合的性能测试,异步集合性能测试,package cn.o

同步和异步集合的性能测试,异步集合性能测试,package cn.opackage cn.outofmemory.snippets.core;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Vector;import java.util.concurrent.TimeUnit;public class Co…

cuda nvcc版本不一致_windows 验证CUDA和CUDNN是否安装成功

安装完成CUDA,使用 nvcc -V 验证是否安装成功,看到如下信息说明安装成功接下来就可以安装 cuDNN 了。安装cuDNN下载 cuDNN,下载之前需要先注册一下 Nvidia 的账号,下载地址为:https://developer.nvidia.com/rdp/cudnn-…

Nova Cell

Nova Cell V2 详解 现在 ,OpenStack 在控制平面上的性能瓶颈主要在 Message Queue 和 Database 。 尤其是 Message Queue , 随着计算节点的增加 , 性能变的越来越差 。 为了应对这种情况 , Nova 很早之前提出来 nova-cell ( 以下以 cellv1 代…

Android 通过WIFI状态监听广播,判断进入指定wifi范围

原文地址:http://blog.csdn.net/kongxiuqi/article/details/52524500 --------------------------------------------- WIFI状态变化会发送广播,一些可用的广播在WifiManger.java中可以看到。 广播一:WIFI 状态开关变化的监听,en…

2018年度最佳网页设计与开发教程

任何一个网站从开发到最终上线, 都是需要团队协作且谨慎的一个过程,而实际中往往会遇到各类问题,所以网页设计师通常需要扮演多种角色,除了掌握必备的网页设计技能外,更应该对后期的开发流程及内容有所了解&#xff0c…

mysql_ping()函数的作用以及返回值的类型正确的是,[单选] mysql_ping()函数的作用以及返回值的类型正确的是:()...

[单选] mysql_ping()函数的作用以及返回值的类型正确的是:()更多相关问题中华田园犬,雄性,2岁,昨晚外出未归,今晨发现患犬精神沉郁,呼吸急促,体温39℃,左胸侧壁中下部有创1884年新疆…

java 截取byte数组_2020年的秋招已经开始了!最新Java面试题大全(文末附参考答案)送给大家...

包含的模块本文分为十九个模块,分别是:Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM共包含 208 道面…

MVP模式在Android项目中的使用

烦了在Activity中编写太多的代码,该app由我来主导。就选择用MVP模式。 概述 MVP是模型(Model)、视图(View)、主持人(Presenter)的缩写,分别代表项目中3个不同的模块。 模型&#…

运行时错误7内存溢出_C++程序运行时的内存模型

C程序在运行时会将内存划分为4个区域:1代码区:存放函数体的二进制代码,由操作系统进行管理2全局区:存放程序的全局变量、静态变量、常量3栈区:由编译器进行自动分配和释放,存放函数的参数值,局部…

php strip_tags 少,详解PHP函数 strip_tags的用法不足之处

这篇文章主要介绍了详解PHP函数 strip_tags 处理字符串缺陷bug的相关资料,需要的朋友可以参考下详解PHP函数 strip_tags 处理字符串缺陷bugPHP 函数 strip_tags() 是一个常用函数,该函数可以剥去字符串中的 HTML、XML 以及 PHP 的标签。极大方便了对字符串的操作&am…

玩转Android之MVVM开发模式实战,炫酷的DataBinding!

原文:http://blog.csdn.net/u012702547/article/details/52077515 --------------------------------------------------------- MVP可以结合android的DataBinding -------------------------以下转载--------------- C# 很早就有了MVVM的开发模式,An…

打造一款便携版的Sublime Text

https://segmentfault.com/a/1190000000707661 https://www.cnblogs.com/52cik/p/sublime-diy.html 直接安装Sublime Text,不要打开 大家可以参照上文提到的《Sublime Text 全程指引》中的步骤去进行安装。我这里使用的是Sublime Text 2,其实3也是一样的…

confluence创建页面加载缓慢_树莓派4B使用docker安装confluence

说明confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki。通过它可以实现团队成员之间的协作和知识共享。现在大多数公司都会部署一套confluence,用作内部wiki。另外confluence也可以作为个人的知识管理工具来用,只需要花10…

python用map提取一个数的个十百位数_如何使用python中的map函数?

我们在使用python过程中,为了避免错误删除,会选择做好一个序列后可以插入另外的序列中做为新序列的一部分内容。方便完成一些复杂的工程或多个片段分别编辑后再串成一个完整工程的操作。之前小编向大家介绍了在序列中起到累计作用的reduce函数(https://w…

matlab粒子加速器仿真,粒子群算法优化PID参数 仿真不出结果 程序如下

用的是《MATLAB智能算法30个案例分析》中的程序1.文件名为PSO_PID.mfunction z PSO_PID(x)assignin(base,Kp,x(1)); % 粒子群依次赋值给Kp 这部分运行结果> PSO_PIDassignin(base,Ki,x(2)); …

CentOS5、6的启动流程

CentOS5/6的启动流程启动流程画了张图,看着更清晰些: (centos7的启动流程变化挺大的,这部分待补充)补充(/etc/rc.d/rc.local 不属于任何服务,为特殊文件,可将不能定义为服务又想开机运行的命令定义在此文件中)添加自定义服务:[rootel5 init.d]# vi /etc/init.d/testsrv #!/bin…

Spark交互式分析平台Apache Zeppelin的安装

Zeppelin介绍 Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化。背后可以接入不同的数据处理引擎,包括Spark, Hive, tajo等,原生支持Scala, Java, shell, markdown等。它的整体展现和使用形式和Databricks Cloud是…

win7 php zend,win7系统打开WZend Studio PHP出错的解决方法

很多朋友安装win7系统后,在使用的过程中会遇到win7系统打开WZend Studio PHP出错的情况,可能有很多用户还是不能自己处理win7系统打开WZend Studio PHP出错的问题,其实简单的来说处理win7系统打开WZend Studio PHP出错的问题只需要按照 1、在…