Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何使用带坐标的光栅保存geotiff文件?_Python_Rasterio - Fatal编程技术网

Python:如何使用带坐标的光栅保存geotiff文件?

Python:如何使用带坐标的光栅保存geotiff文件?,python,rasterio,Python,Rasterio,我用如下所述的形状文件屏蔽了geotiff光栅 import rasterio from rasterio.plot import show import geopandas as gpd population = rasterio.open('myData.tif') gdf = gpd.read_file('myFile.shp') clipped_array, clipped_transform = rasterio.mask.mask(population, [mapping(ps.

我用如下所述的形状文件屏蔽了geotiff光栅

import rasterio
from rasterio.plot import show
import geopandas as gpd

population = rasterio.open('myData.tif')
gdf = gpd.read_file('myFile.shp')
clipped_array, clipped_transform = 
rasterio.mask.mask(population, [mapping(ps.iloc[0].geometry)], crop=True)

f,ax=plt.subplots(figsize=(10,10))
gdf.boundary.plot(ax=ax, lw=3, color='red')
show(clipped_array, transform=clipped_transform, ax=ax)
ax.set_xlim([1.82, 2.74])
ax.set_ylim([48.51, 49.14])


现在,我想将新数据保存为带有坐标和信息的
.tif
文件。

您可以使用此文件写入新的.tif。由于光栅需要一些元来写入,所以通常使用输入光栅,例如在本例中使用调整的属性

import rasterio
import os
import fiona
from rasterio import mask


with fiona.open('myFile.shp', "r") as shapefile:
    shapes = [feature["geometry"] for feature in shapefile]

with rasterio.open('myData.tif') as src:
    out_meta = src.meta
    out_image, out_transform = rasterio.mask.mask(src, shapes=shapes, crop=True)

    
    profile = src.profile
    profile["height"] = out_image.shape[1]
    profile["width"] = out_image.shape[2]
    profile["transform"] = out_transform

   
    out_meta.update({"driver": "GTiff",
                 "height": out_image.shape[1],
                 "width": out_image.shape[2],
                 "transform": out_transform})

with rasterio.open("masked.tif", "w", **out_meta) as dest:
    dest.write(out_image)

你试过下面我的答案了吗?如果它不能回答您的问题,请告诉我您还需要什么。