1. 数据获取

笔者这里使用的是哨兵一号(Sentinel-1)、ALOS的遥感影像和ALOS的DEM数据

下载地址为:ASF Data Search (alaska.edu)

ASF(Alaska Satellite Facility) DAAC是美国国家航空航天局阿拉斯加卫星设备处用来存放数据的一个网站接口,具有Sentinel-1、ALOS、RADASAT、SEASAT等雷达遥感数据

1.1 下载遥感影像

笔者这里下载的是包含长沙地区的遥感影像,操作步骤如图所示:

下载哨兵一号SAR影像:

下载ALOS多光谱影像:

1.2 下载DEM数据

笔者这里下载的是包含长沙地区的DEM数据,操作步骤如图所示:

2. 数据预处理

2.1 数据预览

笔者在QGIS里加载DEM数据并查看信息:

可以看到这是12.5米分辨率的DEM数据以及使用的基准面是WGS_1984,投影坐标系是UTM横轴墨卡托,49N

有关该数据更多的解读可见:12.5m分辨率DEM数据?解读ASF DAAC的DEM数据--关于地理数据收集与处理的基本工具推荐(5)_Dianchen_Raw的博客-CSDN博客

在SNAP里加载SAR遥感影像:

可以看到这个影像具有4个波段,Amplitude_VH波段表示VH通道的振幅,Intensity_VH波段表示VH通道的强度(振幅的平方),剩下的VV通道意义类似。注意Intensity_VH前面有个“V“的标志(V是”Virtual“的前缀,虚拟之意),这表示该波段是在内存中临时产生虚拟的波段,不是实际存储在硬盘的波段

有关数据更多的解读可见:07-SNAP处理Sentinel-1 IW GRD数据_超级禾欠水的博客-CSDN博客

在SNAP中加载ALOS多光谱影像:

可以看到这个是有云的地面影像

有关数据更多的解读可:ENVI下基于ALOS数据的影像底图生产 - GIS知乎-新一代GIS问答社区 (geoscene.cn)

2.2 DEM填充

可以看到DEM数据中存在一些没有数据的白斑:

这里我们使用QGIS来进行栅格填充:

也可以使用GDAL里的填充,它是基于反距离插值算法:

具体参数可以参考:23.2.1. 栅格分析 — QGIS Documentation 文档 (osgeo.cn)

使用ArcGIS可以参考:Arcgis插值填充处理影像中的少量nodata值_多喝水就行的博客-CSDN博客_arcgis如何处理nodata的像元

2.3 地面影像RGB合成

笔者对目前遥感认识不足,这里就不对地面遥感影像进行过多处理,这里的操作主要是进行RGB合成

对于下载到的ALOS多光谱影像,笔者尝试使用ENVI用Open as ALOS AVNIR-2的方式加载数据里的文件,但是显示不能读取文件,笔者也试过使用SNAP直接加载数据压缩包,但是加载的数据只有一个波段

参考:ALOS卫星概况 - GIS的学习 - 博客园 (cnblogs.com),笔者ENVI直接加载四个TIF文件:

设置RGB波段:

右键导出RGB TIF:

不妨使用QGIS来看看图像:

可以看到影像存在黑边框,黑边框的去除可以参考:

3.地面影像切片

3.1 QGIS切片

使用QGIS进行遥感影像切片:

切片结果查看:

3.2 GeoServer切片

登录GeoServer,添加存储库:

选择添加GeoTIFF格式的数据,并设置相应的内容:

点击保存并发布

点击图层切片:

可以看到GeoServer已经自动切片,我们可以预览切片,也手动设置默认切片参数,或者删除现在的切片重新添加

关于gridsets可以参考:网格集 — GeoServer 2.19.x User Manual (osgeo.cn)

关于切片缓存可以参考:geoserver 地图性能和缓存 - heavi - 博客园 (cnblogs.com)

4. DEM地形切片

这里笔者选择的是使用CesiumLab进行地形切片:

点击地形切片,选择文件,设置参数,等待较长时间即可完成

完成后可以预览地形切片:

预览地形:

CesiumLab的大部分功能是免费使用的,如果要寻找开源方案,可以参考:geo-data/cesium-terrain-builder: A C++ library and associated command line tools designed to create terrain tiles for use in the Cesium JavaScript library (github.com)

5. Cesium加载遥感影像与地形切片

参考官方示例:CesiumJS Quickstart – Cesium

使用在线CDN引入Cesium:

  <!-- Include the CesiumJS JavaScript and CSS files -->
<script src="https://cesium.com/downloads/cesiumjs/releases/1.92/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.92/Build/Cesium/Widgets/widgets.css" rel="stylesheet">

加载地形数据:

// Initialize the Cesium Viewer in the HTML element with the `cesiumContainer` ID.
const viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider : new Cesium.CesiumTerrainProvider({
url : 'http://localhost:9003/terrain/CaaH9wxe/',
}),
});

加载遥感影像:

var imageryProvider1=new Cesium.WebMapServiceImageryProvider({
url:'http://localhost:8080/geoserver/yuelushan/wms',
layers:'yuelushan:ChangshaRemoteImage',
parameters : {
service : 'WMS',
format: 'image/png',
transparent:true,
},
});
viewer.imageryLayers.addImageryProvider(imageryProvider1);

设置视点:

// Fly the camera to Changsha at the given longitude, latitude, and height.
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(112.9448, 28.1708, 1200),
orientation : {
heading : Cesium.Math.toRadians(0.0),
pitch : Cesium.Math.toRadians(-15.0),
}
});

完整代码如下:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<!-- Include the CesiumJS JavaScript and CSS files -->
<script src="https://cesium.com/downloads/cesiumjs/releases/1.92/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.92/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
<div id="cesiumContainer"></div>
<script>
// Your access token can be found at: https://cesium.com/ion/tokens.
// Replace `your_access_token` with your Cesium ion access token. // Cesium.Ion.defaultAccessToken = 'your_access_token'; // Initialize the Cesium Viewer in the HTML element with the `cesiumContainer` ID.
const viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider : new Cesium.CesiumTerrainProvider({
url : 'http://localhost:9003/terrain/CaaH9wxe/',
}),
});
var imageryProvider1=new Cesium.WebMapServiceImageryProvider({
url:'http://localhost:8080/geoserver/yuelushan/wms',
layers:'yuelushan:ChangshaRemoteImage',
parameters : {
service : 'WMS',
format: 'image/png',
transparent:true,
},
});
viewer.imageryLayers.addImageryProvider(imageryProvider1); // Fly the camera to Changsha at the given longitude, latitude, and height.
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(112.9448, 28.1708, 1200),
orientation : {
heading : Cesium.Math.toRadians(0.0),
pitch : Cesium.Math.toRadians(-15.0),
}
});
</script>
</div>
</body>
</html>

预览结果,这里笔者是使用VS Code的Live Server插件的方式加载网页:

参考资料

[1]12.5m分辨率DEM数据?解读ASF DAAC的DEM数据--关于地理数据收集与处理的基本工具推荐(5)_Dianchen_Raw的博客-CSDN博客

[2]07-SNAP处理Sentinel-1 IW GRD数据_超级禾欠水的博客-CSDN博客

[3]ENVI下基于ALOS数据的影像底图生产 - GIS知乎-新一代GIS问答社区 (geoscene.cn)

[4]ALOS卫星概况 - GIS的学习 - 博客园 (cnblogs.com)

[5]ARCGIS中遥感影像去除黑边方法_zglybl的博客-CSDN博客_arcgis去除影像黑边

[6]使用ArcGIS Desktop或QGIS镶嵌时去除黑边 (qastack.cn)

[7]GeoServer数据服务发布及切片_giscoder的博客-CSDN博客_geoserver发布切片

[8]geoserver 地图性能和缓存 - heavi - 博客园 (cnblogs.com)

[9]网格集 — GeoServer 2.19.x User Manual (osgeo.cn)

[10]Cesium 生成terrain地形数据----CTB方式及步骤_大大大大大碗面的博客-CSDN博客_cesium 地形数据

[11]geo-data/cesium-terrain-builder: A C++ library and associated command line tools designed to create terrain tiles for use in the Cesium JavaScript library (github.com)

[12]CesiumJS Quickstart – Cesium

[13]地形影像 (supermap.com.cn)

[14]vue+cesium加载DEM和GeoServer服务 - 粥和 - 博客园 (cnblogs.com)

遥感影像和DEM数据获取处理、GeoServer切片发布并使用Cesium加载的更多相关文章

  1. cesium 加载TMS影像(已经切片)

    TMS影像数据格式 加载影像的代码: var layers = viewer.scene.imageryLayers; var blackMarble = layers.addImageryProvi ...

  2. cesium加载WFS服务(GeoServer发布)

    需求: 为了便于前端渲染数据,自定义图层渲染. 思路: 获取地图服务中的要素进行渲染. 工具: GeoServer 2.6.4,cesium, 思路有了就开始找资料写代码,cesium有接口可以加载W ...

  3. Cesium加载影像和地形数据+开启高程遮挡效果+视点定位+定时更新

    // 初始化Cesium var viewer = new Cesium.Viewer('cesiumContainer', { /*imageryProvider : new Cesium.ArcG ...

  4. Cesium加载影像

    注意:使用自定义数据源时,Cesium.Viewer类参数必须设置为 baseLayerPicker:false A. 使用天地图数据源 //天地图var provider=new Cesium.We ...

  5. DGIS之遥感影像数据获取

    1.概要 在GIS圈的同行或多或少接触过遥感,记得在大学老师就说过"数据是GIS的核心".本文介绍在国内下载遥感影像的方法. 地理空间数据云,这个是中科院计算机网络中心建设的一个免 ...

  6. 遥感影像滤波处理软件 — timesat3.2

    最近因为要做遥感影像的滤波处理,经过女神推荐,决定用Timesat,可是该软件3.1版本只适合xp系统以及2011的matlab,后来在官网上找到了最新的3.2版本.支持64位操作系统以及2014的m ...

  7. 在matlab中进行遥感影像地理坐标的相互转换

    在matlab中进行图像处理,一般使用的都是图像本地坐标,以左上角(1,1)开始.处理完成后,如果要将结果在带地理坐标的遥感影像中显示,或者需要输出成shp文件,就需要涉及到本地坐标和地理坐标的转换, ...

  8. 在matlab中实现遥感影像和shp文件的结合显示

    clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure, mapshow('boston.tif'); % ...

  9. 1. GDAL与OpenCV2.X数据转换(适合多光谱和高光谱等多通道的遥感影像)

    一.前言 GDAL具有强大的图像读写功能,但是对常用图像处理算法的集成较少,OpenCV恰恰具有较强的图像处理能力,因此有效的结合两者对图像(遥感影像)的处理带来了极大的方便.那么如何实现GDAL与o ...

  10. GDAL与OpenCV2.X数据转换(适合多光谱和高光谱等多通道的遥感影像)

    一.前言 GDAL具有强大的图像读写功能,但是对常用图像处理算法的集成较少,OpenCV恰恰具有较强的图像处理能力,因此有效的结合两者对图像(遥感影像)的处理带来了极大的方便.那么如何实现GDAL与o ...

随机推荐

  1. 【实时数仓】Day03-DWM 层业务:各层的设计和常用信息、访客UV计算、跳出明细计算(CEP技术合并数据识别)、订单宽表(双流合并,事实表与维度数据合并)、支付宽表

    一.DWS层与DWM层的设计 1.设计思路 分流到了DWD层,并将数据分别出传入指定的topic 规划需要实时计算的指标,形成主题宽表,作为DWS层 2.需求梳理 DWM 层主要服务 DWS,因为部分 ...

  2. @Transactional注解事务失效的几种场景及原因

    1. 介紹 在业务开发的许多场景中,我们会使用到通过事务去控制多个操作的一致性.比较多的就是通过声明式事务,即使用 @Transactional 注解修饰方法的形式.但在使用过程中,要足够了解事务失效 ...

  3. USB转TTL串口 (CH340 G)

    为什么USB要转TTL串口[1]? 单片机串口基本采用TTL电平. 家用电脑很少有串口,但是有USB接口 USB的电平与TTL电平不兼容. 所以需要将USB电平转化为TTL电平. USB是什么? 接口 ...

  4. vulnhub靶场之GROTESQUE: 3.0.1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Grotesque: 3.0.1,下载地址:https://download.vulnhub.com/grotesque/grotesque3. ...

  5. electron中使用adm-zip将多个excel文件压缩进文件夹,使用XLSX以及XLSXStyle生成带样式excel文件

    需求:electron环境下想要实现根据多个表生成多个Excel文件,打包存入文件夹内并压缩下载到本地.(实际场景描述:界面中有软件工程一班学生信息.软件工程二班学生信息.软件工程三班学生信息,上方有 ...

  6. 大数据 - DWS层 业务实现

    统计主题 需求指标[ADS] 输出方式 计算来源 来源层级 访客[DWS] pv 可视化大屏 page_log 直接可求 dwd UV(DAU) 可视化大屏 需要用 page_log 过滤去重 dwm ...

  7. CentOS7.6搭建Hadoop2.7.2运行环境-三节点集群模式

    一 环境准备 1.    准备机器 2.    修改静态IP 3.    修改主机名 4.    关闭防火墙 5.    创建普通用户hadoop 添加hadoop用户 [root@hadoop102 ...

  8. toastr.js 便捷弹框怎么用?怎么本地化?

    〇.简介 toastr.js 是一个非常简洁的弹窗消息插件,主要原因就是其脚本和样式文件较小. 并且可以根据自己的需求,修改样式文件,可以应用在多种不同的场景. https://codeseven.g ...

  9. MongoDB6.0的安装「2023年」

    你好,我是悦创. 优质原文格式:https://bornforthis.cn/column/crawler/supplement/mongodb-install.html 点进去有惊喜. 吐槽,这篇博 ...

  10. pytest框架的简介

    概念:是一款基于python语言的单元测试框架 用途:用于发现测试用例.执行测试用例.判断测试结果.生成测试报告的一款框架 测试用例的规则: 测试文件必须与test开头,或_test结尾 类文件必须T ...