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

文摘   2024-11-04 07:44   荷兰  

 RS   DL 

介绍

之前我们介绍过全球农田边界数据fiboa,数据量很大但没有直接的对应影像数据,今天我们介绍FTW数据集,包含对应区域的Sentinel-2 卫星影像数据!
数据 | 全球农田边界数据项目fiboa介绍, 本地及GEE使用实测, 可转为Shapefile格式
FTW 数据示例:

官网:https://fieldsofthe.world/

视频介绍:

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 批量下载 (AWS下载方法详见今天的另一条推送)

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

import pandas as pdimport geopandas as gpdfrom shapely import wkb
def 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 读取失败,尝试使用 fastparquet try: df = pd.read_parquet(parquet_path, engine="fastparquet") print("成功使用 fastparquet 读取文件。") except Exception as e: print(f"使用 fastparquet 读取失败: {e}") return None return df

def 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"]).columns for 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. 保存为 Shapefile try: 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数据集中的影像作为底图



欢迎关注会议论文赏读系列

因配置了AI回复功能,除关键词自动回复外,号内信息主要由AI大模型回复。如需资源、投稿、合作等,请直接联系小助手微信(添加请备注:咨询投稿合作加群,加群需备注姓名/昵称,单位和研究方向)。


公众号欢迎优秀作者投稿!可加入优秀论文作者群:欢迎加入AI遥感优秀论文作者群!




问题及讨论可直接在文章下方留言


  欢迎关注  


分享遥感与深度学习领域的技术、论文、书籍、新鲜事。



欢迎加入遥感与深度学习交流群(点此加入)


遥感与深度学习
聚焦遥感与深度学习,分享相关技术、论文、书籍、资讯,团队来自国内外著名期刊作者及审稿人
 最新文章