
Copernicus DEM 官网是:
https://spacedata.copernicus.eu/collections/copernicus-digital-elevation-model博主GIS荟曾详细介绍过Copernicus DEM数据。
Copernicus 是欧洲空间局(European Space Agency, ESA)和欧盟共同合作的一个项目,旨在提供地球表面的监测和地表特征信息。也提供了全球范围内30米和90米两种大小的数据,但是不包括海洋和部分陆地区域。 你个海怪,公众号:GIS荟请不要再购买12.5米的DEM了,这个免费的吊打它(Copernicus 哥白尼)
文章介绍了这种DEM数据下载方法,并提供了百度网盘下载链接。
本文提供一种批量下载全球哥白尼DEM方法。
(1)下载哥白尼DEM的vrt文件。
https://github.com/MarcYin/Copernicus_GLO_30_DEM_VRT(2)本机安装gdal环境,安装环境办法请自行解决。环境安装好了,打开cmd命令框。
运行:
gdalinfo /vsicurl/https://raw.githubusercontent.com/MarcYin/Copernicus_GLO_30_DEM_VRT/main/copernicus_GLO_30_dem.vrt在cmd里面运行效果是这样子:

Linux系统运行跟这个类似。
gdalinfo成功运行的界面是这样。

从这个界面可以找到单幅DEM的存储地址,比如:
https://copernicus-dem-90m.s3.amazonaws.com/Copernicus_DSM_COG_30_N41_00_E043_00_DEM/Copernicus_DSM_COG_30_N41_00_E043_00_DEM.tif这些DEM数据存放在亚马逊云里,而这个地址在浏览器里面是可以访问并下载的。
按照这个思路把gdalinfo 命令调整下,将命令运行结果输出到一个文本文件里面。比如:
gdalinfo /vsicurl/https://raw.githubusercontent.com/MarcYin/Copernicus_GLO_30_DEM_VRT/main/copernicus_GLO_30_dem.vrt > E:\copernicus__dem_list.csv 打开文件后,是这样:
Driver: VRT/Virtual RasterFiles: /vsicurl/https://raw.githubusercontent.com/MarcYin/Copernicus_GLO_30_DEM_VRT/main/copernicus_GLO_30_dem.vrt/vsicurl/https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N00_00_E006_00_DEM/Copernicus_DSM_COG_10_N00_00_E006_00_DEM.tif/vsicurl/https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N00_00_E009_00_DEM/Copernicus_DSM_COG_10_N00_00_E009_00_DEM.tif/vsicurl/https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N00_00_E010_00_DEM/Copernicus_DSM_COG_10_N00_00_E010_00_DEM.tif/vsicurl/https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N00_00_E011_00_DEM/Copernicus_DSM_COG_10_N00_00_E011_00_DEM.tif/vsicurl/https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N00_00_E012_00_DEM/Copernicus_DSM_COG_10_N00_00_E012_00_DEM.tif
有了这个文件,就可以利用python批量下载了。
完整下载代码是:
import wgetimport tempfileimport sysimport os,globdownload_path = r'E:\download'if not os.path.exists(download_path):os.makedirs(download_path)download_vrt = r'E:\copernicus__dem_list.csv'urls = open(download_vrt).readlines()urls = [ u for u in urls if u.find('vsicurl') != -1]n_files = len(urls)for i,url in enumerate(urls):url = url.strip().replace('/vsicurl/','')print('\n---',i,'--of--',n_files,url)if url.find('\n') != -1:url = url[:url.find('\n')]try:file_name = wget.filename_from_url(url)except:continuetarget_name = os.path.join(download_path,file_name)try:file_name = wget.download(url, out=target_name)except:if os.path.exists(processing_file):os.remove(processing_file)continueif os.path.exists(processing_file):os.remove(processing_file)sys.exit(1)
夜雨聆风