哨兵2号Sentinel-2分幅条带介绍与MGRS网格矢量文件获取

  本文介绍哨兵2号(Sentinel-2)遥感影像数据的空间分幅规则,并提供军事格网参考系(Military Grid Reference System,MGRS)的.kml格式文件、.shp格式矢量文件的下载方法。

  在文章Landsat系列卫星WRS条带号Path Row分布介绍与对照图(https://blog.csdn.net/zhebushibiaoshifu/article/details/115387368)中,我们介绍了Landsat系列卫星的全球影像标记符号系统——Worldwide Reference System(WRS);而对于哨兵2号遥感影像而言,其具有另一种分幅规则,本文就对这一分幅规则加以介绍。

  首先,总的来说,哨兵2号在成像时,获得的是一景具有290 km幅宽的图像;这一幅宽相对来说可谓很大了——Landsat 8遥感影像也仅仅具有185 km的幅宽。因此,为了方便用户获取数据,防止大家下载过多无用的数据,欧空局将每一景290 km幅宽的图像都做了进一步的划分——将这一原本较大的遥感影像划分为多景100 km * 100 km的小影像;我们现在在欧空局官网、USGS等官方网站获取得到的单景哨兵2号遥感影像数据,都是这一经过划分后的小影像。

  接下来,我们再将上述过程与地理参考信息结合到一起来看。其中,首先290 km幅宽的图像,对应着通用横轴墨卡托格网系统(Universal Transverse Mercator Grid System,UTM);这一坐标系依据经度、纬度,将全球分割为不同的网格区域,并将每一个区域加以独一的编号,其中第一个数字表示东西位置,第二个数字表示南北位置。UTM网格的具体分割方式如下图所示。

在这里插入图片描述

  其次,经过欧空局分割后的100 km * 100 km小影像,则对应着MGRS格网。MGRS是北约所使用的一种标准坐标系统,是一种方里格网。其以UTM格网为基础,将UTM的每一个大网格,进一步划分为100 km * 100 km的小方格。对于这些小方格而言,每一个方格同样具有一个独一的编码,其中第一个字母即表示东、西位置,第二个字母则表示南、北位置。如下图所示。

在这里插入图片描述

  所以,这么来看就不难理解了——UTM将全球分为多个大网格,而MGRS进一步将UTM分好的网格加以继续划分,划分为多个小方格;而这正好与哨兵2号原始的290 km幅宽图像与100 km * 100 km小影像对应。因此,我们就可以直接用MGRS网格来表示不同的哨兵2号小影像。

  接下来,我们可以以一景哨兵2号遥感影像的条带号为例,进一步了解其分幅、命名规则。例如,有一景位于河南省境内的哨兵2号遥感影像数据,其分幅编号为49SGT。其中,第一个数字49与第二个字母S,即为UTM的网格编号;如下图所示,虽然没有标出具体的省界,但是我们可以看到,河南省(大致为红色方框所示位置)就是在东、西条带编号为4950,南、北条带编号为RS的位置。

在这里插入图片描述

  其次,接下来的第三个字母G与第四个字母T,则表示这一景图像在UTM49S网格中的具体位置;如下图所示,蓝色区域内即为49SGT这一景遥感影像的分幅。可以看到,这一景遥感影像是在UTM49条带最靠东边的位置(因为再往东一景,就已经是50开头的遥感影像了)。

在这里插入图片描述

  综上述所,我们了解了哨兵2号的分幅规则,并对其不同分幅各自的编号有了进一步的了解。其中,MGRS网格的.kml格式文件、.shp格式矢量文件大家可以在这里(https://download.csdn.net/download/zhebushibiaoshifu/87411410)免费下载。

  了解了上述内容,同时结合这里给出的MGRS网格文件,在今后实际应用过程中,针对任何一个给出的研究区域,我们即可通过ArcGIS中ArcMap相交分析Intersect解决要素落入另一多部分矢量面要素的问题(https://blog.csdn.net/zhebushibiaoshifu/article/details/118524298)中提及的方法,获取当前研究区域被哪些哨兵2号遥感影像条带覆盖。

欢迎关注:疯狂学习GIS

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一些示例代码,演示如何将 Sentinel-2 和 Sentinel-1 数据进行融合: 1. 利用Python的sentinelsat库下载Sentinel-2和Sentinel-1数据: ```python from sentinelsat import SentinelAPI, read_geojson, geojson_to_wkt # 登录sentinelsat账 api = SentinelAPI('username', 'password', 'https://scihub.copernicus.eu/dhus') # 下载Sentinel-2数据 footprint = geojson_to_wkt(read_geojson('path/to/footprint.geojson')) products = api.query(footprint, platformname='Sentinel-2', cloudcoverpercentage=(0, 30), producttype='S2MSI1C') # 下载Sentinel-1数据 products = api.query(footprint, platformname='Sentinel-1', polarisationmode='VV VH', producttype='GRD', orbitdirection='ASCENDING') ``` 2. 使用Python的gdal库读取和处理Sentinel-1数据: ```python from osgeo import gdal # 读取Sentinel-1数据 s1_vv = gdal.Open('path/to/sentinel1_vv.tif') s1_vh = gdal.Open('path/to/sentinel1_vh.tif') # 将Sentinel-1数据转换为dB单位 s1_vv_db = 10 * np.log10(s1_vv.ReadAsArray()) s1_vh_db = 10 * np.log10(s1_vh.ReadAsArray()) # 对Sentinel-1数据进行滤波和校正 # ... # 将Sentinel-1数据重采样到Sentinel-2的分辨率 # ... # 将Sentinel-1数据和Sentinel-2数据进行融合 # ... ``` 3. 使用Python的scikit-image库将Sentinel-2和Sentinel-1数据进行融合: ```python from skimage import exposure # 将Sentinel-2数据进行拉伸和直方图匹配,使其与Sentinel-1数据的动态范围一致 s2_rgb = exposure.rescale_intensity(s2_rgb, in_range=(0, 0.3), out_range=(0, 1)) s2_rgb_matched = exposure.match_histograms(s2_rgb, s1_vv_db) # 将Sentinel-1数据和Sentinel-2数据进行加权融合 s1_weight = 0.6 s2_weight = 0.4 fused = (s1_weight * s1_vv_db + (1 - s1_weight) * s1_vh_db) * s2_weight + (1 - s2_weight) * s2_rgb_matched ``` 这只是一些示例代码,具体的融合方法和参数需要根据具体的应用场景进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂学习GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值