一、背景
哥白尼数字高程模型(Copernicus DEM, COP-DEM)是最近才开源的,已经有遥感大牛拿GLO-30与ALOS、NASA、ASTER、SRTM等一众30m DEM数据从绝对高程精度和水平高程精度、数据现势性、地势细节体现等几个方面进行了比较。得出哥白尼数字高程模型GLO-30数据优于其他30m数据,并且“全球最佳开源DEM之一”中的之一能够去掉的定论。
去不去掉”之一”其实我并不重视,总结下来,就是数据质量很好。关于专心可视化的开发者来说,更重视的是:这么好的数据,什么时候能够把这数据接入到Cesium中?基于此,我把这份数据下载下来,经过投影变换,合成、生成瓦片等一众流程,终究生成了这份地势瓦片数据。 说这份地势瓦片数据之前,先说一下当时30m地势数据的情况。AW3D30、NASADEM、ASTER、SRTM这几个公开的30m数据,我已经全部下载下来,并且转成了WGS84投影,经过对等到调研,觉得ALOS的30m数据AW3D30是这四个中间数据质量最好的,因而就把AW3D30数据切成了能接入Cesium的地势瓦片数据,数据详细介绍参阅我之前发布的文章(全球30m地势瓦片数据介绍),这次已然有声称最佳开源DEM数据的哥白尼DEM数据公开了,更想看看,这份数据在三维地球上的体现怎么。因而才有了这份地势瓦片数据。
二、数据
COP-DEM的数据获取能够经过官方网站免费获取,数据量比ALOS还大,处理起来适当费时。下载下来的原始数据有548GB,原始文件是按经纬度各1度进行切割的,总共有26540个文件
转成WGS84投影后,大小有1.24TB!
加载到GIS软件能够查看地势晕渲图: 能够看出,对地球地表的覆盖率是适当高的。 生成的地势瓦片数据,和ALOS 30m高程数据相同,最高只能生成第14级,12.5m能生成到第15级,1m高程数据生成到第19级。
下面看一下生成的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-30M-WGS84-GLOBAL-GLO-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数据时,也生成了每个点的法向量,这样开启光照,地势会有光照明暗暗影,作用愈加天然。 下面放几张加载截图 上面是三峡大坝和西安南麓秦岭的作用截图,能够满意开发和演示应用的需要。
四、结语
总体而言,Copernicus DEM 30m高程地势瓦片数据在质量和时效性方面是适当不错的,相关于ALOS,质量平起平坐,但时效性更好,是最近几年拍照出产出来的数据;相关于NASA,SRTM,ASTER等一众数据,质量和时效性更高。关于这份数据,有问题咨询的读者,能够在谈论区留言,或者私信联络,我将及时回复大家的问题。