Java gdal裁切灰度图_利用Python裁切tiff图像且读取tiff,shp文件

from osgeo import gdal, gdalnumeric, ogr

from PIL import Image, ImageDraw

from osgeo import gdal_array

import os

import operator

from functools import reduce

gdal.UseExceptions()

def readTif(fileName):

dataset = gdal.Open(fileName)

if dataset == None:

print(fileName+"文件无法打开")

return

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

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

im_bands = dataset.RasterCount #波段数

band1=dataset.GetRasterBand(1)

print(band1)

print ('Band Type=',gdal.GetDataTypeName(band1.DataType))

im_data = dataset.ReadAsArray(0,0,im_width,im_height)#获取数据

im_geotrans = dataset.GetGeoTransform()#获取仿射矩阵信息

im_proj = dataset.GetProjection()#获取投影信息

im_blueBand = im_data[0,0:im_height,0:im_width]#获取蓝波段

im_greenBand = im_data[1,0:im_height,0:im_width]#获取绿波段

im_redBand = im_data[2,0:im_height,0:im_width]#获取红波段

im_nirBand = im_data[3,0:im_height,0:im_width]#获取近红外波段

return(im_width,im_height,im_bands,im_data,im_geotrans

,im_proj,im_blueBand,im_greenBand,im_redBand,im_nirBand)

#保存tif文件函数

import gdal

import numpy as np

def writeTiff(im_data,im_width,im_height,im_bands,im_geotrans,im_proj,path):

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_ba

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值