当前位置: 首页 > article >正文

土地覆盖产品批量下载(GLC_FCS30 、Esri_GLC10、 ESA_GLC10 、FROM_GLC10)

手动下载全球数据比较困难,本文提供批量化下载这些土地覆盖产品的Python代码。包含GLC_FCS30 、Esri_GLC10、 ESA_GLC10 、FROM_GLC10

FCS_GLC30

刘良云、张肖老师团队制作,提供了非常便捷的下载方式。

https://data.casearth.cn/dataset/6123651428a58f70c2a51e49#filesArea

APIUrl格式HTTP请求
通过ID获取文件列表/api/dataset/getAllFileListBySdoId?sdoId=6123651428a58f70c2a51e49JSONGET
单文件下载/api/file/downloadOneFile?fileId=文件Id&username=用户名文件GET
获取元数据信息/api/dataset/sdoMetadata?itemId=2500JSONGET
获取文件元数据信息/api/file/fileMetadata?fileId=文件IdJSONGET
import os

import requests
from tqdm import tqdm


def get_all_image_list():
    get_image_list_url = r'https://data.casearth.cn/api/dataset/getAllFileListBySdoId?sdoId=6123651428a58f70c2a51e49'
    response = requests.get(
        url=get_image_list_url
    )
    data = response.json()['data']
    return data


def download_one_file(url, filename, save_dir="./downloads"):
    os.makedirs(save_dir, exist_ok=True)

    try:
        # 获取文件名
        file_path = os.path.join(save_dir, filename)

        # 下载图片
        response = requests.get(url, stream=True)
        response.raise_for_status()  # 检查请求是否成功

        # 保存图片到本地
        with open(file_path, "wb") as file:
            for chunk in response.iter_content(chunk_size=8192):  # 分块写入文件
                file.write(chunk)

        return os.path.abspath(file_path)

    except requests.exceptions.RequestException as e:
        raise Exception(f"下载失败: {e}") from e
    except Exception as e:
        raise Exception(f"保存文件失败: {e}") from e


if __name__ == '__main__':
    # TODO: 修改为自己的用户名
    username = 'user'

    image_list = get_all_image_list()
    for it in tqdm(image_list):
        file_name = it['file_name']
        id = it['id']
        down_url = fr'https://data.casearth.cn/api/file/downloadOneFile?fileId={id}&username={username}'
        download_one_file(down_url, file_name, save_dir="./downloads")

–未完待续–

原文地址:https://blog.csdn.net/qq_60293814/article/details/145405286
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/528613.html

相关文章:

  • 深度学习 DAY3:NLP发展史
  • 网络工程师 (11)软件生命周期与开发模型
  • vscode命令面板输入 CMake:build不执行提示输入
  • Mono里运行C#脚本39—mono_jit_runtime_invoke函数
  • mac 手工安装OpenSSL 3.4.0
  • Linux02——Linux的基本命令
  • 水瓶加水时的重心变化,MATLAB计算与可视化
  • Day24 洛谷普及2004(内涵前缀和与差分算法)
  • 【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
  • MySQL 如何深度分页问题
  • 论文阅读(十):用可分解图模型模拟连锁不平衡
  • 第25节课:前端缓存策略—提升网页性能与用户体验
  • 早期车主告诉后来者,很后悔买电车,一辈子都被车企拿捏了
  • kamailio-ACC_JSON模块详解
  • 【算法设计与分析】实验7:复杂装载及0/1背包问题的回溯法设计与求解
  • 快速了解Java虚拟机(JVM)以及常见面试题(持续更新中
  • python学习——常用的内置函数汇总
  • 2025年1月30日(Matlab 总结 `rm = 0:0.1:10;`)
  • 分析伏羲万年历
  • 4.攻防世界Web_php_include