rasterio中如何使一个没有地理信息的栅格数据含有地理数据
时间: 2024-05-05 21:15:11 浏览: 15
要使一个没有地理信息的栅格数据含有地理数据,可以使用rasterio中的函数affine和crs。affine函数用于定义栅格数据的分辨率和位置,而crs函数用于定义数据的投影信息。
首先,使用rasterio打开没有地理信息的栅格数据:
```
import rasterio
import numpy as np
# 打开栅格数据
data = np.random.rand(100, 100) * 255 # 生成随机数据
with rasterio.open('test.tif', 'w', driver='GTiff', height=data.shape[0], width=data.shape[1], count=1, dtype=data.dtype) as dst:
dst.write(data, 1)
```
接下来,使用affine函数和crs函数定义栅格数据的地理信息:
```
from rasterio.transform import Affine
from rasterio.crs import CRS
# 定义地理信息
transform = Affine(1, 0, 0, 0, -1, data.shape[0])
crs = CRS.from_epsg(4326)
# 写入地理信息
with rasterio.open('test.tif', 'r+') as dst:
dst.transform = transform
dst.crs = crs
```
这里使用Affine函数定义了栅格数据的分辨率为1,位置为(0,0),并且翻转了Y轴。然后使用CRS函数定义了数据的投影信息为WGS84(EPSG:4326)。最后通过打开文件并将transform和crs属性设置为定义的值,将地理信息写入栅格数据。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)