SENTINEL2——Sentinel-2产品
司机简称
哨兵2
Driver built-in by default
This driver is built-in by default
Sentinel-2 1B级、1C级和2A级产品的驱动器。从GDAL 2.1.3开始,也支持使用“安全压缩”编码的1C级。
如果打开SENTINEL2数据产品根目录下的主metadata.xml文件(其名称通常为 S2A_OPER_MTD_SAFL1C_. …xml)。它还可以直接接受从 Sentinels Scientific Data Hub
为了能够读取图像,GDAL必须配置至少一个支持JPEG2000的驱动程序。
SENTINEL-2数据在可见光和近红外(VNIR)和短波红外(SWIR)光谱的13个波段上采集,如下表所示:
乐队名称 |
分辨率(m) |
中心波长(nm) |
带宽(nm) |
目的 |
---|---|---|---|---|
B01型 |
60 |
443 |
20 |
气溶胶检测 |
B02型 |
10 |
490 |
65 |
蓝色 |
B03型 |
10 |
560 |
35 |
绿色 |
B04型 |
10 |
665 |
30 |
红色 |
B05型 |
20 |
705 |
15 |
植被分类 |
B06型 |
20 |
740 |
15 |
植被分类 |
B07型 |
20 |
783 |
20 |
植被分类 |
B08型 |
10 |
842 |
115 |
近红外 |
B08A型 |
20 |
865 |
20 |
植被分类 |
B09型 |
60 |
945 |
20 |
水蒸气 |
B10 |
60 |
1375 |
30 |
卷云 |
B11 |
20 |
1610 |
90 |
雪/冰/云识别 |
B12 |
20 |
2190 |
180 |
雪/冰/云识别 |
驱动程序功能
Supports Georeferencing
This driver supports georeferencing
Supports VirtualIO
This driver supports virtual I/O operations (/vsimem/, etc.)
1B级
Level-1B products are composed of several "granules" of ~ 25 km across-track x ~ 23km along-track, in sensor geometry (i.e. non ortho-rectified). Each granule correspond to the imagery captured by one of the 12 detectors across-track (for a total 290 km swath width). The imagery of each band is put in a separate JPEG2000 file.
1B级产品面向高级用户。
当打开主metadata.xml文件时,驱动程序通常会公开N * 3个子数据集,其中N是构成用户产品的颗粒数量,3对应于空间分辨率的数量。其中一个用于4个10米频段,一个用于6个20米频段,一个用于3个60米频段。注意:此类子数据集的数量通常可以是几百个或更多。
还可以打开给定颗粒的metadata.xml,在这种情况下,将为3个空间分辨率中的每一个报告3个子数据集。
打开子数据集时,地理参照由图像4角和图像中心的5个地面控制点组成。
1C级
在UTM WGS84项目中,1C级产品采用100 km x 100 km的正交矫正瓷砖。每个波段的图像放在单独的JPEG2000文件中。
打开主metadata.xml文件时,驱动程序通常会公开4个子数据集:
一个是4个10米波段,
一个是6个20米波段,
一个给360米乐队,
一个用于以320米分辨率预览R、G、B波段
所有分辨率和投影相同的瓷砖都镶嵌在一起。如果产品跨越多个UTM区域,它们将作为单独的子数据集公开。
还可以打开每个磁贴的metadata.xml文件(仅用于原始L1C编码,不支持“安全压缩”编码),在这种情况下,驱动程序通常会公开上述4种类型的子数据集。
2A级
与1C级类似,2A级产品在UTM WGS84投影图中以100 km x 100 km的正射矫正瓷砖组织。每个波段的图像放在单独的JPEG2000文件中。这些值是大气底部(BOA)反射系数。还计算了L2A特定波段:
AOT:气溶胶光学厚度图(550nm处)
CLD:栅格遮罩值范围从0(高置信度晴空)到100(高置信度多云)
场景分类。值的含义在标注栏的类别名称中指示。
SNW:栅格遮罩值范围从0(高置信度无雪/冰)到100(高置信度雪/冰)
WVP:场景平均水汽图
打开主metadata.xml文件时,驱动程序通常会公开4个子数据集:
一个用于4个本地10m波段和L2A特定波段(AOT和WVP)
一个用于6个本机20米波段,加上10米波段(B8除外),重新采样到20米和L2A特定波段(AOT、WVP、SCL、CLD和SNW),
一个用于3个本地60米波段,再加上10米和20米波段(B8除外),重新采样到60米和L2A特定波段(AOT、WVP、SCL、CLD和SNW),
一个用于以320米分辨率预览R、G、B波段
所有分辨率和投影相同的瓷砖都镶嵌在一起。如果产品跨越多个UTM区域,它们将作为单独的子数据集公开。
元数据
主Metadata.xml文件的元数据在常规元数据域中可用。整个XML文件也可以通过XML:SENTINEL2元数据域访问。
子数据集基于VRT格式,因此可以通过查询xml:VRT元数据域来获得该VRT的定义。
L1C和L2A的性能问题
由于Sentinel-2产品的结构方式,特别是由于涉及的JPEG2000文件的数量,对于由许多平铺制成的产品,缩小操作可能非常缓慢。对于交互式显示,生成概述可能很有用(本身可能是一个缓慢的操作)。这可以使用子数据集名称上的gdaladdo实用程序来完成。概述文件是在main metadata.xml文件旁边创建的,具有相同的名称,但前缀为XX_EPSG_yyyy.tif.ovr,其中XX=10m、20m、60m或PREVIEW,YYYYY是EPSG代码。
技巧:如果缩小预览的内容对用例不重要,可以使用NONE重采样方法('-r NONE'作为gdaladdo开关)即时创建空白概述。
When converting a subdataset to another format like tiled GeoTIFF, if
using the JP2OpenJPEG driver, the recommended minimum value for the
GDAL_CACHEMAX
configuration option is (subdataset_width * 2048 * 2 ) /
10000000 if generating a INTERLEAVE=BAND GeoTIFF, or that value
multiplied by the number of bands for the default INTERLEAVE=PIXEL
configuration. The current versions of the OpenJPEG libraries can also
consume a lot of memory to decode a JPEG2000 tile (up to 600MB), so you
might want to specify the GDAL_NUM_THREADS
configuration option to a
reasonable number of threads if you are short of memory (the default
value is the total number of virtual CPUs).
打开选项
可以向驱动程序传递以下打开选项:
ALPHA =是/否:是否公开阿尔法波段。默认为否。如果设置,则在具有alpha通道的Sentinel2频带之后添加额外的频带。其价值是:
在没有平铺的区域上为0,或者当平铺数据设置为no data或饱和特殊值时,
4095在有有效数据的区域。
注意:以上打开选项也可以指定为配置选项,方法是在打开选项名称前加上 SENTINEL2_ (例如哨兵阿尔法)。
实例
打开Sentinel2产品的主元数据文件:
$ gdalinfo S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml
Driver: SENTINEL2/Sentinel 2 Files: S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml Size is 512, 512 Coordinate System is `' Metadata: CLOUD_COVERAGE_ASSESSMENT=0.0 DATATAKE_1_DATATAKE_SENSING_START=2015-08-13T10:10:26.027Z DATATAKE_1_DATATAKE_TYPE=INS-NOBS DATATAKE_1_ID=GS2A_20150813T101026_000734_N01.03 DATATAKE_1_SENSING_ORBIT_DIRECTION=DESCENDING DATATAKE_1_SENSING_ORBIT_NUMBER=22 DATATAKE_1_SPACECRAFT_NAME=Sentinel-2A DEGRADED_ANC_DATA_PERCENTAGE=0 DEGRADED_MSI_DATA_PERCENTAGE=0 FOOTPRINT=POLYGON((11.583573986577191 46.02490454425771, 11.538730738326866 45.03757398414644, 12.93007028286133 44.99812645604949, 12.999359413660665 45.98408391203724, 11.583573986577191 46.02490454425771, 11.583573986577191 46.02490454425771)) FORMAT_CORRECTNESS_FLAG=PASSED GENERAL_QUALITY_FLAG=PASSED GENERATION_TIME=2015-08-18T10:14:40.000283Z GEOMETRIC_QUALITY_FLAG=PASSED PREVIEW_GEO_INFO=BrowseImageFootprint PREVIEW_IMAGE_URL=https://pdmcdam2.sentinel2.eo.esa.int/s2pdgs_geoserver/geo_service.php?service=WMS&version=1.1.0&request=GetMap&layers=S2A_A000022_N0103:S2A_A000022_N0103&styles=&bbox=11.538730738326866,44.99812645604949,12.999359413660665,46.02490454425771&width=1579&height=330&srs=EPSG:4326&format=image/png&time=2015-08-13T10:24:06.0Z/2015-08-13T10:24:06.0Z PROCESSING_BASELINE=01.03 PROCESSING_LEVEL=Level-1C PRODUCT_START_TIME=2015-08-13T10:24:06.637Z PRODUCT_STOP_TIME=2015-08-13T10:24:06.637Z PRODUCT_TYPE=S2MSI1C QUANTIFICATION_VALUE=1000 RADIOMETRIC_QUALITY_FLAG=PASSED REFERENCE_BAND=B1 REFLECTANCE_CONVERSION_U=0.973195961910065 SENSOR_QUALITY_FLAG=PASSED SPECIAL_VALUE_NODATA=1 SPECIAL_VALUE_SATURATED=0 Subdatasets: SUBDATASET_1_NAME=SENTINEL2_L1C:S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml:10m:EPSG_32632 SUBDATASET_1_DESC=Bands B2, B3, B4, B8 with 10m resolution, UTM 32N SUBDATASET_2_NAME=SENTINEL2_L1C:S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml:20m:EPSG_32632 SUBDATASET_2_DESC=Bands B5, B6, B7, B8A, B11, B12 with 20m resolution, UTM 32N SUBDATASET_3_NAME=SENTINEL2_L1C:S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml:60m:EPSG_32632 SUBDATASET_3_DESC=Bands B1, B9, B10 with 60m resolution, UTM 32N SUBDATASET_4_NAME=SENTINEL2_L1C:S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml:PREVIEW:EPSG_32632 SUBDATASET_4_DESC=RGB preview, UTM 32N Corner Coordinates: Upper Left ( 0.0, 0.0) Lower Left ( 0.0, 512.0) Upper Right ( 512.0, 0.0) Lower Right ( 512.0, 512.0) Center ( 256.0, 256.0)
直接打开.zip文件:
$ gdalinfo S2A_OPER_PRD_MSIL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.zip
打开L1C子数据集的10米分辨率波段:
$ gdalinfo SENTINEL2_L1C:S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml:10m:EPSG_32632
Driver: SENTINEL2/Sentinel 2 Files: S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml ./GRANULE/S2A_OPER_MSI_L1C_TL_MTI__20150813T201603_A000734_T32TQR_N01.03/S2A_OPER_MTD_L1C_TL_MTI__20150813T201603_A000734_T32TQR.xml ./GRANULE/S2A_OPER_MSI_L1C_TL_MTI__20150813T201603_A000734_T32TQR_N01.03/IMG_DATA/S2A_OPER_MSI_L1C_TL_MTI__20150813T201603_A000734_T32TQR_B04.jp2 ./GRANULE/S2A_OPER_MSI_L1C_TL_MTI__20150813T201603_A000734_T32TQR_N01.03/IMG_DATA/S2A_OPER_MSI_L1C_TL_MTI__20150813T201603_A000734_T32TQR_B03.jp2 ./GRANULE/S2A_OPER_MSI_L1C_TL_MTI__20150813T201603_A000734_T32TQR_N01.03/IMG_DATA/S2A_OPER_MSI_L1C_TL_MTI__20150813T201603_A000734_T32TQR_B02.jp2 ./GRANULE/S2A_OPER_MSI_L1C_TL_MTI__20150813T201603_A000734_T32TQR_N01.03/IMG_DATA/S2A_OPER_MSI_L1C_TL_MTI__20150813T201603_A000734_T32TQR_B08.jp2 Size is 10980, 10980 Coordinate System is: PROJCS["WGS 84 / UTM zone 32N", GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.0174532925199433, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",9], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",500000], PARAMETER["false_northing",0], UNIT["metre",1, AUTHORITY["EPSG","9001"]], AXIS["Easting",EAST], AXIS["Northing",NORTH], AUTHORITY["EPSG","32632"]] Origin = (699960.000000000000000,5100060.000000000000000) Pixel Size = (10.000000000000000,-10.000000000000000) Metadata: [... same as above ...] Image Structure Metadata: COMPRESSION=JPEG2000 Corner Coordinates: Upper Left ( 699960.000, 5100060.000) ( 11d35' 0.87"E, 46d 1'29.66"N) Lower Left ( 699960.000, 4990260.000) ( 11d32'19.43"E, 45d 2'15.27"N) Upper Right ( 809760.000, 5100060.000) ( 12d59'57.69"E, 45d59' 2.70"N) Lower Right ( 809760.000, 4990260.000) ( 12d55'48.25"E, 44d59'53.26"N) Center ( 754860.000, 5045160.000) ( 12d15'46.56"E, 45d30'48.07"N) Band 1 Block=128x128 Type=UInt16, ColorInterp=Red Description = B4, central wavelength 665 nm Overviews: 5490x5490, 2745x2745, 1373x1373, 687x687, 344x344 Metadata: BANDNAME=B4 BANDWIDTH=30 BANDWIDTH_UNIT=nm SOLAR_IRRADIANCE=1512.79 SOLAR_IRRADIANCE_UNIT=W/m2/um WAVELENGTH=665 WAVELENGTH_UNIT=nm Image Structure Metadata: NBITS=12 Band 2 Block=128x128 Type=UInt16, ColorInterp=Green Description = B3, central wavelength 560 nm [...] Band 3 Block=128x128 Type=UInt16, ColorInterp=Blue Description = B2, central wavelength 490 nm [...] Band 4 Block=128x128 Type=UInt16, ColorInterp=Undefined Description = B8, central wavelength 842 nm [...]
L1C子数据集到平铺GeoTIFF的转换
$ gdal_translate SENTINEL2_L1C:S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml:10m:EPSG_32632 \ 10m.tif \ -co TILED=YES --config GDAL_CACHEMAX 1000 --config GDAL_NUM_THREADS 2
正在为L1C子数据集生成空白概述:
$ gdaladdo -r NONE SENTINEL2_L1C:S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml:10m:EPSG_32632 4
从子数据集创建VRT文件(可以方便地将子数据集作为文件):
$ python -c "import sys; from osgeo import gdal; ds = gdal.Open(sys.argv[1]); open(sys.argv[2], 'wb').write(ds.GetMetadata('xml:VRT')[0].encode('utf-8'))" \ SENTINEL2_L1C:S2A_OPER_MTD_SAFL1C_PDMC_20150818T101440_R022_V20150813T102406_20150813T102406.xml:10m:EPSG_32632 10m.vrt
打开L1B子数据集的10米分辨率波段:
$ gdalinfo SENTINEL2_L1B:S2A_OPER_MTD_L1B_GR_SGS__20151024T023555_S20151024T011315_D02.xml:10m
Driver: SENTINEL2/Sentinel 2 Files: S2A_OPER_MTD_L1B_GR_SGS__20151024T023555_S20151024T011315_D02.xml IMG_DATA/S2A_OPER_MSI_L1B_GR_SGS__20151024T023555_S20151024T011315_D02_B04.jp2 IMG_DATA/S2A_OPER_MSI_L1B_GR_SGS__20151024T023555_S20151024T011315_D02_B03.jp2 IMG_DATA/S2A_OPER_MSI_L1B_GR_SGS__20151024T023555_S20151024T011315_D02_B02.jp2 IMG_DATA/S2A_OPER_MSI_L1B_GR_SGS__20151024T023555_S20151024T011315_D02_B08.jp2 Size is 2552, 2304 Coordinate System is `' GCP Projection = GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.0174532925199433, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]] GCP[ 0]: Id=, Info= (0,0) -> (134.635194391036,-21.4282083310724,0) GCP[ 1]: Id=, Info= (0,2304) -> (134.581480136827,-21.6408640426055,0) GCP[ 2]: Id=, Info= (2552,2304) -> (134.833308274251,-21.686125031254,0) GCP[ 3]: Id=, Info= (2552,0) -> (134.886750925145,-21.4734274382519,0) GCP[ 4]: Id=, Info= (1276,1152) -> (134.734115530986,-21.5571457404287,0) Metadata: CLOUDY_PIXEL_PERCENTAGE=0 DATASTRIP_ID=S2A_OPER_MSI_L1B_DS_SGS__20151024T023555_S20151024T011312_N01.04 DATATAKE_1_DATATAKE_SENSING_START=2015-10-24T01:13:12.027Z DATATAKE_1_DATATAKE_TYPE=INS-NOBS DATATAKE_1_ID=GS2A_20151024T011312_001758_N01.04 DATATAKE_1_SENSING_ORBIT_DIRECTION=DESCENDING DATATAKE_1_SENSING_ORBIT_NUMBER=45 DATATAKE_1_SPACECRAFT_NAME=Sentinel-2A DEGRADED_ANC_DATA_PERCENTAGE=0 DEGRADED_MSI_DATA_PERCENTAGE=0 DETECTOR_ID=02 DOWNLINK_PRIORITY=NOMINAL FOOTPRINT=POLYGON((134.635194391036 -21.4282083310724, 134.581480136827 -21.6408640426055, 134.833308274251 -21.686125031254, 134.886750925145 -21.4734274382519, 134.635194391036 -21.4282083310724)) FORMAT_CORRECTNESS_FLAG=PASSED GENERAL_QUALITY_FLAG=PASSED GENERATION_TIME=2015-11-12T10:55:12.000947Z GEOMETRIC_QUALITY_FLAG=PASSED GRANULE_ID=S2A_OPER_MSI_L1B_GR_SGS__20151024T023555_S20151024T011315_D02_N01.04 PREVIEW_GEO_INFO=BrowseImageFootprint PREVIEW_IMAGE_URL=https://pdmcdam2.sentinel2.eo.esa.int/s2pdgs_geoserver/geo_service.php?service=WMS&version=1.1.0&request=GetMap&layers=S2A_A000045_N0104:S2A_A000045_N0104&styles=&bbox=133.512786023161,-25.3930035889714,137.184847290108,-21.385906922696&width=1579&height=330&srs=EPSG:4326&format=image/png&time=2015-10-24T01:13:15.0Z/2015-10-24T01:14:13.0Z PROCESSING_BASELINE=01.04 PROCESSING_LEVEL=Level-1B PRODUCT_START_TIME=2015-10-24T01:13:15.497656Z PRODUCT_STOP_TIME=2015-10-24T01:14:13.70431Z PRODUCT_TYPE=S2MSI1B RADIOMETRIC_QUALITY_FLAG=PASSED SENSING_TIME=2015-10-24T01:13:15.497656Z SENSOR_QUALITY_FLAG=PASSED SPECIAL_VALUE_NODATA=1 SPECIAL_VALUE_SATURATED=0 Corner Coordinates: Upper Left ( 0.0, 0.0) Lower Left ( 0.0, 2304.0) Upper Right ( 2552.0, 0.0) Lower Right ( 2552.0, 2304.0) Center ( 1276.0, 1152.0) Band 1 Block=128x128 Type=UInt16, ColorInterp=Red Description = B4, central wavelength 665 nm Overviews: 1276x1152, 638x576, 319x288, 160x144 Metadata: BANDNAME=B4 BANDWIDTH=30 BANDWIDTH_UNIT=nm WAVELENGTH=665 WAVELENGTH_UNIT=nm Image Structure Metadata: NBITS=12 Band 2 Block=128x128 Type=UInt16, ColorInterp=Green Description = B3, central wavelength 560 nm [...] Band 3 Block=128x128 Type=UInt16, ColorInterp=Blue Description = B2, central wavelength 490 nm [...] Band 4 Block=128x128 Type=UInt16, ColorInterp=Undefined Description = B8, central wavelength 842 nm [...]
也见
信用
这个驱动程序是由 Spatialys 资金来自 Centre National d'Etudes Spatiales (CNES)