Landsat 8 data access from Google Cloud Storage
Landsat 8 bands
Landsat 8 is one of NASA’s EOS (Earth Observing System) satellites. It was launched in February 2013 and was aimed to replace its predecessor Landsat 7. The satellite collects images of the Earth with a 16-day repeat cycle. The approximate scene size is 170 km north-south by 183 km east-west. There are two major instruments onboard the Landsat 8 satellite: OLI (Operational Land Imager) and TIRS (Thermal Infrared Sensor). OLI collects data from nine spectral bands, two of them (band 1 and band 9) are newly added bands compared to Landsat 7’s ETM+ sensor. The following table illustrates the 9 OLI bands:
Spectral Band | Wavelength (um) | Resolution (m) |
---|---|---|
Band 1 - Coastal / Aerosol | 0.433 – 0.453 | 30 |
Band 2 - Blue | 0.450 – 0.515 | 30 |
Band 3 - Green | 0.525 – 0.600 | 30 |
Band 4 - Red | 0.630 – 0.680 | 30 |
Band 5 - Near Infrared | 0.845 – 0.885 | 30 |
Band 6 - Shortwave Infrared (SWIR) 1 | 1.560 – 1.660 | 30 |
Band 7 - Shortwave Infrared (SWIR) 2 | 2.100 – 2.300 | 30 |
Band 8 - Panchromatic | 0.500 – 0.680 | 15 |
Band 9 - Cirrus | 1.360 – 1.390 | 30 |
Two thermal bands (TIRS) are collected at 100 meter resolution, but are resampled to 30 meter in delivered data product.
Spectral Band | Wavelength (um) | Resolution (m) |
---|---|---|
Band 10 Thermal Infrared (TIRS) 1 | 10.30 – 11.30 | 100 (30) |
Band 11 Thermal Infrared (TIRS) 2 | 11.50 – 12.50 | 100 (30) |
EOS data processing levels
Before we talk about the collection structure of Landsat archive, let’s first talk about the EOS (Earth Observing System) data processing levels.
EOS data products are processed at different levels from level 0 to level 4. The following table shows a summary of the various levels.
Data Level | Brief Description |
---|---|
L0 | Raw instrument data |
L1A | Reconstructed, raw instrument data, annotated with ancillary information |
L1B | Level 1A data processed to sensor units. Geolocated and calibrated |
L2 | Products derived from L1B |
L3 | Gridded and quality controlled |
L4 | Model output, derived variables |
Landsat Collection Tiers
In 2017, the USGS reorganized the Landsat archive into a tiered collection. The Landsat collection tiers are the inventory structure for Level-1 data products (including L1A and L1B) and are based on data quality and level of processing.
The tier definition purpose is to support easier identification of suitable scenes for time-series pixel-level analysis, and provide temporary data that are processed immediately upon downlink to be dispensed quickly in emergency response situations with limited calibration (from USGS).
There are three categories in the Landsat collection tiers definition: Tier 1, Tier 2, and Real-time tier. The following table summarize the three tiers:
Tier Level | Brief Description |
---|---|
Tier 1 | Highest available data quality. Meet formal geometric and radiometric quality criteria. |
Tier 2 | Do not meet the Tier 1 criteria. |
Real-time | Contain data immediately after acquisitions that use estimated parameters. |
The transition delay for Landsat 8 from Real-time to Tier 1 or Tier 2 is within 14 to 16 days of data acquisition.
The Tier designation is visible at the end of the Landsat Product Identifier: T1 for Tier 1, T2 for Tier 2, and RT for Real-time.
Landsat Product Identifiers
The following table summarizes the new Landsat collection 1 product identifier an the old Landsat pre-collection scene ID:
Landsat pre-collection scene ID | Landsat collection 1 product identifier |
---|---|
LXSPPPRRRYYYYDDDGSIVV | LXSS_LLLL_PPPRRR_YYYYMMDD_yyyymmdd_CC_TX |
L = Landsat | L = Landsat |
X = sensor | X = sensor |
S = satellite | SS = satellite |
LLLL = Processing correction level | |
PPP = WRS path | PPP = WRS path |
RRR = WRS row | RRR = WRS row |
YYYY = Acquisition year | YYYYMMDD = Acquisition year, month and day |
DDD = Acquisition Julian day | yyyymmdd = Processing year, month and day |
GSI = Ground station Identifier | CC = Collection number |
VV = Archive version number | TX = Collection tier level |
Example: LC80220392016345LGN00 | Example: LC08_L1TP_022039_20161210_20170219_01_T1 |
- X = Sensor (“C” = OLI/TIRS Combined, “O” = OLI-only, “T” = TIRS-only, “E” = ETM+, “T” = TM, “M”= MSS)
- SS = Satellite (e.g. “07” = Landsat 7, “08” = Landsat 8)
- LLLL = Processing correction level (L1TP/L1GT/L1GS)
Download Landsat 8 data from Google Cloud Storage
The Landsat data are hosted publicly and free on Google Cloud Storage. You can use Google’s gsutil
tool to download the data programatically.
If you do not have gsutil
installed on your laptop. Check Google’s instruction on how to install it.
To access the public datasets on Google Cloud Storage, you need to know the name of the bucket containing the data. A bucket is just a logical unit of storage for web storage service. You can think of it as a folder on your laptop’s file system. The bucket name for Landsat data is “gcp-public-data-landsat”. And the data are organized in the following directory structure:
/[SENSOR_ID]/[COLLECTION]/[PATH]/[ROW]/[SCENE_ID]/
.
The components of this path are:
[SENSOR_ID]
: An identifier for the particular satellite and camera sensor.[COLLECTION]
:PRE
for pre-collection and01
for collection 1.[PATH]
: WRS path[ROW]
: WRS row[SCENE_ID]
: The unique scene ID.
Do remember that the data contained in one scene directory include all the bands and ancillary data.
You can use gsutil
’s ls
command to list all the data contained in the bucket. For example, if you want to see all the collection 1 data for Landsat 8, path 10, row 20, the command is:
$ gsutil ls gs://gcp-public-data-landsat/LC08/01/010/020/
You can also use gsutil
’s cp
command to copy the data from the cloud bucket to your local drive:
$ gsutil cp -r gs://gcp-public-data-landsat/LC08/01/010/020/LC08_L1TP_010020_20180227_20180308_01_T1/ .
I have written a python script to automate the work of downloading the Landsat 8 data from Google Cloud Storage. The script is hosted on my Github repo. All you need to do is to give the script some parameters (path, row, and date), and the script will do all the hard work for you. It will download the data you specified, and put the data in a hierarchical directory which is organized as /data/[PATH]-[ROW]/date
.
$ ./download_landsat8_new.py -p 22 -r 39 -d 20170401