首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

查找大量时序遥感文件缺失、不连贯的成像日期:Python代码

编程知识
2024年10月14日 10:14

  本文介绍批量下载大量多时相的遥感影像文件后,基于Python语言与每一景遥感影像文件的文件名,对这些已下载的影像文件加以缺失情况的核对,并自动统计、列出未下载影像所对应的时相的方法。

  批量下载大量遥感影像文件对于RS学生与从业人员可谓十分常见。在我们之前的文章中,就介绍过同样基于文件名称,对未成功下载的遥感影像加以统计,并自动筛选出未下载成功的遥感影像的下载链接的方法;在本文中,我们同样基于Python与栅格文件的文件名称,对类似的需求加以实现。

  首先,本文的需求和前述提及的文章略有不同。在这里,我们已经下载好了大量的、以遥感数据成像时间为文件名的栅格文件,如下图所示。

image

  其中,不难发现我们这里的遥感影像数据是从每一年的001天开始,每隔8天生成一景影像,每一景影像的名称后3位数字就是001009017这样表示天数的格式;此外,前4位数字表示年份,我们这里有从2020开始到2022结束、一共3年的遥感影像数据。

  现在,我们希望对于上述文件加以核对,看看在这3年中,是否有未下载成功的遥感影像文件;如果有的话,还希望输出下载失败的文件个数和对应的文件名称(也就是对应文件的成像时间)。

  明确了需求后,我们就可以开始具体的操作。首先,本文所需用到的代码如下。

# -*- coding: utf-8 -*-
"""
Created on Sat Dec 30 23:32:54 2023

@author: fkxxgis
"""

import os

def check_missing_dates(folder_path):
    start_year = 2020
    end_year = 2022
    days_per_file = 8

    missing_dates = []

    for year in range(start_year, end_year + 1):
        for day in range(1, 366, days_per_file):
            file_name = str(year) + "{:03d}".format(day) + ".tif"
            file_path = os.path.join(folder_path, file_name)
            
            if not os.path.exists(file_path):
                missing_dates.append(file_name[:-4])

    return missing_dates

folder_path = "F:/Data_Reflectance_Rec/NDVI"
missing_dates = check_missing_dates(folder_path)

print("Total missing dates:", len(missing_dates))
print("Missing dates:")
for date in missing_dates:
    print(date)

  这段代码整体思路也很明确。

  首先,我们导入所需的模块。在这里,os模块用于文件路径操作。

  接下来,我们定义一个名为check_missing_dates的函数,其接收一个文件夹路径作为参数;这个函数用于检查遗漏的日期。在这个函数中,我们定义了起始年份start_year和结束年份end_year,以及每个文件之间的日期间隔 days_per_file;随后,创建一个空列表missing_dates,用于存储遗漏的日期。

  随后,我们使用嵌套的循环遍历每一年和每一天。在每一天的循环中,构建文件名,如"2020017.tif",并构建文件的完整路径。接下来,使用os.path.exists()函数检查文件路径是否存在——如果文件不存在,则将日期添加到遗漏日期列表missing_dates中。在循环结束后,返回遗漏日期列表missing_dates

  在函数外部,我们定义要检查的文件夹路径folder_path,然后就可以调用check_missing_dates函数,传入文件夹路径参数,执行日期检查,将返回的遗漏日期列表赋值给missing_dates

  最后,我们打印遗漏日期的总数len(missing_dates),并打印每个具体的遗漏日期。

  执行上述代码,即可出现如下图所示的结果。即在我这里,目前有8个日期的遥感影像文件没有下载成功,我们再对照这8个遥感影像的日期,重新到相关网站中下载即可。

  至此,大功告成。

From:https://www.cnblogs.com/fkxxgis/p/18463655
本文地址: http://shuzixingkong.net/article/2483
0评论
提交 加载更多评论
其他文章 分享几个实用且高效的EF Core扩展类库,提高开发效率!
前言 今天大姚给大家分享3款开源且实用的EF Core扩展类库,希望能帮助你在使用 EF Core 进行数据库开发变得更加高效和灵活,提高开发效率。 EF Core介绍 Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数
分享几个实用且高效的EF Core扩展类库,提高开发效率! 分享几个实用且高效的EF Core扩展类库,提高开发效率! 分享几个实用且高效的EF Core扩展类库,提高开发效率!
QToss:基于.NET架构的跨境电商的工具,助力企业实现智能数据营销
2024年10月13日下午参加了一场在深圳举办的跨境电商大佬们的聚会,现场参加的人数上千人。 大会分享嘉宾中有位来自美国的,他告诉我们不用担心美国政府会把TikTok禁掉,TikTok在全世界都很受欢迎的。回归正题说说今天大会上发布的这个产品Qtoss AI选品,这是一个由.NET 助力的AI驱动跨
QToss:基于.NET架构的跨境电商的工具,助力企业实现智能数据营销 QToss:基于.NET架构的跨境电商的工具,助力企业实现智能数据营销 QToss:基于.NET架构的跨境电商的工具,助力企业实现智能数据营销
Transformer的Pytorch实现【1】
使用Pytorch手把手搭建一个Transformer网络结构并完成一个小型翻译任务。 首先,对Transformer结构进行拆解,Transformer由编码器和解码器(Encoder-Decoder)组成,编码器由Multi-Head Attention + Feed-Forward Netwo
Transformer的Pytorch实现【1】 Transformer的Pytorch实现【1】 Transformer的Pytorch实现【1】
浅谈 K-D Tree 及其进阶应用
前言 \(\text{K-D Tree (K-Dimension Tree)}\) 是一种可以有效处理高维信息的数据结构。 在一般信息学竞赛题目中 \(k = 2\),此时它又称 \(\text{2-D Tree}\)。 但遗憾的是,\(k \ge 3\) 的情况并不常见,这个我们后面再说明原因。
浅谈 K-D Tree 及其进阶应用 浅谈 K-D Tree 及其进阶应用
.NET云原生应用实践(二):Sticker微服务RESTful API的实现
本章目标 完成数据访问层的基本设计 实现Sticker微服务的RESTful API 引言:应该使用ORM框架吗? 毋庸置疑,Sticker微服务需要访问数据库来管理“贴纸”(也就是“Sticker”),因此,以什么方式来存储数据,就是一个无法绕开的话题。如果你遵循领域驱动设计的思想,那么你可以说,
.NET云原生应用实践(二):Sticker微服务RESTful API的实现 .NET云原生应用实践(二):Sticker微服务RESTful API的实现 .NET云原生应用实践(二):Sticker微服务RESTful API的实现
DIKI:清华提出基于残差的可控持续学习方案,完美保持预训练知识 | ECCV'24
本研究解决了领域-类别增量学习问题,这是一个现实但富有挑战性的持续学习场景,其中领域分布和目标类别在不同任务中变化。为应对这些多样化的任务,引入了预训练的视觉-语言模型(VLMs),因为它们具有很强的泛化能力。然而,这也引发了一个新问题:在适应新任务时,预训练VLMs中编码的知识可能会受到干扰,从而
DIKI:清华提出基于残差的可控持续学习方案,完美保持预训练知识 | ECCV'24 DIKI:清华提出基于残差的可控持续学习方案,完美保持预训练知识 | ECCV'24 DIKI:清华提出基于残差的可控持续学习方案,完美保持预训练知识 | ECCV'24
windows下安装部署 hadoop
一、安装下载 1.首先在hadoop官网下载一个稳定版本,选择binary包 官网地址:https://hadoop.apache.org/releases.html 下载下来是tar.gz文件,用winrar解压即可。 2.因为这个压缩包是for linux系统的,win下还需要安装几个dll w
windows下安装部署 hadoop windows下安装部署 hadoop windows下安装部署 hadoop
轻松构建游戏登录能力,打造玩家流畅体验
游戏登录是玩家进入游戏世界的重要步骤,是玩家进入游戏后接触到的第一个可以交互的界面,它看似简单,但却意义重大。游戏登录不仅是进入游戏的必要步骤,也是保障游戏体验、数据安全和社区互动的关键环节。 HarmonyOS SDK游戏服务(Game Service Kit)主要提供快速、低成本构建游戏基本能力
轻松构建游戏登录能力,打造玩家流畅体验 轻松构建游戏登录能力,打造玩家流畅体验 轻松构建游戏登录能力,打造玩家流畅体验