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.pswp.cn/news/538927.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538927.shtml
英文地址,請注明出處:http://en.pswp.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、在…