Google earth engine(GEE)是一个非常好用的数据下载的工具。
近日在GEE下载sentinel2影像,遇到问题,现记录并解决改问题。
数据下载脚本2024年3月1日之前,下载sentinel2的脚本如下:
Map.centerObject(table,12);
function maskS2clouds(image) {
var qa = image.select('QA60');
var cloudBitMask = 1 << 10;
var cirrusBitMask = 1 << 11;
var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
.and(qa.bitwiseAnd(cirrusBitMask).eq(0));
return image.updateMask(mask).divide(10000);
}
var dataset = ee.ImageCollection('COPERNICUS/S2_SR')
.fi ...
本质是输入为高程asc文件,输出为shp文件。
直接上代码:
from osgeo import gdal, ogr
import sys
def generate_contour(source, target, contour_interval=400, contour_base=10):
"""
从给定的DEM生成等高线,并保存为Shapefile格式。
参数:
source : str
DEM文件的路径。
target : str
输出Shapefile文件的路径(不包括扩展名)。
contour_interval : int, optional
等高线的间隔。
contour_base : int, optional
等高线的基准。
返回:
None
"""
# 创建Shapefile数据源
ogr_driver = ogr.GetDriverByName('ESRI Shapefile')
ogr_ ...
水深测量数据,算是一种遥感数据,只是与平常的航天航空影像数据数据的格式、形式不一样。
这是最常用的水深测量方法,特别是在大型水体(如海洋和大湖)中。声纳(SONAR)是一种利用声波在水中传播和反射的技术,通过发送声波并测量其返回时间来计算水深。多普勒效应可以用来测量海底的粗糙度和其它特性。这种方法可以生成大面积的高分辨率水深图。
这次,展示水深测量数据的可视化及ASCII文件转换为TIF文件。
数据处理过程我们的任务是
1.将ASCIIGrid格式的地形数据进行可视化。
2.将ASCIIGrid格式的地形数据转换为TIFF格式。
ASCIIGrid是一种网格数据格式,它以ASCII文本形式存储规则网格的单元格值。
以下是对这个任务的数据处理过程的详细描述:
读取ASCIIGrid格式的地形数据:首先,我们需要读取存储在ASCIIGrid格式文件中的地形数据。ASCIIGrid是一种常见的地理空间数据格式,它将地形数据存储为一个二维数组,每个元素代表一个地理位置的海拔高度。我们可以使用numpy的loadtxt函数来读取这个文件。由于ASCIIGrid文件的前几行包含了关于数据的元信息 ...
人在江湖飘,一个电脑里的python版本可能不止一个。比如说我,有两个不一样的python版本。
首先都要把python的安装路径添加到系统的环境变量里。
第一种方法我们可以在命令行(cmd),输入python,就可以进入python环境了。
是不是很简单?
那怎么知道咱进去的是哪个版本的python的环境呢?
这个决定于你添加 环境变量 的顺序!
你可以手动的在这里调顺序。
我们也可以在命令行(cmd)输入 where python, 查看python版本在环境变量里的顺序。
如下图。
第二种方法在 Windows 系统中,py 是 Python 启动器的命令。Python 启动器是一个特殊的工具,它允许用户在命令行中启动 Python。这是 Python 在 Windows 系统中的一个特性,它使得在命令行中启动 Python 变得更加方便。
Python 启动器的工作方式是这样的:当你在命令行中输入 py 并按下回车键时,它会寻找并启动你系统中安装的 Python 解释器。默认情况下,它会启动你系统中版本最高的 Python 解释器。你也可以通过在 py 命令后面添加版 ...
深度学习
未读神经网络是一种强大的计算模型,它能够学习并拟合复杂的数据模式,从图像和文本到音频和更多。神经网络通过以下步骤来拟合现实世界的数据:
1.数字化。把真实物理世界的内容用数值来表示。
2.定义网络结构。通过模拟神经元的形式,构造神经网络。如何定义一个神经网络的好坏一般是由结果说明(在学术上缺少数学公式证明)。
3.前向传播。数据在多维空间中的函数映射,生产初步预测。
4.计算损失。计算初步预测与真实结果的差异。
5.反向传播和优化。目标是通过迭代更新网络参数(权重和偏置),以最小化预测输出和实际目标之间的差异。
6.迭代训练。以上过程在多个训练周期(称为”epochs”)中反复进行,每个周期都会遍历整个训练数据集。每个周期结束后,网络的权重和偏置会被更新,以减少预测和真实值之间的差异。
数字化
在神经网络的世界里,数据预处理就像是准备一场精彩的音乐会。我们需要将原始的、无序的音符(现实世界的数据)经过一系列的处理和调整,才能演奏出一曲动听的乐章(有效的模型)。
首先,我们需要进行”特征提取”,这就像是挑选音乐会的曲目。比如在文本分类任务中,我们把文字的词频和语义信息提取出来,就像是挑选出最 ...
遥感影像通常具有极高的分辨率和大量的数据量,这就使得全景处理遥感影像成为一项极具挑战的任务。首要的问题是,大规模的遥感影像可能会超过硬件设备,特别是GPU的内存容量。其次,处理大规模遥感影像的计算复杂度非常高,可能会导致处理速度缓慢,效率低下。
在具体的应用中,例如深度学习的训练过程,我们通常需要将遥感影像切割成较小的样本,如512x512像素的图像块,以适应GPU的内存限制。这样的操作不仅可以有效地避免内存溢出,而且可以提高数据处理的速度,因为小图像块的处理速度通常比大图像快。
为了实现这样的分块处理,我们通常会采用双重循环的方式。首先,外层循环负责遍历图像的行,然后内层循环遍历每一行的列。这样,我们就可以逐块地访问和处理图像,而不需要一次性加载整个图像到内存中。这种方法既节省了硬件资源,又提高了数据处理的效率,对于处理大规模的遥感影像具有非常重要的意义。
代码解析分块处理的核心部分如下:
# 遍历输入文件的每一个块
for x in range(0, xsize, block_ysize):
if x + block_xsize < xsize:
co ...
在地理信息系统(GIS)和遥感中,数字高程模型(Digital Elevation Model,简称DEM)是一种表示
地表或地形高程信息的重要数据。DEM数据通常以栅格(raster)形式存在,其中每个像素的值表示相
应地理位置的高程。
之前介绍了如何进行6S大气校正,其中有一段代码是自动获取DEM的高度。
原理及过程是,输入参数分别是经纬度、DEM文件。输入参数是高度。
先把DEM文件读取为栅格,再把经纬度转换为行列号,根据行列号定位到DEM栅格,读取该栅格的数值,返回数据。
代码解析以下是我们的Python函数:
def fromDemFileGetHeight(dem, lon, lat):
try:
DEMIDataSet = gdal.Open(dem)
except Exception as e:
print('Missing DEM file')
pass
DEMBand = DEMIDataSet.GetRasterBand(1)
geotransform = DEMIDataSet.G ...
之前写了
1.矢量裁剪栅格
2.矢量裁剪矢量
其实还有另一种裁剪数据的类型,那就是矢量裁剪NetCDF,下面简称为NC数据。
常见的NC数据,就我个人遇到的情况来说,有以下几个:
1.美国的jason3海洋数据
2.中国的风云三号、风云四号气象数据
3.欧空局的哨兵3海洋数据、哨兵5气象数据
还有很多,只是我还没遇到,暂时不写。
通俗地来说,nc数据与tif数据对比,nc的特点是多维的。
一个nc文件可能包含了一份30天的海洋温度数据和60天的海洋高度数据,每一天的海洋温度数据的大小为1000x1000,每一天的海洋高度数据的大小为2000x2000。所以,这份nc文件就是30x1000x1000和60x2000x2000的数据的集合。
tif文件一般是固定大小,即第一个波段的大小与其他波段的大小是保持一致。如果要把上面的数据保存为tif,此时,tif的大小就变成了90x2000x2000。
如果要用tif格式去保存这种形式的数据,会使数据量提高,所以nc格式一般是被视为高效率存储的格式。
除此之外,nc的复杂性与文件内部的不统一性也是处理nc数据的难点。我就觉得是nc文件内部的数据 ...
水深测量数据,算是一种遥感数据,只是与平常的航天航空影像数据数据的格式、形式不一样。
这是最常用的水深测量方法,特别是在大型水体(如海洋和大湖)中。声纳(SONAR)是一种利用声波在水中传播和反射的技术,通过发送声波并测量其返回时间来计算水深。多普勒效应可以用来测量海底的粗糙度和其它特性。这种方法可以生成大面积的高分辨率水深图。
这次,展示水深测量数据的一般处理过程。
数据的格式和特点本项目处理的数据是XYZ格式的地形数据。XYZ格式是一种常见的地理数据格式,其中每一行包含一个点的X、Y和Z坐标。在地形数据中,X和Y通常代表地理坐标(例如经度和纬度),Z代表地形高度或深度。
XYZ格式的特点包括:
简单:每行包含一个数据点,每个数据点包含三个字段(X、Y和Z)。
灵活:可以表示任何三维空间的数据点。
通用:被许多地理信息系统(GIS)和数据处理工具所支持。
然而,XYZ格式的一个缺点是它不直接支持网格数据。在许多应用中,我们需要将散点数据转换为规则的网格,以便进行进一步的分析和可视化。这就是本项目的目的。
数据处理过程我们的任务是将XYZ格式的地形数据转换为ASCIIGrid格式 ...
什么是GIS面合并GIS(地理信息系统)中的面合并是一个处理地理空间数据的常见操作。它涉及到将两个或者更多的相邻或者重叠的多边形(也被称为“面”)合并为一个单一的多边形。这个操作通常在处理地理数据时用来简化数据集,例如将多个相邻的行政区域合并为一个更大的区域,或者将多个重叠的地理特征合并为一个连续的特征。
在arcgis中很容易实现这个功能。但是怎么用代码实现呢?
代码把指定文件夹下的 所有shapefile进行面合并
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import geopandas as gpd
import glob
# 指定文件夹路径
folder_path = '/path/to/your/folder/'
# 查找文件夹下的所有shapefile
shapefiles = glob.glob(folder_path + '*.shp')
# 读取并合并所有shapefile
gdf = gpd.GeoDataFrame(pd.concat([gpd.read_file(shp) for shp in shap ...