Venµs L2A Product Format

=>

Here is a simplistic description of Venµs L2A data distributed by Theia. The official description of the data format is here.

 

Unzip

When you download a Venµs L1C or L2A product from Theia website, you obtain a zip file.

unzip -o  VENUS_20180707-182652-000_L2A_DESIP2_D_V1-0.zip

 

After unzipping, you get a HDR file (which is an XML file) and a DBL.DIR folder. You can go to the Format section below to see how to handle it.

 

 

L2A Format

- the HDR contains the meta data form the image acquisition

- Instrument, date and time
- projection and geographic coverage
- Solar and viewing angles.
For the solar angles, you can use the values at the scene center.
<Solar_Angles>
<Useful_Image>
<Image_Center>
<Azimuth unit="deg">62.0585933294</Azimuth>
<Zenith unit="deg">34.1848602257</Zenith>
</Image_Center>
</Useful_Image>
</Solar_Angles>
For the viewing angles, you have to account for the fact that the angles differ depending on the spectral band.Venµs channels are regrouped per triplets and the viewing angles are provided for each triplet. For instance, for the third one :

<Viewing_Angles sn="3">
<Image_Center>
<Azimuth unit="deg">191.83414</Azimuth>
<Zenith unit="deg">26.282076</Zenith>
</Image_Center>
</Viewing_Angles>

 

- you will find inside the DBL.DIR folder (ex: VE_VM01_VSC_L2VALD_DESIP2___20180707.DBL.DIR) provides the surface reflectances with two flavours:

 

  • the files which end with "FRE.DBL.TIF" (FRE for Flat REflectance) are also corrected for slope effect, which consists in suppressing the apparent reflectances variations dur to the orientation of the slopes with regard to the sun. The corrected images look like if the land was flat.

Both files contain :

- TOA reflectances for the 12 channels, from B01 to B12
- Coded in 16 bits signed integers: you have to divide per 1000 to obtain reflectances
- No_Data value (outside the image), is -10000

 

A cloud and shadows mask is provided in the file CLD.DBL.TIF:

bit 0 (1) : all clouds except the thinnest and all shadows
bit 1 (2) : all clouds (except the thinnest)
bit 2 (4) : cloud shadows cast by a detected cloud
bit 3 (8) : cloud shadows cast by a cloud outside image
bit 4 (16) : clouds detected via mono-temporal thresholds
bit 5 (32) : clouds detected via multi-temporal thresholds
bit 6 (64) : thinnest clouds
bit 7 (128) : high clouds detected by stereoscopy

 

  • Example 1 : value 5 = 4+1 (00000101) :  bit 0 tells us a shadow or a cloud has been detected and bit 2 that it is a shadow (4),
  • Example 2 : value 35 =  32 + 2 +1 (00100011) tells us that it is a cloud (bits 1 and 2), detected by multi-temporal threshold (bit 5)
  • How to use the cloud mask

    If you want a very strict cloud and shadows mask, just test if cloud mask is greater than 0. This is our advice.If you are working in a region where you think MACCS/MAJA detects too many clouds, check that bit 1 is 1. (Mask & (00000001) == 1)

A geophysical mask is also provided, which contains the following information MSK :

  • bit 0 (1) : Water mask
  • bit 1 (2) : Zones masked by terrain
  • bit 2 (4) : Topographic shadows
  • bit 3 (8) : Sun too low for an accurate slope correction
  • bit 4 (16) : Sun too tangent to surface for an accurate slope correction

We also provide the values of the atmospheric variables computed by MAJA, with a 10m resolution (ATB.DBL.TIF)

  • The files contain two bands coded on 8 bits each :
    • Band 1 is water vapour, you have to divide by 20 to obtain g/cm2
      We also provide the values of the atmospheric variables computed by MACCS/MAJA, with a 10m resolution (ATB_R1.tif) and 20m resolution (ATB_R2.tif).
    • The files contain two bands coded on 8 bits each :
      • Band 1 is water vapour, you have to divide by 20 to obtain g/cm2  <VAP_Quantification_Value>0.05</VAP_Quantification_Value>
      • Band 2 is the Aerosol Optical Thickness, you have to multiply by 0.005 to get the AOT. <AOT_Quantification_Value>0.005</AOT_Quantification_Value>

     

A quality file QLT mask contains diverse information

  • The first 8 bit channel is a mask that flags the saturated pixels at Level 1C for each 10m band (B2,B3,B4,B8) or each 20m band(B5,B6,B7,B8A, B11,B12). If the fourth bit is 1, it means that B8 band was saturated at level 1C.
  • The second 8 bit channel is a mask that flags the bad quality pixels  for each 10m band  (B2,B3,B4,B8) or 20m band (B5,B6,B7,B8A, B11,B12).
  • A third 8 bits channel. Only the 3 first bits are used  :
    • Bit 0 : is 1, for no-data pixels, outside the image footprint
    • Bit 1 : tells if AOT was estimated (0) or interpolated (1)
    • Bit 2 : tells if water vapour was estimated (0) or interpolated (1)

<a name="Francais"> </a><a href="http://www.cesbio.ups-tlse.fr/multitemp/wp-content/uploads/2013/06/Produits-e1373293303747.png"><img class="aligncenter size-medium wp-image-2153" title="Produits" src="http://www.cesbio.ups-tlse.fr/multitemp/wp-content/uploads/2013/06/Produits-e1373293303747-300x165.png" alt="" width="300" height="165" /></a> <a href="#English"><img src="http://www.cesbio.ups-tlse.fr/multitemp/wp-content/uploads/2013/02/drapeau_francais_petit.jpg" alt="" width="30" height="20" /> =&gt;<img src="http://www.cesbio.ups-tlse.fr/multitemp/wp-content/uploads/2013/02/english_flag_small.gif" alt="" width="30" height="20" /></a> Attention, il s'agit du format des données de Niveau 2A Sentinel-2 (et bientôt LANDSAT8) produites par THEIA/MUSCATE. Le format des données produites par l'outil SEN2COR de l'ESA est différent, tout comme le format des données produites par Sen2AGRI.

La description officielle du format des données <strong><a href="https://theia.cnes.fr/atdistrib/rocket/#/help">se trouve ici</a></strong>
<h4>Niveau 2A : Réflectances de surface et <a title="La détection des nuages, comment ça marche ?" href="?p=805">masques de nuages</a></h4>
Le fichier zip distribué par THEIA contient plusieurs répertoires et plusieurs fichiers.
<h5>Les fichiers de ce répertoire sont les suivants :</h5>
<ul>
<li><span style="line-height: 21.45px;"> les réflectances de surface sont fournies sous la forme d'un fichier GeoTiff par bande, pour les bandes à 10m (B2,B3,B4,B8) et les bandes à 20m (B5, B6, B7, B8A, B11 et B12) de Sentinel-2</span><span style="line-height: 21.45px;"> </span></li>
<li><span style="line-height: 21.45px;">pour le moment, les fichiers de réflectance de surface sont de deux types :</span>
<ul>
<li><span style="line-height: 21.45px;">les données se terminant par "SRE_Bx.tif" (SRE pour Surface REflectance) ont été corrigées corrigées des<a title="Les effets atmosphériques, comment ça marche ?" href="?p=1124">effets atmosphériques</a>, y compris les <a title="Les effets d'environnement, comment ça marche ?" href="?p=2201">effets d'environnement</a></span></li>
</ul>
<ul>
<li>les données se terminant par "FRE_Bx.tif" (FRE pour Flat REflectance) ont, de plus, subi une correction supplémentaire qui prend en compte les <a title="La correction des variations d'éclairement dues au relief" href="?p=2404">effets des pentes</a></li>
</ul>
<ul>
<li>A terme, très probablement, seuls les fichiers "FRE" seront fournis, afin de diminuer les volumes à distribuer.</li>
<li>Dans les deux cas, les données sont codées sur 16 bits et il faut diviser par 10000 pour obtenir des réflectances de surface.</li>
</ul>
<ul>
<li>&lt;REFLECTANCE_QUANTIFICATION_VALUE&gt;10000&lt;/REFLECTANCE_QUANTIFICATION_VALUE&gt;</li>
</ul>
<ul>
<li>La valeur No_Data (en dehors de l'image) vaut -10000</li>
</ul>
</li>
</ul>
Nous fournissons aussi les variables atmosphériques déterminées par MACCS, aux résolutions 10m (ATB_R1.tif) et 20m (ATB_R2.tif).
<ul>
<li>Les fichiers contiennent deux bandes codées sur 8 bits :
<ul>
<li>La bande 1 correspond à la vapeur d'eau, il faut diviser les valeurs par 20 pour obtenir des g/cm2 <span style="line-height: 21.45px;">&lt;WATER_VAPOR_CONTENT_QUANTIFICATION_VALUE&gt;20&lt;/WATER_VAPOR_CONTENT_QUANTIFICATION_VALUE&gt;</span></li>
<li>La bande 2 correspond à l'épaisseur optique des aérosols, il faut diviser les valeurs par 200 pour obtenir l'épaisseur optique &lt;AEROSOL_OPTICAL_THICKNESS_QUANTIFICATION_VALUE&gt;200&lt;/AEROSOL_OPTICAL_THICKNESS_QUANTIFICATION_VALUE&gt;</li>
</ul>
</li>
</ul>
<span style="line-height: 21.45px;"> </span>
<h5>Le répertoire MASK contient les informations suivantes :</h5>
<ul>
<li>Un masque de no_data, à résolution 10m (EDG_R1.tif) et 20m (EDG_R2.tif)</li>
<li>Un masque de pixels saturés au niveau 1 à résolution 10m (SAT_R1.tif) et 20m (SAT_R2.tif)
<ul>
<li>le premier bit correspond à la bande 1 de la résolution concernée</li>
<li>le deuxième bit correspond à la bande 2 de la résolution concernée</li>
<li>...</li>
<li>Pour R1, l'ordre des bandes est : B2,B3,B4,B8, et pour R2, l'ordre des bandes est : B5,B6,B7,B8a,B11,B12</li>
</ul>
</li>
<li>Un masque de nuages à chaque résolution (CLM_R1.tif ou CLM_R2.tif)
<ul>
<li>
<blockquote><address><em>bit 0 (1) :Tous nuages (sauf les plus fins), et toutes les ombres</em></address> <address><em>bit 1 (2) : Tous nuages (sauf les plus fins)</em></address> <address><em>bit 2 (4) : Nuages détectés par seuil absolu dans le bleu</em></address> <address><em>bit 3 (8) : Nuages détectés par seuil multi-temporel</em></address> <address><em>bit 4 (16) : Nuages très fins</em></address> <address><em>bit 5 (32) : Ombres de nuages correspondant à un nuage</em></address> <address><em>bit 6 (64) : Ombres de nuages détectées dans la zone où les nuages pourraient être hors image (moins fiable)</em></address> <address><em>bit 7 (128) : Nuages hauts détectés par la bande 1.38 µm </em></address></blockquote>
</li>
</ul>
<ul>
<li>
<blockquote><address><em>Exemple 1 : la valeur 33 = 32+1 (00100001) indique qu'il s'agit d'une ombre (32), et le bit 1 indique qu'il s'agit soit d'une ombre, soit d'un nuage.</em></address> <address><em>Exemple 2 : la valeur 43 = 32 + 8 + 2 +1 (00101011)indique qu'il s'agit d'une ombre (32), d'un nuage détecté en multitemporel (8) (l'ombre est probablement sous le nuage) et les bits 0 et 1 sont mis à 1. </em></address></blockquote>
</li>
</ul>
</li>
<li><em>Un masque géophysique MG2 :</em>
<ul>
<li>
<blockquote><address><em>bit 0 (1) : Water mask</em></address> <address><em>bit 1 (2) : Tous nuages (sauf les plus fins)</em></address> <address><em>bit 2 (4) : Snow Mask</em></address> <address><em>bit 3 (8) : Shadow Mask ("OU" des bits 5 et 6 du masque de nuages)</em></address> <address><em>bit 4 (16) : Ombres topographiques</em></address> <address><em>bit 5 (32) : Zones masquées par le relief</em></address> <address><em>bit 6 (64) : Soleil trop bas pour une bonne correction des pentes</em></address> <address><em>bit 7 (128) : Soleil tangent à la surface (mauvaise correction des pentes)</em></address> <address> </address></blockquote>
</li>
</ul>
</li>
<li><em>IAO : Un masque des pixels pour lesquels l'AOT a été interpolée (à résolution R1 ou R2) </em></li>
</ul>
<blockquote><address> </address></blockquote>
<h6><big>Utilisation du masque de nuages :</big></h6>
Si vous souhaitez un masque de nuages strict, testez simplement le fait que le masque de nuages soit supérieur à 0 SI vous souhaitez un masque de nuage un peu moins strict, vérifiez que le bit 0 est égal à 1 (Masque &amp; (00000001) == 1)
<a name="English"> </a>
<a href="#Francais"><img src="http://www.cesbio.ups-tlse.fr/multitemp/wp-content/uploads/2013/02/english_flag_small.gif" alt="" width="30" height="20" />=&gt; <img src="http://www.cesbio.ups-tlse.fr/multitemp/wp-content/uploads/2013/02/drapeau_francais_petit.jpg" alt="" width="30" height="20" /></a>

This page describes the data format of Sentinel-2 L2A generated by THEIA MUSCATE processing ceter at CNES. ESA Sen2Cor format is different.

The official description of the data format <a href="https://theia.cnes.fr/atdistrib/rocket/#/help"> is here</a>
<h4>Level 2A : Surface reflectances and <a title="The cloud detection : how it works." href="?p=876">cloud mask</a></h4>
The ZIP file distributed by Theia contains several files and directories.
<h6>The files are as follows :</h6>
<ul>
<li>the surface reflectances are provided as a GeoTiff per spectral bad, for the 10m bands (B2, B3, B4, B8) and the 20m bands (B5, B6, B7, B8A, B11 et B12) of Sentinel-2.</li>
<li><span style="line-height: 21.45px;">there are two types of surface reflectance files</span>
<ul>
<li><span style="line-height: 21.45px;">the files which end with "SRE_Bx.tif" (SRE for Surface REflectance) were corrected for <a title="Les effets atmosphériques, comment ça marche ?" href="?p=1124">atmospheric effects</a>, including <a title="Les effets d'environnement, comment ça marche ?" href="?p=2201">adjacency effets</a></span></li>
</ul>
<ul>
<li>the files which end with "FRE_Bx.tif" (FRE for Flat REflectance) are also corrected for <a title="La correction des variations d'éclairement dues au relief" href="?p=2404">slope effect</a>, which consists in suppressing the apparent reflectances variations. The corrected images look like if the land was flat.</li>
</ul>
<ul>
<li>After having compiled the user feedback, ity is likely that we will only distribute "FRE" files to reduce the data volume.</li>
<li>In any case, the data are coded on 16bits and you have to divide by 10000 to obtain reflectances.</li>
<li>&lt;REFLECTANCE_QUANTIFICATION_VALUE&gt;10000&lt;/REFLECTANCE_QUANTIFICATION_VALUE&gt;</li>
<li>The No_Data value (outside the image) is -10000</li>
</ul>
</li>
</ul>
&nbsp;

We also provide the values of the atmospheric variables computed by MACCS/MAJA, with a 10m resolution (ATB_R1.tif) and 20m resolution (ATB_R2.tif).
<ul>
<li>The files contain two bands coded on 8 bits each :
<ul>
<li>Band 1 is water vapour, you have to divide by 20 to obtain g/cm2 &lt;WATER_VAPOR_CONTENT_QUANTIFICATION_VALUE&gt;20&lt;/WATER_VAPOR_CONTENT_QUANTIFICATION_VALUE&gt;</li>
<li>Band 2 is the Aerosol Optical Thickness, you have to divide by 200 to get the AOT. &lt;AEROSOL_OPTICAL_THICKNESS_QUANTIFICATION_VALUE&gt;200&lt;/AEROSOL_OPTICAL_THICKNESS_QUANTIFICATION_VALUE&gt;</li>
</ul>
</li>
</ul>
&nbsp;

&nbsp;

&nbsp;
<h6>The mask directory provides :</h6>
<ul>
<li>A no_data mask, at 10m resolution (EDG_R1.tif) and 20m (EDG_R2.tif)</li>
<li>A saturated pixel mask that comes from Level 1 with 10m resolution (SAT_R1.tif) and 20m (SAT_R2.tif)
<ul>
<li>first bit corresponds to first band at each resolution</li>
<li>second bit corresponds to second band at each resolution</li>
<li>...</li>
<li>Pour R1, the bands appear in this order B2, B3, B4, B8, and for R2 : B5, B6, B7, B8a, B11, B12</li>
</ul>
</li>
<li>a cloud mask for each resolution (CLM_R1.tif ou CLM_R2.tif)
<ul>
<li>
<blockquote><address><em>bit 0 (1) : all clouds except the thinnest and all shadows</em></address> <address><em>bit 1 (2) : all clouds (except the thinnest)</em></address> <address><em>bit 2 (4) : clouds detected via mono-temporal thresholds</em></address> <address><em>bit 3 (8) : clouds detected via multi-temporal thresholds
</em></address> <address><em>bit 4 (16) : thinnest clouds
</em></address> <address><em>bit 5 (32) : cloud shadows cast by a detected cloud
</em></address> <address><em>bit 6 (64) : <em>cloud shadows cast by a cloud outside image
</em></em></address> <address><em>bit 7 (128) : high clouds detected by 1.38 µm </em></address></blockquote>
</li>
</ul>
<ul>
<li>
<blockquote><address><em>Example 1 : value 33 = 32+1 (00100001) : <em> bit 1 tells us a shoadow or a cloud has been detected and bit 5 that it</em> is a shadow (32),
</em></address></blockquote>
</li>
<li>
<blockquote><address><em>Example 2 : value 11 = 8 + 2 +1 (00001011) tells us that it is a cloud (bits 1 and 2), detected by multi-temporal threshold (bit 4)
</em></address></blockquote>
</li>
</ul>
</li>
<li><em>A geophysical mask MG2 :</em>
<ul>
<li>
<blockquote><address><em>bit 0 (1) : Water mask</em></address> <address><em>bit 1 (2) : All clouds (except the thinnests)</em></address> <address><em>bit 2 (4) : Snow Mask</em></address> <address><em>bit 3 (8) : all shadows ("OU" des bits 5 et 6 du masque de nuages)</em></address> <address><em>bit 4 (16) : Topographic shadows
</em></address> <address><em>bit 5 (32) : Unseen pixels due to topography
</em></address> <address><em>bit 6 (64) : Sun too low for a correct terrain correction
</em></address> <address><em>bit 7 (128) : Sun direction tangent to slope (inaccurate terrain correction)
</em></address> <address> </address></blockquote>
</li>
</ul>
</li>
<li><em>IAO : A mask of pixels for which the Aerosol Optical Thickness was interpolated ( resolution R1 or R2) </em></li>
</ul>
<blockquote><address> </address></blockquote>
<h6><big>How to use the cloud mask
</big></h6>
If you want a very strict cloud and shadows mask, just test if cloud mask is greater than 0. This is our advice.If you are working in a region where you think MACCS/MAJA detects too many clouds, check that bit 1 is 1. (Mask &amp; (00000001) == 1)

<em> </em>

<em>&nbsp;

</em>

<em> </em>

2 comments

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>