全球DEM地形90m高程瓦片数据介绍

一、数据背景

DEM可提供精准的基础地理数据,在全球气候变化、海洋潮汐运动、地球球体物质交换等研究领域发挥着至关重要的作用。高分辨率全球海洋DEM数据是海洋地质和海洋测绘的前沿分支,为了解海底构造运动、海底演化过程提供直接依据。但由于技术限制和测绘成本等原因,获得高分辨率全球海洋DEM代价高昂。
2022年12月,清华大学地球系统科学系黄小猛教授科研团队在《科学通报》(Science Bulletin)上发表题为“3弧秒全球DEM数据集的超分辨率重建”(Super-resolution reconstruction of a 3 arc-second global DEM dataset)的论文,发布了全球3弧秒(90 m)分辨率海洋和陆地DEM数据产品(GEBCO_2021)。
该研究基于30 m分辨率的美国国家航空航天局(NASA)DEM卫星影像、联合国政府间海洋学委员会的450 m分辨率GEBCO_2021公开数据和部分区域高分辨率海洋地形数据,采用深度残差预训练神经网络和迁移学习(Transfer Learning)相结合技术,构建了适用于全球区域的DEM-SRNet模型,制作了全球3弧秒(90 m)分辨率的海陆DEM产品GDEM_2022。
与目前广泛采用的基于插值或者其他深度学习超分方法对比,所构建模型结果均优于同类方法。与基于插值的传统方法相比,GDEM_2022产品的RMSE指标平均提升23.75%。通过对比GDEM_2022与GEBCO_2021,发现GDEM_2022在清晰度和细节方面优于GEBCO_2021。该研究提出的深度学习超分辨率DEM可以大大减少必要测量的海域或点的数量,很好地补充了海底的精细测绘和全球高分辨率海陆DEM地形图的构建。
该成果可以满足不同领域和不同层次对海洋测深数据的需求,为不同地形复杂度下全球海陆重力场与地形的关系、探索不同海陆构造单元的均衡机制以及海陆地形对海洋潮流运动的影响等方面的研究提供重要支撑。
基于此,我将数据进行处理后,生成了能够接入到Cesium上显示的terrain格式瓦片数据。

二、数据简介

数据经过重投影及合成后,加载到Global Mapper上显示,效果如下
在这里插入图片描述
数据覆盖了全球陆地和海洋,相比较全球30m,12.5m的高程数据,其实它们应该叫全球陆地地形数据,并不包括海洋海底地形。
90m数据最高能切到12级,下图为地形瓦片数据的目录结构
请添加图片描述
可以看一下layer.json配置文件信息
请添加图片描述

三、显示

将数据使用Nginx进行发布,具体发布方法可以参考我之前的地形瓦片发布文章,这里给出nginx中nginx.conf的配置server方法

  server
  {
    listen       8802;
    server_name  localhost;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    add_header Access-Control-Allow-Origin "$http_origin";
    add_header Access-Control-Allow-Credentials true;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    if ($request_method = 'OPTIONS')
    {
      return 204;
    }

    location / {
      autoindex on;
            root   D:/Data/DEM/Data/DEM-90M-WGS84-GLOBAL-GDEM-MESH/;
            #index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

前端使用Cesium进行接入,具体接入关键代码如下

 //创建viewer
 const viewer = new Cesium.Viewer('cesium-app', {
   selectionIndicator: false,
   baseLayerPicker: false,
   homeButton: false,
   infoBox: false,
   timeline: false,
   navigationHelpButton: false,
   navigationInstructionsInitiallyVisible: false,
   vrButton: false,
   fullscreenButton: false,
   geocoder: false,
   animation: false,
   sceneModePicker: false,
   shadows:true,
   imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
     url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
   })
 });

 viewer.cesiumWidget.creditContainer.style.display = "none";
 viewer.scene.globe.enableLighting = false;
 viewer.scene.highDynamicRange = true;
 viewer.scene.msaaSamples = 16;
 viewer.scene.fog.enabled = true;
 viewer.scene.fog.enableLighting = true;
 //加载地形
 viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
    url:"http://192.168.1.77:8802/",
    tilingScheme: new Cesium.GeographicTilingScheme(),
    requestVertexNormals:true
   });

首先创建viewer对象,设置大气、光照、抗锯齿等参数增强地形表达效果;再通过CesiumTerrainProvider创建viewer的terrainProvider对象,这样数据就加载到场景当中了。在这里说明一下,我的后端nginx和前端cesium不是一台机器,后端机器ip是192.168.1.77,开放的端口号是8802,因此我们接入的url全称是"http:\192.168.1.77::8802",也需要设置tilingScheme,我们的数据都是wgs84投影,所以设置的是GeographicTilingScheme对象;同时设置requestVertexNormals为true,因为地形瓦片是Mesh格式,在生成Mesh格式terrain数据时,也生成了每个点的法向量,这样开启光照,地形会有光照明暗阴影,效果更加自然。
下面放几张加载截图
请添加图片描述
请添加图片描述
请添加图片描述

四、结语

总体而言,这份90m高程地形瓦片数据在显示效果上是相当不错的,能够满足海底地形的三维可视化等应用。对于这份数据,有问题咨询的读者,可以在评论区留言,或者私信联系,我将及时回复大家的问题。

  • 32
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值