当前位置: 首页 > news >正文

jrc水体分类对水体二值掩码修正

   使用deepwatermap生成的水体二值掩码中有部分区域由于被云挡住无法识别,造成水体不连续是使用jrc离线数据进行修正,jrc数据下载连接如下:https://global-surface-water.appspot.com/download

选择指定区域的数据集合下载如图:

使用开源项目deepwatermap生成tiff格式的水体二值掩码图(需要把原本的png水体图进行转成tiff格式使用gdal把原始的坐标迁移过去)弄好之后开始对水体中非连续的水体使用jrc文件补全。

修正的代码如下:

import numpy as np
import rioxarray as rxr
from rasterio.enums import Resamplingdef update_water_classification(target_path, output_path, water_threshold=2.5,jrc_path='occurrence_90E_30Nv1_4_2021.tif'):# 加载目标影像(含水体掩膜)ZB_target = rxr.open_rasterio(target_path, masked=True).squeeze()# 加载JRC水体发生频率数据作为ZBZB = rxr.open_rasterio(jrc_path, masked=True).squeeze()# 将ZB重新投影到目标影像的CRS,并重采样以匹配空间分辨率ZB_resampled = ZB.rio.reproject_match(ZB_target, resampling=Resampling.bilinear)#生成临时文件 仅用来测试jrc是否依据水体掩码进行重采样到相同大小# ZB_resampled = genTempTiffFile(ZB_resampled)# 创建一个新的掩码用于保存更新后的数据updated_mask = ZB_target.copy()  # 复制原始掩码作为基础# 找出需要更新的非水体像素位置(即值为0的位置)non_water_pixels = ZB_target.values == 0# 更新非水体区域:如果对应的ZB_resampled值大于等于water_threshold,则设为1(水体)# 使用布尔索引避免在同一数组上读写updated_mask.values[non_water_pixels] = np.where(ZB_resampled.values[non_water_pixels] >= water_threshold,1,0)# 保存最终结果updated_mask.rio.to_raster(output_path)print("Process completed.")def genTempTiffFile(ZB_resampled):# 保存重采样后的JRC数据到临时文件# 设置一个新的数据类型和默认的nodata值new_dtype = 'float32'  # 或者其他适当的数据类型if np.issubdtype(new_dtype, np.floating):default_nodata = -9999.0  # 浮点类型的默认nodata值else:default_nodata = np.iinfo(new_dtype).min  # 整数类型的默认nodata值# 确保nodata值在新的数据类型范围内if 'nodata' in ZB_resampled.attrs:original_nodata = ZB_resampled.attrs['nodata']if not np.issubdtype(type(original_nodata), np.number) or not (np.iinfo(new_dtype).min <= original_nodata <= np.iinfo(new_dtype).max):print(f"Warning: nodata value {original_nodata} out of range for dtype {new_dtype}. Adjusting nodata value.")original_nodata = default_nodataelse:original_nodata = default_nodataprint("No nodata value found. Using default nodata value.")# 设置新的nodata值并转换数据类型ZB_resampled = ZB_resampled.rio.write_nodata(original_nodata)ZB_resampled = ZB_resampled.astype(new_dtype)ZB_resampled.rio.to_raster("resampled_jrc.tiff", dtype=new_dtype, nodata=original_nodata)print(f"Resampled JRC data saved to resampled_jrc")return ZB_resampled# if __name__ == '__main__':
#     jrc_file = "occurrence_90E_30Nv1_4_2021.tif"
#     target_tiff = "D:/s2/L2A_T46RFS_A026142_20220309T042244_merged_cropped_binary_watermask.tiff"
#     output_tiff = target_tiff.replace('_merged_cropped_binary_watermask.tiff',
#                                       '_merged_cropped_binary_watermask_jrc.tiff')
#     update_water_classification(target_tiff, output_tiff)
#     print("影像处理完成并已保存")

 在此记录一下!希望可以帮到需要的朋友!

相关文章:

jrc水体分类对水体二值掩码修正

使用deepwatermap生成的水体二值掩码中有部分区域由于被云挡住无法识别&#xff0c;造成水体不连续是使用jrc离线数据进行修正&#xff0c;jrc数据下载连接如下&#xff1a;https://global-surface-water.appspot.com/download 选择指定区域的数据集合下载如图&#xff1a; 使…...

营销/CDP/MA/SCRM

最近几年面向企业用户的营销系统&#xff0c;cdp&#xff0c;ma&#xff0c;scrm等发展迅速&#xff0c;下面就简单介绍一下这些系统。 架构图 架构图中显示了CDP&#xff0c;MA&#xff0c;SCRM的核心功能&#xff0c;其实还有基础底座的功能。 比如统一登录&#xff0c;权限…...

免费CDN加速,零成本提升网站速度!

1. 起因 免备案的服务器要么在海外&#xff0c;要么是国内通过内网穿透才能访问&#xff0c;这两种方法好处是免费&#xff0c;坏处是延迟太高&#xff0c;有的地区延迟能到四五百甚至超时&#xff0c;这样明显是不行的。 所以需套一个cdn来加速&#xff0c;在2024年&#xff0…...

2024-12-29-sklearn学习(25)无监督学习-神经网络模型(无监督) 烟笼寒水月笼沙,夜泊秦淮近酒家。

文章目录 sklearn学习(25) 无监督学习-神经网络模型&#xff08;无监督&#xff09;25.1 限制波尔兹曼机25.1.1 图形模型和参数化25.1.2 伯努利限制玻尔兹曼机25.1.3 随机最大似然学习 sklearn学习(25) 无监督学习-神经网络模型&#xff08;无监督&#xff09; 文章参考网站&a…...

RSA e与phi不互质(AMM算法进行有限域开根)

e与phi不互质 这一部分学习来自trup师傅的博客 针对CTFer的e与phi不互素的问题 - 跳跳糖 1&#xff1a;m^t<n from Crypto.Util.number import * from secret import flag flag bflag{*********} m bytes_to_long(flag) p getPrime(1024) q getPrime(1024) n p * q …...

网络物理互连

案例简介 美乐公司为新创建公司&#xff0c;公司现需要架设网络&#xff0c;需要下属分公司通过路由器与外网服务器联通&#xff0c;请使用Packet Tracer&#xff0c; 按照任务要求完成实验。实验中需配置设备或端口的IP地址。 1、绘制拓扑图 2、配置ip地址 3、配置路由ip R0 …...

论文研读:Text2Video-Zero 无需微调,仅改动<文生图模型>推理函数实现文生视频(Arxiv 2023-03-23)

论文名&#xff1a;Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Generators 1. 摘要 1.1 方法总结 通过潜空间插值, 实现动作连续帧。 以第一帧为锚定&#xff0c;替换原模型的self-attention&#xff0c;改为cross-attention 实现 保证图片整体场…...

服务端错误的处理和web安全检测

文章目录 I 服务端错误的处理业务返回码处理前端处理业务返回码nginx处理http状态码II web安全检测区分服务器类型主机扫漏III 使用 micro_httpd 搭建一个PHP站点步骤下载micro_httpd 并安装它配置micro_httpd 来服务PHP文件I 服务端错误的处理 服务端发生错误时,返回给前端的…...

鸿蒙TCPSocket通信模拟智能家居模拟案例

效果图 一、智能家居热潮下的鸿蒙契机 在当下科技飞速发展的时代&#xff0c;智能家居已如浪潮般席卷而来&#xff0c;深刻地改变着我们的生活方式。从能依据环境光线自动调节亮度的智能灯具&#xff0c;到可远程操控、精准控温的智能空调&#xff0c;再到实时监测健康数据的智…...

SQL-leetcode-197. 上升的温度

197. 上升的温度 表&#xff1a; Weather ---------------------- | Column Name | Type | ---------------------- | id | int | | recordDate | date | | temperature | int | ---------------------- id 是该表具有唯一值的列。 没有具有相同 recordDate 的不同行。 该表包…...

C++系列关键字static

文章目录 1.静态变量2.静态成员变量 1.静态变量 在C的&#xff0c;静态变量是一个非常有用的特性&#xff0c;它在程序执行期间只初始化一次&#xff0c;并在程序的整个执行期间都保持其值。 1.局部静态变量。定义在函数中&#xff0c;只初始化一次&#xff0c;不像普通的局部…...

使用Fn Connect之后,如何访问到其他程序页面?原来一直都可以!

前言 昨天小白讲过在飞牛上登录Fn Connect&#xff0c;就可以实现远程访问家里的NAS。 接着就有小伙伴咨询&#xff1a;如何远程访问到家里其他需要使用不同端口号才能访问到的软件&#xff0c;比如Jellyfin、Emby等。 这个小白在写文章的时候确实没有考虑到&#xff0c;因为…...

探索Composable Architecture:小众但高效的现代框架技术

近年来&#xff0c;随着应用规模和复杂性的不断提升&#xff0c;对开发效率和可维护性的要求也水涨船高。特别是在领域驱动设计 (DDD) 和反应式编程 (Reactive Programming) 的趋势影响下&#xff0c;一些小众但极具潜力的框架应运而生。本篇博客将深入探讨一种日益受到关注但尚…...

改投论文时如何重构

摘要: 不同期刊和会议对于论文的风格、页数限制等方面有一些差别, 论文在某个地方被拒, 改投别处时需要进行重构. 本贴描述重构的基本方案. 你的衣柜乱糟糟的, 如何清理呢? 方案 A. 把不喜欢的衣服一件件丢掉.方案 B. 把衣服全部丢出来, 然后再把喜欢的衣服一件件放进去. 对…...

P8打卡——YOLOv5-C3模块实现天气识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 1.检查GPU import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, dat…...

基于微信小程序的校园点餐平台的设计与实现(源码+SQL+LW+部署讲解)

文章目录 摘 要1. 第1章 选题背景及研究意义1.1 选题背景1.2 研究意义1.3 论文结构安排 2. 第2章 相关开发技术2.1 前端技术2.2 后端技术2.3 数据库技术 3. 第3章 可行性及需求分析3.1 可行性分析3.2 系统需求分析 4. 第4章 系统概要设计4.1 系统功能模块设计4.2 数据库设计 5.…...

PyTorch快速入门教程【小土堆】之完整模型训练套路

视频地址完整的模型训练套路&#xff08;一&#xff09;_哔哩哔哩_bilibili import torch import torchvision from model import * from torch import nn from torch.utils.data import DataLoader# 准备数据集 train_data torchvision.datasets.CIFAR10(root"CIFAR10&…...

【AIGC】 ChatGPT实战教程:如何高效撰写学术论文引言

&#x1f4a5; 欢迎来到我的博客&#xff01;很高兴能在这里与您相遇&#xff01; 首页&#xff1a;GPT-千鑫 – 热爱AI、热爱Python的天选打工人&#xff0c;活到老学到老&#xff01;&#xff01;&#xff01;导航 - 人工智能系列&#xff1a;包含 OpenAI API Key教程, 50个…...

TTL 传输中过期问题定位

问题&#xff1a; 工作环境中有一个acap的环境&#xff0c;ac的wan口ip是192.168.186.195/24&#xff0c;ac上lan上有vlan205&#xff0c;其ip子接口地址192.168.205.1/24&#xff0c;ac采用非nat模式&#xff0c;而是路由模式&#xff0c;在上级路由器上有192.168.205.0/24指向…...

非docker方式部署openwebui过程记录

之前一直用docker方式部署openwebui&#xff0c;结果这东西三天两头升级&#xff0c;我这一升级拉取docker镜像硬盘空间嗖嗖的占用&#xff0c;受不了&#xff0c;今天改成了直接部署&#xff0c;以下是部署过程记录。 一、停止及删除没用的docker镜像占用的硬盘空间 docker s…...

抖音批量下载工具终极指南:如何免费快速获取无水印视频素材

抖音批量下载工具终极指南&#xff1a;如何免费快速获取无水印视频素材 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback …...

STM32F103ZET6【标准库函数开发】-----TM1638模块驱动4位8段共阴极数码管

1. 硬件环境搭建 第一次接触TM1638模块时&#xff0c;我手头正好有块吃灰的正点原子战舰开发板。这个组合对初学者特别友好&#xff0c;就像乐高积木一样容易上手。先说说需要准备的硬件清单&#xff1a; 正点原子STM32F103ZET6开发板&#xff08;其他型号也行&#xff0c;但引…...

ProperTree:跨平台Plist编辑器零基础上手指南

ProperTree&#xff1a;跨平台Plist编辑器零基础上手指南 【免费下载链接】ProperTree Cross platform GUI plist editor written in python. 项目地址: https://gitcode.com/gh_mirrors/pr/ProperTree 在macOS与iOS开发中&#xff0c;Plist文件如同系统的"配置密码…...

3步掌握本地语音合成:tts-vue离线语音包配置终极指南

3步掌握本地语音合成&#xff1a;tts-vue离线语音包配置终极指南 【免费下载链接】tts-vue &#x1f3a4; 微软语音合成工具&#xff0c;使用 Electron Vue ElementPlus Vite 构建。 项目地址: https://gitcode.com/gh_mirrors/tt/tts-vue 还在为网络不稳定导致的语音…...

AI辅助开发创意秀:让快马AI为你定制专属的antigravity式彩蛋代码

最近在尝试用AI辅助开发一些有趣的小项目&#xff0c;发现InsCode(快马)平台特别适合快速实现这类创意编程。今天就来分享一个用AI生成个性化编程彩蛋的完整实现过程&#xff0c;效果类似Python著名的antigravity彩蛋&#xff0c;但加入了用户自定义内容。 项目构思 这个项目的…...

Ostrakon-VL-8B构建智能相册:基于自然语言的照片检索与回忆生成

Ostrakon-VL-8B构建智能相册&#xff1a;基于自然语言的照片检索与回忆生成 你有没有过这样的经历&#xff1f;手机里存了几千张照片&#xff0c;想找一张去年夏天在山上拍的照片&#xff0c;却要翻上十几分钟&#xff0c;甚至最后也没找到。或者&#xff0c;看着一堆旅行照片…...

MongoDB中大型文本字段怎么存_GridFS切分与外部存储对比

会。MongoDB单文档上限16MB&#xff0c;但超2MB字符串易致客户端OOM或超时&#xff1b;GridFS非自动魔法&#xff0c;需手动管理分块、拼接与清理&#xff1b;大文本应优先存OSS/S3&#xff0c;Mongo仅存元数据。大文本存MongoDB会撑爆内存吗&#xff1f;会。MongoDB单文档上限…...

Kotlin重构与跨平台通信:Linphone的开源通信解决方案革新

Kotlin重构与跨平台通信&#xff1a;Linphone的开源通信解决方案革新 【免费下载链接】linphone-android Linphone.org mirror for linphone-android (https://gitlab.linphone.org/BC/public/linphone-android) 项目地址: https://gitcode.com/gh_mirrors/li/linphone-andro…...

libpng 官方参考库中的这两个严重漏洞已存在30年之久

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01;编译&#xff1a;代码卫士安全研究人员披露了位于 libpng 官方参考库中的两个严重漏洞。libpng 是便携式网络图形格式的官方参考库。这些漏洞影响了跨越数十年开发历程的多个版本&#xff0c;可能允许攻击者触发进程崩…...

C语言新手避坑指南:math.h库函数参数检查与常见编译错误解决

C语言新手避坑指南&#xff1a;math.h库函数参数检查与常见编译错误解决 刚接触C语言的开发者在使用math.h库时&#xff0c;往往会遇到各种"坑"——从莫名其妙的计算结果到令人困惑的编译错误。这些问题看似简单&#xff0c;却可能让初学者浪费数小时调试时间。本文将…...