遥感数据集:FTW全球农田边界和对应影像数据,约160万田块边界及7万多个样本

Fields of The World (FTW) 是一个面向农业田地边界实例分割的基准数据集,旨在推动机器学习模型的发展,满足全球农业监测对高精度、可扩展的田地边界数据的需求。该数据集由@kerner-lab提供,于2024年8月28日发布,主要特征包括:

  • 广泛的地理覆盖:跨越欧洲、非洲、亚洲和南美洲的24个国家,覆盖多样化的农业景观,有助于模型泛化至不同农业实践和田地类型。

  • 大规模数据集:包含约160万田块边界及7万多个样本,每个样本包含实例和语义分割掩膜,搭配多时间、多光谱的Sentinel-2卫星图像,支持详细的时间和光谱分析。

  • 多类别分割:提供实例分割掩膜(识别单个田地)和语义分割掩膜,包括背景、多边形(田地)、边界等类别。

  • 光谱和时间丰富性:数据集包含红、绿、蓝和近红外光谱波段,并提供多时间图像,捕捉生长期的不同阶段,图像日期通过USDA作物日历和云量筛选确定。

  • 完善的数据集划分:数据集按训练、验证和测试集划分,使用块状随机分割策略避免空间自相关,确保模型评估的准确性。

  • 详尽的元数据与文档:提供关于国家、作物类型、季节、收集年份、网格结构等关键信息,帮助用户有效使用数据集。

下载链接:https://source.coop/repositories/kerner-lab/fields-of-the-world/description

数据可以直接Download下载,也可以通过AWS 批量下载。

图片

下载之后的影像是tif格式,但边界是parquet格式。提供一个转为shapefile格式的代码,亲测适用于这个数据。

import pandas as pd
import geopandas as gpd
from shapely import wkbdef read_parquet_with_fallback(parquet_path):try:# 尝试使用 pyarrow 读取 Parquet 文件df = pd.read_parquet(parquet_path, engine="pyarrow")print("成功使用 pyarrow 读取文件。")except Exception as e:print(f"使用 pyarrow 读取失败: {e}")# 如果 pyarrow 读取失败,尝试使用 fastparquettry:df = pd.read_parquet(parquet_path, engine="fastparquet")print("成功使用 fastparquet 读取文件。")except Exception as e:print(f"使用 fastparquet 读取失败: {e}")return Nonereturn dfdef convert_to_shapefile(parquet_path, shapefile_path, input_crs="EPSG:4326", output_crs="EPSG:4326"):# 1. 尝试读取 Parquet 文件df = read_parquet_with_fallback(parquet_path)if df is None:print("无法读取 Parquet 文件。请检查文件是否损坏。")return# 2. 将 Int32 和 Float32 类型列转换为兼容的类型for col in df.select_dtypes(include=["Int32", "Float32"]).columns:df[col] = df[col].astype("float64")# 3. 将所有 datetime 类型列转换为字符串,确保兼容 Shapefile 格式datetime_cols = df.select_dtypes(include=["datetime64[ns]", "datetime64[ms, UTC]", "datetime64"]).columnsfor col in datetime_cols:df[col] = df[col].astype(str)# 检查数据类型,确保没有 datetime 或 Int32/Float32 类型print("转换后数据类型检查:\n", df.dtypes)# 4. 检查 geometry 列并转换为有效的几何对象if 'geometry' in df.columns:# 将字节字符串格式的几何数据转换为 shapely 几何对象df['geometry'] = df['geometry'].apply(wkb.loads)# 将 DataFrame 转换为 GeoDataFrame,并设置输入坐标系gdf = gpd.GeoDataFrame(df, geometry='geometry', crs=input_crs)# 如果输入坐标系和输出坐标系不同,进行投影转换if input_crs != output_crs:gdf = gdf.to_crs(output_crs)else:print("文件缺少几何信息(geometry 列)。请确保数据包含有效的几何列。")return# 5. 保存为 Shapefiletry:gdf.to_file(shapefile_path, driver="ESRI Shapefile", encoding="utf-8")print("Shapefile 已成功保存。")except Exception as e:print(f"Shapefile 保存失败: {e}")# 示例使用
convert_to_shapefile(parquet_path=r"D:\***.parquet",shapefile_path=r"D:\***.shp",input_crs="EPSG:4326",  # 输入坐标系output_crs="EPSG:4326"  # 输出坐标系
)

使用ArcGIS自带底图:

图片

使用FTW数据集中的影像作为底图:

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

USB Type-C一线通扩展屏:多场景应用,重塑高效办公与极致娱乐体验

在追求高效与便捷的时代,启明智显USB Type-C一线通扩展屏方案正以其独特的优势,成为众多职场人士、娱乐爱好者和游戏玩家的首选。这款扩展屏不仅具备卓越的性能和广泛的兼容性,更能在多个应用场景中发挥出其独特的价值。 USB2.0显卡&#xff…

项目二技巧一

目录 nginx实现根据域名来访问不同的ip端口 配置Maven私服 快照版和发布版的区别 快照版本(Snapshot) 发布版本(Release) 导入发布版的父工程 理清楚授权规则 一.首先浏览器发送/manager/**路径请求 第二步:构造…

详解SpringCloud集成Camunda7.19实现工作流审批(二)

本章将分享的是camunda流程设计器--Camunda Modeler的基本使用(对应camunda版本是7.19),包括bpmn流程图画法,各种控件使用以及一些日常业务场景的流程图的实现 参考资料: Camunda BPMN 基础组件-CSDN博客 Camunda: Exe…

webpack(react)基本构建

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 Webpack 是一个现代 JavaScript 应用程序的静态模块打包工具。它的主要功能是将各种资源(如 JavaScript、CSS、图片等)视为模块,并将它们打包成一个或多个输出文件,以便…

html select下拉多选 修改yselect.js插件实现下拉多选,搜索,限制选中,默认回显等操作

需求:要在select标签实现下拉多选,搜索,限制选中,默认回显等操作,之前同事用的yselect.js,网上用的简直是寥寥无几,找了半天没找到限制选中的方法,看了源代码才发现根本没有&#xf…

c++哈希表(原理、实现、开放寻址法)适合新手

c系列哈希的原理及实现(上) 文章目录 c系列哈希的原理及实现(上)前言一、哈希的概念二、哈希冲突三、哈希冲突解决3.1、开放寻址法3.2、删除操作3.3、负载因子四、代码实现 总结 前言 红黑树平衡树和哈希有不同的用途。 红黑树、…

了解HTTPS以及CA在其中的作用

在这个信息爆炸的时代,每一次指尖轻触屏幕,都是一次数据的旅行。但您是否真正了解,这些数据在通往目的地的旅途中,是如何被保护的呢? HTTPS(HyperText Transfer Protocol Secure)是一种安全的网…

Flink学习连载文章8--时间语义

Time的分类 (时间语义) EventTime:事件(数据)时间,是事件/数据真真正正发生时/产生时的时间 IngestionTime:摄入时间,是事件/数据到达流处理系统的时间 ProcessingTime:处理时间,是事件/数据被处理/计算时的系统的时间 EventTime的重要性 假设,你正在去往地下停…

sizeof和strlen区分,(好多例子)

sizeof算字节大小 带\0 strlen算字符串长度 \0之前

Simulink的SIL软件在环测试

以基于模型的设计(MBD)的软件开发时,需要进行SIL(软件在环测试)。SIL测试就是在PC上验证模型是否与代码功能一致。在项目开展中,用在需要将控制器生成移植到硬件前,把控制器的模块生成代码&…

浅谈js中onmouseleave和onmouseout的区别

同步发布于我的网站 🚀 背景介绍基本概念区别详解 无子元素的情况有子元素的情况 实际应用场景 使用 onmouseleave使用 onmouseout 注意事项总结 背景介绍 在前端开发中,我们经常需要为元素绑定鼠标事件,以实现各种交互效果。onmouseleave…

【Git系列】利用 Bash 脚本获取 Git 最后一次非合并提交的提交人

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

36 基于单片机的电磁炉系统设计

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,通过DS18B20温度传感器检测温度,通过八位数码管显示, 如果温度超过阈值,则蜂鸣器报警,红灯亮起;若不超过阈值&…

『 Linux 』数据链路层 - ARP协议及数据链路层周边问题

文章目录 ARP协议ARP欺骗RARP协议 DNS服务ICMP协议ping 命令正向代理服务器反向代理服务器 ARP协议 博客『 Linux 』数据链路层 - MAC帧/以太网帧中提到,当数据需要再数据链路层进行无网络传输时需要封装为MAC帧,而MAC帧的报文结构如下: 帧头部分存在两个字段分别为 “目的地址…

MySQL(数据库)

1.数据库? 数据库是管理数据(增删改查CRUD)的软件 MySQL(开源&免费) 是一个数据库软件 (客户端-服务器)结构的软件 客户端服务器通过网络进行通信 客户端(Client):主动发起请求的一方,客户端给服务器发起的数据称为请求(request) 服务器(Server):被动接受请求的一方,…

vue3----API

组合式API 1.setup 定义的数据和方法必须return出去才能够被使用 不使用this,this指向了undefined <script> export default {setup () {console.log(setup)const message this is messageconst logmessage ()>{console.log(message)}return {message,logmessag…

服务器遭受DDoS攻击后如何恢复运行?

当服务器遭受 DDoS&#xff08;分布式拒绝服务&#xff09;攻击 后&#xff0c;恢复运行需要快速采取应急措施来缓解攻击影响&#xff0c;并在恢复后加强防护以减少未来攻击的风险。以下是详细的分步指南&#xff1a; 一、应急处理步骤 1. 确认服务器是否正在遭受 DDoS 攻击 …

【maven-5】Maven 项目构建的生命周期:深入理解与应用

1. 生命周期是什么 ​在Maven出现之前&#xff0c;项目构建的生命周期就已经存在&#xff0c;软件开发人员每天都在对项目进行清理&#xff0c;编译&#xff0c;测试及部署。虽然大家都在不停地做构建工作&#xff0c;但公司和公司间&#xff0c;项目和项目间&#xff0c;往往…

【机器学习】CatBoost 模型实践:回归与分类的全流程解析

一. 引言 本篇博客首发于掘金 https://juejin.cn/post/7441027173430018067。 PS&#xff1a;转载自己的文章也算原创吧。 在机器学习领域&#xff0c;CatBoost 是一款强大的梯度提升框架&#xff0c;特别适合处理带有类别特征的数据。本篇博客以脱敏后的保险数据集为例&#x…

lua download

https://www.lua.org/ https://www.lua.org/versions.html#5.4