【可视化】中国地形(DEM)图

【可视化】中国地形(DEM)图

DEM是数字高程模型的英文简称(Digital Elevation Model),是研究分析地形、流域、地物识别的重要原始资料。本文根据1km分辨率的我国地形数据,使用cmapsgdal库绘制地形图。

相关库简介

GDAL(Geospatial Data Abstraction Library)是一个开源的库,用于读取、写入、处理和转换地理空间数据。它是地理信息系统(GIS)应用程序开发中非常重要的工具之一,并且被广泛用于处理栅格数据和矢量数据。

GDAL库使用pip进行安装,失败的概率较大。推荐使用conda命令进行安装,如下:

conda install -c conda-forge gdal

代码实现

导入相关库

# -*- coding: UTF-8 -*-
# 导入相关库
import numpy as np
import matplotlib.pyplot as plt
from osgeo import gdal
import cmaps

加载数据

数据来源于NASAASTER GDEM即先进星载热发射和反射辐射仪全球数字高程模型,其全球空间分辨率为30米。重采样后得到1km,500m,250m三种分辨率的DEM数据。相关数据可以自行前往NASA官网进行下载,也可在公众号后台回复关键词获取。

读取1kmDEM数据:

ds = gdal.Open('dem_1km.tif')
dem = ds.ReadAsArray()

缺失值掩膜

masked_dem = np.ma.masked_equal(dem, -32768)
masked_dem

查看地理坐标属性

gt = ds.GetGeoTransform()
xres = gt[1]
yres = gt[5]
xmin = gt[0] + xres * 0.5
xmax = gt[0] + (xres * ds.RasterXSize) - xres * 0.5
ymin = gt[3] + (yres * ds.RasterYSize) + yres * 0.5
ymax = gt[3] - yres * 0.5
lons, lats = np.mgrid[xmin:xmax+xres:xres, ymax+yres:ymin:yres]

查看地理坐标属性

plt.figure(figsize=(10,6))
levels = np.linspace(0,7000,36)
ticks = np.linspace(0,7000,36)
cs = plt.contourf(lons, lats, masked_dem.T, levels=levels, cmap=cmaps.MPL_terrain)
plt.colorbar(cs, pad=0.03, ticks=ticks, label='Elevation (m)')
plt.show()

结果展示

中国地形图

请添加图片描述

推荐阅读

欢迎关注我的公众号“AI拾贝”,原创技术文章第一时间推送。后台发送DEM,自动回复源码和数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值