rasterio包的安装与读取tiff的方式

本文主要参考:

python rasterio库安装具体流程 - 知乎

rasterio的安装和使用_罗罗攀的博客-CSDN博客


一、rasterio的安装

rasterio有很多依赖的其他包,所以

需要依次安装如下包:

  1. pyproj
  2. Shapely
  3. GDAL
  4. Fiona
  5. geopandas
  6. rasterio

PS:其中GDAL、Fiona、rasterio三个库不可以用“pip install +库名”直接安装,需要下载.whl文件安装。其他库可按照pip install下载安装。

详细安装方式:

1. pyproj

pip install pyproj

2. Shapely

pip install Shapely

3. GDAL

GDAL下载链接

选择与你的python版本相对应的,最高版本的GDAl

例如我的python=3.8,所以我下载的是

GDAL-3.4.3-cp38-cp38-win_amd64.whl

rasterio包的安装与读取tiff的方式_第1张图片

下载完成后,具体安装方式:

把 GDAL-3.4.3-cp38-cp38-win_amd64.whl 拖到桌面上

在anaconda中打开要安装这个包的虚拟环境

conda activate road_env(环境名)

conda activate road_env(环境名)
cd C:\Users\DELL\Desktop
pip install GDAL-3.4.3-cp38-cp38-win_amd64.whl

图示:

rasterio包的安装与读取tiff的方式_第2张图片

 安装成功!

4. Fiona

方式同GDAL,请参考。

Fiona下载链接

rasterio包的安装与读取tiff的方式_第3张图片

5. geopandas

pip install geopandas

6. rasterio

方式同GDAL,请参考。

rasterio下载链接

rasterio包的安装与读取tiff的方式_第4张图片

在import rasterio后,运行代码时,很可能会报错:

把numpy换成最高级的版本即可(可以先卸载再安装)

二、使用rasterio读取.tif文件

# 导入包
import rasterio

# 读入.tif文件,file_path是.tif文件的地址
img = rasterio.open(file_path).read()

rasterio读取tif、cv2读取jpg或png的异同:

1. 相同之处

两种方式得到的img,都是数组形式的,差不多。

2. 不同之处

(1)tif格式的图片中还有其他光谱信息,得到的数组数值可能不是0~255之间的,此时需要自己归范化到0~255,或者有些比赛提供的tif图片本来就是0~255的R、G、B三通道数据,这样的话就不用自己处理了。

(2)得到的img.shape不同

rasterio得到的img.shape是 c, h, w

cv2得到的img.shape是h, w, c

可以使用

img = np.array(img, np.float32).transpose(1, 2, 0)

交换通道即可,具体transpose的用法可以自己百度哦

PS:在使用.tif文件跑深度学习代码时,如果通道为RGB三通道,此时.tif文件与我们平时所使用的jpg,.png差不多,可以直接使用opencv(read)、Image(open)等方式,可以不使用rasterio。

你可能感兴趣的:(python,python,深度学习,开发语言)