GEE 迭代删除谷歌资产文件夹

部署运行你感兴趣的模型镜像


在Google Earth Engine (GEE) 中管理大量地理空间数据时,我们可能会遇到需要清理不再需要的资产的情况。但需要提前删除子文件后才可删除文件夹,才可释放存储空间,删除过时的数据。本文将介绍如何在GEE中迭代删除资产文件夹。

代码详解

以下是使用Python和GEE API删除资产文件夹的代码详解:

函数定义

def delete_asset_folder(delete_path):
    # 指定要删除的文件夹路径
    folder_path = delete_path

    # 获取该文件夹下的所有资产
    assets = ee.data.getList({'id': folder_path})

    # 遍历资产列表并删除每个资产
    for asset in assets:
        asset_id = asset['id']
        ee.data.deleteAsset(asset_id)
        print(f"Deleted asset: {asset_id}")

详细解释

  1. 函数定义和参数

    • delete_asset_folder 是一个函数,它接受一个参数 delete_path,这个参数指定了需要删除的资产文件夹的路径。
  2. 设置文件夹路径

    • folder_path = delete_path 这行代码将传入的参数赋值给 folder_path 变量,这个变量用于后续操作中指定要操作的文件夹。
  3. 获取资产列表

    • assets = ee.data.getList({'id': folder_path}) 这行代码使用 ee.data.getList 函数来获取指定文件夹下的所有资产。这个函数返回一个列表,其中包含文件夹下所有资产的信息。
  4. 遍历资产列表

    • for asset in assets: 这是一个循环,遍历前面获取的资产列表。对于列表中的每个资产,执行以下操作:
      • asset_id = asset['id'] 从资产字典中提取资产的ID。每个资产都有一个唯一的ID,这是删除资产时需要的。
      • ee.data.deleteAsset(asset_id) 使用 ee.data.deleteAsset 函数删除指定ID的资产。这个函数调用GEE的API来删除资产,释放存储空间。
      • print(f"Deleted asset: {asset_id}") 打印一条消息,确认资产已被删除。这有助于跟踪哪些资产已被处理。

使用方法

GEE提供了强大的API来管理资产,包括创建、读取、更新和删除操作。删除资产是一个重要的管理任务,可以帮助我们保持数据的整洁和最新。
在Google Earth Engine (GEE) 中,管理和删除资产是一个常见的需求,尤其是在处理大量数据时。下面将详细解释如何使用Python编写一个函数来删除GEE中的资产文件夹。

完整案例

在下列代码中,我们首先设置了网络代理和环境变量,然后认证了GEE账户并初始化了API。delete_asset_folder函数负责获取指定文件夹下的所有资产,并逐一删除它们。

import ee
import os

# 构建网络代理
# 见 https://mp.weixin.qq.com/s?__biz=Mzk0MTU1MjU5Mw==&mid=2247484766&idx=1&sn=40db6ec347539999af2332ba1e4996fb&chksm=c2d1e3e0f5a66af6d564bf19a1d6a260e5addaf6b7c42981c0e9917db7feb62f9bcb83fdaa9d#rd
# 设置环境变量以解决 OpenSSL 3.0 的兼容性问题

# 授权 Earth Engine 账户及初始化 Earth Engine API
ee.Authenticate()
ee.Initialize()

def delete_asset_folder(delete_path):
    # 指定要删除的文件夹路径
    folder_path = delete_path

    # 获取该文件夹下的所有资产
    assets = ee.data.getList({'id': folder_path})

    # 遍历资产列表并删除每个资产
    for asset in assets:
        asset_id = asset['id']
        ee.data.deleteAsset(asset_id)
        print(f"Deleted asset: {asset_id}")

def main():
    # 需要删除的遗产
    folder_delete_path = 'users/deleteAssets/'
    # 调用迭代删除谷歌资产文件夹
    delete_asset_folder(delete_path=folder_delete_path)

if __name__ == '__main__':
    main()

注意事项

在删除资产时,请确保您不再需要这些数据,并且已经做好了必要的备份。此外,处理错误和异常也是编写健壮代码的重要部分。正确管理GEE资产是保持数据整洁和最新的关键。通过迭代删除不再需要的资产文件夹,我们可以有效地管理我们的GEE项目。

术语解释

术语或函数解释
ee.data.getList从GEE服务器获取指定ID下的所有资产信息列表。
ee.data.deleteAsset从GEE服务器删除指定ID的资产。
ee.Authenticate()触发用户认证流程,通常会打开浏览器让用户登录他们的Earth Engine账号。
ee.Initialize()初始化Earth Engine Python API。
os.environ设置环境变量,此处用于配置代理和解决OpenSSL兼容性问题。

如果这对您有所帮助,希望点赞支持一下作者! 😊

详细全文-点击查看

file

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值