ArcGIS 制作中国区的数字高程DEM地图(附中国区STRM 90m DEM百度云免费下载链接)[通俗易懂]

ArcGIS 制作中国区的数字高程DEM地图(附中国区STRM 90m DEM百度云免费下载链接)[通俗易懂]数字高程模型(DigitalElevationModel),简称DEM网上有很多中国DEM的下载链接,要么收费,要么地图不对(缺藏南、台湾等等),要么版本太老所以自己做了一个,流程如下:第一步:NASA官网下载STRM90m文件包(http://srtm.csi.cgiar.org)(i)第二张图的Tilesize就是在选区域下载,所以也可以选5x5degree,但就要选很多区域,而且下载的时候要一个个点,太麻烦了,30x30degree的话,只需要选六块就能包住中国;(ii)下载速度

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

数字高程模型(Digital Elevation Model),简称DEM
网上有很多中国DEM的下载链接,要么收费,要么地图不对(缺藏南、湾湾等等),要么版本太老
所以自己做了一个,流程如下:

第一步:NASA官网下载STRM 90m文件包(http://srtm.csi.cgiar.org)

在这里插入图片描述(i) 第二张图的Tile size就是在选区域下载,所以也可以选5x5degree,但就要选很多区域,而且下载的时候要一个个点,太麻烦了,30x30degree的话,只需要选六块就能包住中国;

(ii) 下载速度可能有点儿慢,值得等待;

第二步:将六块地图拼接

在这里插入图片描述
(i) 一张一张读到ArcGIS中(上图之所以看着怪是因为每个子图的colorbar还没统一),可能会卡,别着急

(ii) 像素类型选16_BIT_SIGNED (因为原始图像的类型就是16位有符号整型,保持一致;可以通过属性查看原图像的像素类型)为arcgis中DEM图进行拼接时像素类型怎么填?

(iii)波段选1(因为不是真彩色,全部合到一幅上); 在ArcGIS下如何合并dem?

这时候咱们的DEM图还是栅格数据集,需要转换成tif格式才能进行掩模裁剪

第三步:转换格式 栅格数据集→TIF

网上有很多DEM合并办法(镶嵌)和裁减办法,但是我发现用镶嵌办法得到的是栅格数据集而不是TIF文件,如果用栅格数据集去裁减,那么就必须保存在默认路径(Default.gdb)里,否则图像就怪怪的完全不对(丢失空间参考信息 解决ArcGIS栅格数据空间参考丢失问题) 但这样的话,我又没办法导出,就很鸡肋,所以就要转成TIF来裁减
在这里插入图片描述

第四步:根据边界线掩模裁剪出DEM

如果你的待裁剪图像文件没有空间参考信息丢失的问题,那就可以直接掩模裁剪,请看:
只有边界线的情况下如何在Arcgis上截取目标区域(掩膜裁剪)

如果你的待裁剪图像文件空间参考信息丢失的问题,要注意:
掩模裁剪,因为空间信息的丢失,裁出来的图会怪怪的也不对,调试了很久,最后发现用代码反而能裁出来,代码很简单如下(也是自己写的,改四个路径就行,如果需要批量裁减,可以看用Python对ASCII文件进行批量掩模裁剪):

# -*- coding: utf-8 -*-
#此代码是用以掩模裁剪,从全球DEM中裁剪出中国区

import arcpy

arcpy.CheckOutExtension("spatial")

arcpy.gp.overwriteOutput=1

arcpy.env.workspace = "F:\\DEM_SRTM\\China_include_tif"               #工作空间

raster = "F:\\DEM_SRTM\\China_include_tif\\china_include.tif"         #需要裁减的图像

mask= "F:\\DEM_SRTM\\China_include_tif\\China_boundary.shp"           #掩膜文件

out= "F:\\DEM_SRTM\\China_include_tif\\china_only.tif"                #输出文件

arcpy.gp.ExtractByMask_sa(raster, mask, out)


print("All done")

Jetbrains全家桶1年46,售后保障稳定

这样就能成功裁减了,结果图如下:
在这里插入图片描述
(西北有负值,这是图像原本就有的,估计是因为盆地,具体原因还需要继续探索)

一直以来觉得中国的数据共享和分发做的不好,要么收费,要么不对,要么陈旧,所以在这儿也把我自己裁出来的中国区DEM分享出来,大家下载后也可以检查检查,有问题随时联系我~

链接:https://pan.baidu.com/s/1d8ad36FPHTO9CVU9r9DXGw
提取码:bdak

中国边界shp(包含九段线)文件下载链接:(感谢这位博主!)
[资料] 南海诸岛及九段线shp

Finish!

后记:

写博客的初衷是分享经验,同时是算是自己对思路和代码的整理,方便日后处理数据,应该可以帮到很多人。
我已免费分享我的心得,如果看官还有其他问题的,那么:知识付费,我的时间和经验正好可以解决你的问题。
咨询问题请添加QQ:819369354

2022年4月20日

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201099.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • J1939CANTP

    J1939CANTPSAEJ1939在卡车领域得到了广泛的认可,由多个文档组成,描述了从物理层到诊断层以及应用层的通信协议层。SAEJ1939-21描述了数据链路和传输层,包括两种传输协议变体:用于广播消息的BAM(广播宣布消息),以及CMDT(连接模式数据传输)用于点对点连接。该规范定义了SAEJ1939-21的传输协议如何在AUTOSAR体系结构中实现。它只描述了与AUTOSAR体系结构相关的实现部分。协议特定的细节,如精确的计时,不属于本规范的一部分。因此,为了能够实现J1939…

    2022年5月3日
    83
  • jQuery的目标

    jQuery的开篇声明里有一段非常重要的话:jQuery是为了改变javascript的编码方式而设计的。从这段话可以看出jQuery本身并不是UI组件库或其他的一般AJAX类库。jQuery改变ja

    2021年12月24日
    44
  • Ribbon的负载均衡策略及原理[通俗易懂]

    Ribbon的负载均衡策略及原理[通俗易懂]LoadBalance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。像nginx可以使用负载均衡分配流量,ribbon为客户端提供负载均衡,dubbo服务调用里的负载均衡等等,很多地方都使用到了负载均衡。使用负载均衡带来的好处很明显:当集群里的1台或者多台服务器down的时候,剩余的没有down的服务器可以保证服务的继续使用使用了更多的机器保证了机器的良性使用,不会由于…

    2022年10月13日
    0
  • 如何检查linux是否安装了php

    如何检查linux是否安装了php

    2021年10月18日
    39
  • Neutron中的Service类

    Neutron中的Service类

    2021年11月30日
    56
  • Matlab之正态拟合直方图绘制函数histfit

    Matlab之正态拟合直方图绘制函数histfit目录一、功能二、语法1.histfit(data)2.histfit(data,nbins)3.histfit(data,nbins,dist)4.histfit(ax,___)5.h=histfit(___)三、示例1.具有正态拟合分布的直方图2.给定bin数的直方图3.具有指定分布拟合的直方图4.具有核平滑函数拟合的直方图一、功能绘制正态拟合直方图二、语法1.histfit(data)绘制data中的值的直方图…

    2022年10月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号