在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}")
详细解释
-
函数定义和参数
delete_asset_folder
是一个函数,它接受一个参数delete_path
,这个参数指定了需要删除的资产文件夹的路径。
-
设置文件夹路径
folder_path = delete_path
这行代码将传入的参数赋值给folder_path
变量,这个变量用于后续操作中指定要操作的文件夹。
-
获取资产列表
assets = ee.data.getList({'id': folder_path})
这行代码使用ee.data.getList
函数来获取指定文件夹下的所有资产。这个函数返回一个列表,其中包含文件夹下所有资产的信息。
-
遍历资产列表
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兼容性问题。 |
如果这对您有所帮助,希望点赞支持一下作者! 😊
详细全文-点击查看