Python影像变化监测-跟踪大盐湖的萎缩

使用 Google Colab 中的 Python 分析 Landsat-8 图像(2014-2023)以创建大盐湖表面区域的时间序列

目录

  1. 🌅大盐湖萎缩问题简介
  2. 💾下载 Landsat-8 图像
  3. 📈统计文件中的大盐湖地区时间序列
  4. ⚙️处理 Landsat-8 图像
  5. 🗺️大盐湖图像的可视化
  6. 🎥 大盐湖缩小的延时摄影
  7. 📉大盐湖地区分类图像的时间序列
  8. ⚖️比较统计文件和图像中的时间序列
  9. 📄 结论

🌅 大盐湖萎缩问题简介

美国犹他州的大盐湖正在经历长期的萎缩。据多份报告称,与1986年的最大面积相比,该湖已经缩小了30%以上。该湖水位下降的原因有多种,包括气候变化和农业用水分配。

关于气候变化因素,据报道,降水模式发生了变化,气温上升,导致积雪减少和流入湖泊的水量减少。

关于第二个原因,过去几年城市和农业面积都在扩大。城市和农业部门不断增长的需求进一步导致水位下降。

长期下降会对生态系统产生影响,特别是空气和水质。湖床区域的暴露会释放灰尘和盐,增加空气和水质的风险。

由于情况是动态的,并且关于跟踪水位下降的讨论正在进行中,我决定写这篇文章来演示我们如何使用卫星图像来监测湖泊表面积的变化,作为水位缩小的指标。

我使用了 Landsat-8 从 2014 年到 2023 年拍摄的所有图像,并在 Google Colab 中使用 Python 对其进行了分析。如果您有兴趣提取过去任何时期的湖泊表面积的时间序列,甚至有兴趣将此方法应用于其他湖泊,那么这篇博文适合您。

💾 下载 Landsat-8 图像

为了下载 Landsat-8 图像,我使用了一个名为 AρρEEARS 的网络应用程序。您可以通过此网络应用程序下载您感兴趣的区域 (AOI) 的卫星图像。这些图像将被剪辑并提供元数据和统计文件。您只需为 AOI 绘制一个多边形,选择产品,然后选择开始和结束日期。

在这篇文章中,我在大盐湖周围绘制了一个多边形,选择了 Landsat-8 ARD 产品,并设置了开始和结束时间以涵盖 2014 年至 2023 年的夏季月份(6 月、7 月和 8 月) 。只考虑在夏季拍摄的图像的决定基于两个原因:(1) 在夏季获得较少云图像的可能性更高,(2) 它限制了计算时间的图像总数。由于我们正在下载这几个月内所有年份的 Landsat-8 图像,因此不同年份的结果(估计的湖泊表面积)具有可比性。

数据政策:根据USGS网站,“从USGS下载Landsat数据没有任何限制;可以根据需要使用或重新分发”(链接)和“通过 LP DAAC 获取的所有 LP DAAC 当前数据和产品在重复使用、销售或重新分发方面没有限制”(链接)。

📈 统计文件中的大盐湖地区时间序列

在 AρρEEARS 中提交请求后,您有两种选择来估算湖泊的表面积。选项 1 是使用统计 CSV 文件中报告的预先计算的水像素数量,选项 2 是通过处理分类图像来计算水像素数量,我将在稍后解释。要遵循选项 1,请从 AρρEEARS 下载两个文件:“L08–002-QA-PIXEL-CU-Statistics-QA.csv”和“L08–002-QA-PIXEL-CU-lookup.csv”。

让我们快速浏览一下每个文件:

L08–002-QA-PIXEL-CU-Statistics-QA.csv 快照,作者图片

L08–002-QA-PIXEL-CU-lookup.csv 的快照,图片由作者提供

正如您在第一个文件“L08–002-QA-PIXEL-CU-Statistics-QA.csv”中看到的,每个图像(行)报告每个类(列)中的像素数。要解码这些列名称,我们需要第二个文件“L08–002-QA-PIXEL-CU-lookup.csv”。如果过滤标记为“水”的列,您可以找到水像素对应的类名称(列):

L08–002-QA-PIXEL-CU-lookup.csv 的快照,过滤水像素,图片由作者提供

我们可以看到,水类别考虑的代码为 21890、21952、22146、22208、54662、54724、54918、54980。因此,如果我们仅从“L08–002-QA-PIXEL-CU-Statistics-”中选择这些列QA.csv”并获得计数像素的总和,我们可以可视化大盐湖地区过去10年的时间序列。让我们编写一个 Python 脚本来绘制此图:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdatescsv_file_path = 'L08-002-QA-PIXEL-CU-Statistics-QA.csv'# Column names for the water class
selected_columns = ['21890', '21952', '22146','22208','54662','54724','54918','54980']# Read the CSV file into a pandas DataFrame
df = pd.read_csv(csv_file_path)# Convert the 'date' column to datetime format
df['date'] = pd.to_datetime(df['Date'])# Select the water column
selected_data = df[['Date'] + selected_columns]# Calculate the summation for each row
selected_data['sum'] = selected_data[s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/721292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过联合部署DDoS高防和WAF提升网站防护能力

如果您的网站遭受的攻击既有流量型攻击,又混杂精巧的Web应用层攻击时(例如SQL注入、跨站脚本攻击、命令注入等)时,推荐您组合使用阿里云DDoS高防和Web 应用防火墙 WAF(Web Application Firewall)&#xff0…

C语言文件操作,linux文件操作,文件描述符,linux下一切皆文件,缓冲区,重定向

目录 C语言文件操作 如何打开文件以及打开文件方式 读写文件 关闭文件 Linux系统下的文件操作 open 宏标志位 write,read,close,lseek接口 什么是当前路径? linux下一切皆文件 文件描述符 文件描述符排序 C语言文件操…

【音视频开发好书推荐1】《RTC程序设计:实时音视频权威指南》

1、WebRTC概述 WebRTC(Web Real-Time Communication)是一个由Google发起的实时音视频通讯C开源库,其提供了音视频采集、编码、网络传输,解码显示等一整套音视频解决方案,我们可以通过该开源库快速地构建出一个音视频通…

牛客练习赛122

D:圆 正着求删除的最小代价不好做,采用逆向思维,求选择一些不相交的线段使得构成一个圆的代价尽量大,最后答案就是所有线段权值之和减去最大代价。 那么如何求这个最大代价呢?显然区间DP 老套路:破环成链&#xff0…

详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法

集合的概念 当我们需要保存一组一样(类型相同)的元素的时候,我们应该使用一个容器来存储,数组就是这样一个容器。 ● 数组的特点: 数组是一组数据类型相同的元素集合; 创建数组时,必须给定…

Discuz IIS上传附件大于28M失败报错Upload Failed.修改maxAllowedContentLength(图文教程)

下图:Discuz X3.5的系统信息,上传许可为1024MB(1GB) 论坛为局域网论坛,仅供内部同事交流使用! 使用官方最新的Discuz! X3.5 Release 20231221 UTF-8 下图:选择上传附件(提示可以最大上传100M)…

【Python】新手入门(2):避免将关键字作为标识符

Python新手入门(2):避免将关键字作为标识符 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

保护模式笔记九 中断门和IDT(中断描述符表)

段选择子: 先直观认识一下GDT和段选择子在逻辑地址转换为线性地址中的作用,例如: 给出逻辑地址:21h:12345678h,需要将其转换为线性地址 a. 选择子SEL21h0000000000100 0 01b,他代表的意思是&#xff1a…

Ruoyi框架上传文件

axios资料:axios中文文档|axios中文网 | axios axiosjson 默认情况下,axios将JavaScript对象序列化为JSON。 submit(data) {if (data && this.definitionId) {// 启动流程并将表单数据加入流程变量startProcess(this.definitionId, JSON.string…

数据可视化原理-腾讯-3D热力图

在做数据分析类的产品功能设计时,经常用到可视化方式,挖掘数据价值,表达数据的内在规律与特征展示给客户。 可是作为一个产品经理,(1)如果不能够掌握各类可视化图形的含义,就不知道哪类数据该用…

代码随想录刷题笔记-Day29

1. N皇后 51. N 皇后https://leetcode.cn/problems/n-queens/ 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数…

【Sql Server】C#通过拼接代码的方式组合添加sql语句,会出现那些情况,参数化的作用

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

JavaWeb JSP

JSP(Java Server Page)是J2EE的功能模块,是Java服务器页面,由Web服务器执行,作用就是降低动态网页开发难度,将Java代码与HTML分离,降低开发难度,本质就是Servlet。 Servlet的缺点&a…

pandas数据分析42——读取和写入stata和spss的数据格式

python就是胶水语言,啥文件基本都能读取,而且pandas作为数据分析最好用的包,其功能自然也很多,可以读取各种数据文件。 本次就来演示一下怎么读取stata文件,和spss文件,他们不仅储存了数据和变量&#xff…

C++--机器人的运动范围

目录 1. 题目 2. 思路 3. C代码测试 4. 测试结果 1. 题目 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格…

如何应对IT服务交付中的问题?

如何应对IT服务交付中的问题? 按需交付服务的挑战IT服务体系的复杂性恶性循环的形成学会洞察的重要性书籍简介参与方式 按需交付服务的挑战 一致性、可靠性、安全性、隐私性和成本效益的平衡:成功的按需交付服务需要满足这些要求,这需要服务…

html样式排版

<template><div class"box"><div class"header">头部</div><div class"main"><div class"left">菜单</div><div class"right"><div class"right-contentr"&g…

【C++】list模拟实现+反向迭代器

list模拟实现 list定义list用法list iterator的使用begin() end()rbegin()rend() reverse()sort()merge()unique()remove()splice() list模拟实现struct和class的区别list三个类模板默认成员函数构造函数拷贝构造函数赋值运算符重载析构函数 数据修改操作push_back()push_fron…

正信法律:借了钱找不到人怎么办

当一个人借出钱财之后&#xff0c;发现借款人像蒸发了一般无影无踪&#xff0c;这无疑是一件让人头疼的事情。面对这种情况&#xff0c;我们需要采取明智的措施来保护自己的权益。 尽量联络借款人。可以通过电话、短信、电子邮件或社交媒体尝试联系&#xff0c;同时也可以询问共…

界面控件DevExpress WinForms 2024产品路线图预览(一)

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…