python:使用geopandas和rasterio将矢量范围内的栅格值赋为0并重新输出

这篇具有很好参考价值的文章主要介绍了python:使用geopandas和rasterio将矢量范围内的栅格值赋为0并重新输出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:有一个点shp文件和一个栅格,想要构建shp中每个点的缓冲区,并且缓冲区范围内的栅格值重新赋为0并输出新的tif文件

解决方法:使用python中的geopandas和rasterio中的掩膜操作实现

代码如下:

import numpy as np
import rasterio
from rasterio.features import geometry_mask
import geopandas as gpd
from shapely.geometry import Point
from shapely.ops import cascaded_union
from shapely.ops import unary_union

# 读取点数据
difangdef = gpd.read_file('abc.shp')

# 创建缓冲区
buffer_distance = 10000  # 缓冲区距离(单位:米)
buffers = difangdef.geometry.to_crs('EPSG:3395').buffer(buffer_distance)

# 将缓冲区合并为一个多边形
union_buffer = unary_union(buffers)

# 读取栅格数据
with rasterio.open('ddd.tif') as src:
    # 利用栅格数据的空间参考创建一个蒙版
    mask = geometry_mask([union_buffer], out_shape=src.shape, transform=src.transform, invert=True)

    # 读取栅格数据作为numpy数组
    raster_data = src.read(1)

    # 将蒙版应用到栅格数据,这里的值可以任意修改赋的值,这里替换为-100
    raster_data[mask] = -100
    
    raster_data = np.where(raster_data == raster_data[0,0], np.nan, raster_data)
    
plt.imshow(raster_data)
plt.colorbar()
plt.show()

# 创建一个新的栅格数据文件来保存结果
with rasterio.open('path_to_output_raster.tif', 'w', **src.meta) as dst:
	dst.write(raster_data, 1)

如果已有的是面文件,想要将面文件范围内的栅格值重新赋值,可以直接读取shp后进行掩膜操作,不需要构建缓冲区。

上述代码实现后的结果如下:

python:使用geopandas和rasterio将矢量范围内的栅格值赋为0并重新输出,python,python,开发语言,掩膜提取,栅格计算文章来源地址https://www.toymoban.com/news/detail-643002.html

更多内容请关注公众号:GISerQ

到了这里,关于python:使用geopandas和rasterio将矢量范围内的栅格值赋为0并重新输出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • sql 查询时间范围内的数据

    要查询特定时间范围内的数据,您可以使用 SQL 中的  BETWEEN  运算符。以下是一个示例查询,它从名为  your_table  的表中检索在  start_date  和  end_date  之间创建的所有记录: 请注意,您需要将  your_table  替换为您要查询的表的名称, created_date  替换为包含日期/时间值的

    2024年01月22日
    浏览(58)
  • [数据分析与可视化] Python绘制数据地图3-GeoPandas使用要点

    本文主要介绍GeoPandas的使用要点。GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。GeoPandas的官方文档地址为:GeoPandas-doc。本文主要参考GeoPandas Examples Gal

    2024年02月09日
    浏览(41)
  • 在 JavaScript 中生成特定范围内的随机整数

    如何在 JavaScript 中的两个指定变量之间生成随机整数,例如 x = 4 和 y = 8 会输出 4, 5, 6, 7, 8 中的任何一个? 保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com Mozilla Developer Network 页面上有一些示例: 这是它背后的逻辑。这是一

    2024年02月06日
    浏览(39)
  • 如何有效提高矢量网络分析仪的动态范围

            动态范围是网络分析仪(VNA)接收机的最大输入功率与最小可测量功率(本底噪声)之间的差值,如图所示,要使测量有效,输入信号必须在这些边界内。         如果需要测量信号幅度非常大的变化,例如,滤波器带通和抑制,那么增加动态范围非常重要,

    2024年02月02日
    浏览(60)
  • 正态分布t个标准差范围内的概率

    如果一个随机变量具有概率密度函数 f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 , − ∞ x ∞ begin{aligned} f(x)=frac{1}{sqrt{2pi} sigma} e^{-frac{(x-mu)^2}{2sigma^2}}, quad -infty x infty end{aligned} f ( x ) = 2 π ​ σ 1 ​ e − 2 σ 2 ( x − μ ) 2 ​ , − ∞ x ∞ ​ 则称X为正态随机变量并记为 X ∼ N

    2024年02月07日
    浏览(55)
  • 如何在 MATLAB 中生成指定范围内的随机数

    如何在 MATLAB 中生成指定范围内的随机数 在 MATLAB 中,我们可以使用内置函数来生成指定范围内的随机数。这些函数包括 rand 、 randi 和 randn ,它们分别用于生成在[0,1)范围内的均匀分布随机数、在指定范围内的整数随机数以及符合标准正态分布的随机数。 下面我将为你展示如

    2024年02月06日
    浏览(55)
  • LeetCode 2559. 统计范围内的元音字符串数:前缀和

    力扣题目链接:https://leetcode.cn/problems/count-vowel-strings-in-ranges/ 给你一个下标从 0 开始的字符串数组 words 以及一个二维整数数组 queries 。 每个查询 queries[i] = [l i , r i ] 会要求我们统计在 words 中下标在 l i 到 r i 范围内( 包含 这两个值)并且以元音开头和结尾的字符串的数目。

    2024年02月07日
    浏览(44)
  • ElasticSearch - 根据经纬度,简单搜索指定距离范围内的数据

    ES的地图检索方式 ES支持的地图检索方式有以下几种; geo_distance geo_bounding_box geo_polygon 1、 geo_distance :直线距离检索,如给定点A,要求返回地图上距离点A三千米的商家(点外卖场景) 2、查找索引内距离北京站(116.433733,39.908404)3000米内的点 geo_distance涉及的参数如下 location:确

    2024年02月14日
    浏览(44)
  • 【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

    目录 0.环境 1.适用场景 2.pandas.merge()函数详细介绍 3.名词解释“数据对齐”(来自chatGPT3.5) 4.本文将给出两种数据对齐的例子 1)dataframe类型数据和dataframe类型数据对齐(对齐NAME列); 数据对齐前的两组数据集: 数据对齐后的数据集(通过pandas.merge()函数对齐): 代码 2)

    2024年02月09日
    浏览(48)
  • 【数据分享】2013-2020年全国范围的逐日SO2栅格数据(免费获取)

    空气质量数据是在我们日常研究中经常使用的数据!之前我们分享了来自于Zendo平台的1km分辨率的PM2.5、PM10和10km分辨率的SO2栅格数据(均可查看之前文章获悉详情): 2000-2021年全国1km分辨率的逐日PM2.5栅格数据 2000-2021年全国1km分辨率的逐月PM2.5栅格数据 2000-2021年全国1km分辨率

    2024年02月14日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包