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生成的水体二值掩码中有部分区域由于被云挡住无法识别,造成水体不连续是使用jrc离线数据进行修正,jrc数据下载连接如下:https://global-surface-water.appspot.com/download 选择指定区域的数据集合下载如图: 使…...
营销/CDP/MA/SCRM
最近几年面向企业用户的营销系统,cdp,ma,scrm等发展迅速,下面就简单介绍一下这些系统。 架构图 架构图中显示了CDP,MA,SCRM的核心功能,其实还有基础底座的功能。 比如统一登录,权限…...
免费CDN加速,零成本提升网站速度!
1. 起因 免备案的服务器要么在海外,要么是国内通过内网穿透才能访问,这两种方法好处是免费,坏处是延迟太高,有的地区延迟能到四五百甚至超时,这样明显是不行的。 所以需套一个cdn来加速,在2024年࿰…...
2024-12-29-sklearn学习(25)无监督学习-神经网络模型(无监督) 烟笼寒水月笼沙,夜泊秦淮近酒家。
文章目录 sklearn学习(25) 无监督学习-神经网络模型(无监督)25.1 限制波尔兹曼机25.1.1 图形模型和参数化25.1.2 伯努利限制玻尔兹曼机25.1.3 随机最大似然学习 sklearn学习(25) 无监督学习-神经网络模型(无监督) 文章参考网站&a…...
RSA e与phi不互质(AMM算法进行有限域开根)
e与phi不互质 这一部分学习来自trup师傅的博客 针对CTFer的e与phi不互素的问题 - 跳跳糖 1: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 …...
网络物理互连
案例简介 美乐公司为新创建公司,公司现需要架设网络,需要下属分公司通过路由器与外网服务器联通,请使用Packet Tracer, 按照任务要求完成实验。实验中需配置设备或端口的IP地址。 1、绘制拓扑图 2、配置ip地址 3、配置路由ip R0 …...
论文研读:Text2Video-Zero 无需微调,仅改动<文生图模型>推理函数实现文生视频(Arxiv 2023-03-23)
论文名:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Generators 1. 摘要 1.1 方法总结 通过潜空间插值, 实现动作连续帧。 以第一帧为锚定,替换原模型的self-attention,改为cross-attention 实现 保证图片整体场…...
服务端错误的处理和web安全检测
文章目录 I 服务端错误的处理业务返回码处理前端处理业务返回码nginx处理http状态码II web安全检测区分服务器类型主机扫漏III 使用 micro_httpd 搭建一个PHP站点步骤下载micro_httpd 并安装它配置micro_httpd 来服务PHP文件I 服务端错误的处理 服务端发生错误时,返回给前端的…...
鸿蒙TCPSocket通信模拟智能家居模拟案例
效果图 一、智能家居热潮下的鸿蒙契机 在当下科技飞速发展的时代,智能家居已如浪潮般席卷而来,深刻地改变着我们的生活方式。从能依据环境光线自动调节亮度的智能灯具,到可远程操控、精准控温的智能空调,再到实时监测健康数据的智…...
SQL-leetcode-197. 上升的温度
197. 上升的温度 表: Weather ---------------------- | Column Name | Type | ---------------------- | id | int | | recordDate | date | | temperature | int | ---------------------- id 是该表具有唯一值的列。 没有具有相同 recordDate 的不同行。 该表包…...
C++系列关键字static
文章目录 1.静态变量2.静态成员变量 1.静态变量 在C的,静态变量是一个非常有用的特性,它在程序执行期间只初始化一次,并在程序的整个执行期间都保持其值。 1.局部静态变量。定义在函数中,只初始化一次,不像普通的局部…...
使用Fn Connect之后,如何访问到其他程序页面?原来一直都可以!
前言 昨天小白讲过在飞牛上登录Fn Connect,就可以实现远程访问家里的NAS。 接着就有小伙伴咨询:如何远程访问到家里其他需要使用不同端口号才能访问到的软件,比如Jellyfin、Emby等。 这个小白在写文章的时候确实没有考虑到,因为…...
探索Composable Architecture:小众但高效的现代框架技术
近年来,随着应用规模和复杂性的不断提升,对开发效率和可维护性的要求也水涨船高。特别是在领域驱动设计 (DDD) 和反应式编程 (Reactive Programming) 的趋势影响下,一些小众但极具潜力的框架应运而生。本篇博客将深入探讨一种日益受到关注但尚…...
改投论文时如何重构
摘要: 不同期刊和会议对于论文的风格、页数限制等方面有一些差别, 论文在某个地方被拒, 改投别处时需要进行重构. 本贴描述重构的基本方案. 你的衣柜乱糟糟的, 如何清理呢? 方案 A. 把不喜欢的衣服一件件丢掉.方案 B. 把衣服全部丢出来, 然后再把喜欢的衣服一件件放进去. 对…...
P8打卡——YOLOv5-C3模块实现天气识别
🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者: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快速入门教程【小土堆】之完整模型训练套路
视频地址完整的模型训练套路(一)_哔哩哔哩_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实战教程:如何高效撰写学术论文引言
💥 欢迎来到我的博客!很高兴能在这里与您相遇! 首页:GPT-千鑫 – 热爱AI、热爱Python的天选打工人,活到老学到老!!!导航 - 人工智能系列:包含 OpenAI API Key教程, 50个…...
TTL 传输中过期问题定位
问题: 工作环境中有一个acap的环境,ac的wan口ip是192.168.186.195/24,ac上lan上有vlan205,其ip子接口地址192.168.205.1/24,ac采用非nat模式,而是路由模式,在上级路由器上有192.168.205.0/24指向…...
非docker方式部署openwebui过程记录
之前一直用docker方式部署openwebui,结果这东西三天两头升级,我这一升级拉取docker镜像硬盘空间嗖嗖的占用,受不了,今天改成了直接部署,以下是部署过程记录。 一、停止及删除没用的docker镜像占用的硬盘空间 docker s…...
apk 包管理器完全指南:Alpine Linux 的轻量级利器
一、apk 体系架构全景 apk(Alpine Package Keeper)是 Alpine Linux 的核心包管理工具,与 Debian 的 APT 相比,它遵循极简主义设计哲学:代码量少、依赖解析简单、资源占用极低。这使得 Alpine 成为 Docker 容器的默认基…...
如何用QTTabBar彻底告别Windows资源管理器的混乱:一个完整的高效文件管理解决方案
如何用QTTabBar彻底告别Windows资源管理器的混乱:一个完整的高效文件管理解决方案 【免费下载链接】qttabbar QTTabBar is a small tool that allows you to use tab multi label function in Windows Explorer. https://www.yuque.com/indiff/qttabbar 项目地址:…...
别再手动点选了!用Python脚本5分钟搞定Abaqus批量加载节点力(附完整代码)
Python自动化赋能Abaqus:高效批量加载节点力的工程实践 在有限元分析领域,Abaqus作为行业标杆软件,其强大的计算能力与灵活的二次开发接口深受工程师青睐。然而,当面对需要为数百甚至上千个节点分别施加不同载荷的复杂工况时&…...
终极硬件调优指南:如何用UXTU免费解锁电脑隐藏性能
终极硬件调优指南:如何用UXTU免费解锁电脑隐藏性能 【免费下载链接】Universal-x86-Tuning-Utility Unlock the full potential of your Intel/AMD based device. 项目地址: https://gitcode.com/gh_mirrors/un/Universal-x86-Tuning-Utility 还在为电脑性能…...
如何彻底移除Windows Defender:13项核心服务完整卸载与系统性能优化终极指南
如何彻底移除Windows Defender:13项核心服务完整卸载与系统性能优化终极指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitco…...
Context-Mode:基于React Context的模式化状态管理新范式
1. 项目概述:一个为现代前端开发量身定制的状态管理新范式 最近在重构一个中后台项目时,我又一次陷入了状态管理的泥潭。组件间层层传递的 props 像一团乱麻,全局 store 里塞满了各种不相关的数据,每次修改一个状态都得小心翼…...
从BERT到GPT-4:大语言模型的技术演进与应用实践
1. 从单向到双向:大语言模型如何重塑AI的认知边界如果你在2018年之前问我,一个AI模型能不能同时理解一句话里每个词的前后文关系,我会告诉你这很难。那时的主流模型,比如OpenAI的GPT初代,就像一个只能从左到右阅读的读…...
从原理到实战:压敏电阻关键参数解析与精准选型指南
1. 压敏电阻的本质:电路中的"电压保险丝" 第一次接触压敏电阻时,我把它当成了普通电阻,结果在电源防护设计上栽了跟头。这种蓝色圆片状的小器件,实际上是电子工程师最常用的过压保护元件之一。它的工作原理很像保险丝&a…...
基于NUC980开发板的嵌入式国学唐诗学习机全栈开发实践
1. 项目概述:当嵌入式开发板遇上国学经典最近在捣鼓一块NUC980开发板,具体型号是NK-980IoT。这板子性能不错,接口也丰富,但总感觉拿它跑个简单的网络服务或者做个数据采集有点“大材小用”。正好家里小朋友开始背唐诗,…...
Oto 核心架构深度解析:Context 与 Player 的设计哲学
Oto 核心架构深度解析:Context 与 Player 的设计哲学 【免费下载链接】oto ♪ A low-level library to play sound on multiple platforms ♪ 项目地址: https://gitcode.com/gh_mirrors/ot/oto Oto 是一个跨平台的低级音频播放库,其核心架构围绕…...
