SRTM数据介绍与下载

本文主要介绍SRTM DEM 数据及下载过程。

一、SRTM数据介绍

DEM是对遥感影像进行处理获得的栅格数字高程模型,只有一个波段,且是遥感影像中合成的波段。
在这里插入图片描述
SRTM:
航天飞机雷达地形测绘任务SRTM(Shuttle Radar Topography Mission)是一个国际项目,由NASA和国家地理空间情报局(NGA)于2000年2月11日至22日在奋进号航天飞机上执行。该任务为期11天,通过雷达干涉测量、机载/舷外天线系统和单次数据采集采集数据,用于生成近全球陆地高程数据产品。

SRTM成功地收集了超过80%的地球表面(60°N-56°S)的高程数据(Farr and Kobrick, 2000)。全球SRTM DEM数据集主要有两种,经过不同层次的处理。

原始SRTM高程数据是由NASA喷气推进实验室(JPL)的c波段雷达信号以1弧秒为间隔进行处理的。美国以外地区的原始数据以3角秒的时间公开发布,被称为SRTM-3数据。

SRTM1(1 arc-second)包含3601*3601个采样点的高度数据,精度约30m。

SRTM3(3 arc-seconds)包含1201*1201个采样点的高程数据。精度约90m。

全部原始数据的处理约需两年的时间, 最终将获取平面精度±20 m , 高程精度±16m 的全球数字高程模型(DEM )。此外, 利用重复轨道的SRTM 雷达数据, 可实现差分干涉测量, 用于地壳形变及冰川变化的监测, 精度可达到厘米级。

SRTM是基于WGS84和EGM96的DEM在90%置信水平下的垂直误差均小于16 m。
在这里插入图片描述
SRTM数据作为相对于WGS84的正交高程分布,利用EGM96地球重力模型将椭球高程转换为正交高程。

二、数据下载

SRTM数据下载有很多种方式。这里我使用EarthExplorer 进行下载的。

global 1-arcsecond (30-m) SRTM digital elevation model下载链接:
https://earthexplorer.usgs.gov/

EarthExplorer 提供的SRTM数据格式:二进制光栅格式BIL、地理引用标记图像文件格式GeoTIFF是嵌入地理信息的TIFF文件。这是GIS应用程序的标准图像格式。

下载步骤:
(1)打开链接,登陆账号。
(2)选择感兴趣区,可以直接在地图绘制感兴趣区或选择Use Map or Add coordinate。
在这里插入图片描述
(3)确定日期等(这里没有设置日期,于2014年获取的SRTM1)。

(4)点击Datasets,选择SRTM
在这里插入图片描述
(5)点击下载
在这里插入图片描述
(6)在arcgis中展示
在这里插入图片描述

三、数据处理

1.数据融合
查看属性信息:16bit signed integer
在这里插入图片描述
2. 数据融合会出现nodata:在栅格数据镶嵌时,边界往往无法完全重合,导致边界部分出现NoData,因此需要通过某些方法来填补这些无数据的地方.
1)添加栅格计算器
在这里插入图片描述
2)为空缺值赋值

参考链接:
https://blog.csdn.net/weixin_33948416/article/details/86217237

USGS EROS Archive - Digital Elevation - Shuttle Radar Topography Mission (SRTM) Non-Void Filled:https://www.usgs.gov/centers/eros/science/usgs-eros-archive-digital-elevation-shuttle-radar-topography-mission-srtm-non?qt-science_center_objects=0#qt-science_center_objects

High-quality seamless DEM generation blending SRTM-1, ASTER GDEM v2 and ICESat/GLAS observations.

更新:
SRTM download :https://dwtkns.com/srtm30m/
该网站可以直接下载30m分辨率的SRTM数据。适用于仅下载部分区域的DEM数据。
在这里插入图片描述

要开发一个BBS论坛,你需要掌握以下技能: 1. Python编程语言 2. Web框架(Flask、Django等) 3. 前端技术(HTML、CSS、JavaScript等) 4. 数据库(MySQL、PostgreSQL、MongoDB等) 下面是一个保姆级的教程,帮助你快速入门开发BBS论坛: 1. 创建虚拟环境 在终端中输入以下命令来创建一个虚拟环境: ```python python -m venv venv ``` 2. 激活虚拟环境 ```python source venv/bin/activate ``` 3. 安装Flask ```python pip install flask ``` 4. 创建Flask应用程序 在项目的根目录下创建一个名为app.py的文件,并添加以下代码: ```python from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello World!' if __name__ == '__main__': app.run() ``` 5. 运行Flask应用程序 在终端中运行以下命令: ```python export FLASK_APP=app.py flask run ``` 6. 创建数据库模型 安装SQLAlchemy,它是Python中最流行的ORM库之一。在终端中运行以下命令来安装它: ```python pip install sqlalchemy ``` 接下来,在app.py文件中添加以下代码: ```python from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) def __repr__(self): return '<User %r>' % self.username ``` 上面的代码定义了一个User模型,它有一个id、一个username和一个email字段。 7. 创建数据库 在终端中运行以下命令来创建数据库: ```python flask db init flask db migrate -m "create user table" flask db upgrade ``` 8. 创建注册页面 在app.py文件中添加以下代码: ```python @app.route('/register', methods=['GET', 'POST']) def register(): if request.method == 'POST': username = request.form['username'] email = request.form['email'] user = User(username=username, email=email) db.session.add(user) db.session.commit() return redirect(url_for('index')) return ''' <form method="post"> <p>Username: <input type="text" name="username"></p> <p>Email: <input type="email" name="email"></p> <p><input type="submit" value="Register"></p> </form> ''' ``` 上面的代码定义了一个/register路由,它允许用户注册。当用户提交表单时,它将创建一个新的User对象并将其添加到数据库中。 9. 创建登录页面 在app.py文件中添加以下代码: ```python @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] user = User.query.filter_by(username=username).first() if user and user.password == password: session['user_id'] = user.id return redirect(url_for('index')) else: flash('Invalid username or password') return ''' <form method="post"> <p>Username: <input type="text" name="username"></p> <p>Password: <input type="password" name="password"></p> <p><input type="submit" value="Login"></p> </form> ''' ``` 上面的代码定义了一个/login路由,它允许用户登录。当用户提交表单时,它将检查用户名和密码是否匹配。 10. 创建论坛页面 在app.py文件中添加以下代码: ```python @app.route('/forum') def forum(): return render_template('forum.html') ``` 上面的代码定义了一个/forum路由,它将渲染一个名为forum.html的模板文件。 11. 创建论坛模板 在项目的根目录下创建一个名为templates的文件夹,并在其中创建一个名为forum.html的文件。在forum.html文件中添加以下代码: ```html <!doctype html> <html> <head> <title>Forum</title> </head> <body> <h1>Forum</h1> {% for post in posts %} <h3>{{ post.title }}</h3> <p>{{ post.content }}</p> {% endfor %} </body> </html> ``` 上面的代码定义了一个简单的模板文件,它将渲染名为posts的变量。 12. 运行应用程序 在终端中运行以下命令: ```python flask run ``` 现在你可以在浏览器中访问你的BBS论坛了。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值